ETH Price: $2,037.75 (+0.96%)

Contract

0x68924dbd6eb82bFe666B2E0403f4cd1Cd6790C3f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Get Rewards245925712026-03-05 16:49:474 days ago1772729387IN
Fixed Forex: StakingRewardsV3
0 ETH0.000004110.1738978
Get Rewards239637432025-12-07 21:49:4792 days ago1765144187IN
Fixed Forex: StakingRewardsV3
0 ETH0.000059872.53098183
Get Rewards235537142025-10-11 9:53:35150 days ago1760176415IN
Fixed Forex: StakingRewardsV3
0 ETH0.000052642.22538303
Get Rewards234054462025-09-20 16:24:23170 days ago1758385463IN
Fixed Forex: StakingRewardsV3
0 ETH0.000005430.22981857
Get Rewards234042272025-09-20 12:17:59171 days ago1758370679IN
Fixed Forex: StakingRewardsV3
0 ETH0.000007940.33603011
Get Rewards234030492025-09-20 8:19:47171 days ago1758356387IN
Fixed Forex: StakingRewardsV3
0 ETH0.000006190.26205735
Get Rewards233793272025-09-17 0:50:47174 days ago1758070247IN
Fixed Forex: StakingRewardsV3
0 ETH0.000003980.16840323
Get Rewards233209772025-09-08 21:12:35182 days ago1757365955IN
Fixed Forex: StakingRewardsV3
0 ETH0.000006410.27102418
Get Rewards233200782025-09-08 18:11:23182 days ago1757355083IN
Fixed Forex: StakingRewardsV3
0 ETH0.000023340.98685453
Get Rewards233114002025-09-07 13:04:47184 days ago1757250287IN
Fixed Forex: StakingRewardsV3
0 ETH0.00001390.58781965
Get Rewards151143062022-07-10 10:07:161339 days ago1657447636IN
Fixed Forex: StakingRewardsV3
0 ETH0.000205778.69875765
Withdraw139609622022-01-07 22:21:021522 days ago1641594062IN
Fixed Forex: StakingRewardsV3
0 ETH0.03593289109.40108048
Withdraw139572192022-01-07 8:21:431523 days ago1641543703IN
Fixed Forex: StakingRewardsV3
0 ETH0.0297660888
Withdraw139516682022-01-06 11:48:491524 days ago1641469729IN
Fixed Forex: StakingRewardsV3
0 ETH0.0194798986.74542252
Get Rewards139516682022-01-06 11:48:491524 days ago1641469729IN
Fixed Forex: StakingRewardsV3
0 ETH0.0195619686.74542252
Withdraw139201402022-01-01 14:38:151528 days ago1641047895IN
Fixed Forex: StakingRewardsV3
0 ETH0.0183884864.46399998
Withdraw139198422022-01-01 13:37:081529 days ago1641044228IN
Fixed Forex: StakingRewardsV3
0 ETH0.0169275749.27224363
Deposit139192302022-01-01 11:15:121529 days ago1641035712IN
Fixed Forex: StakingRewardsV3
0 ETH0.0157209154
Deposit139094542021-12-30 22:44:571530 days ago1640904297IN
Fixed Forex: StakingRewardsV3
0 ETH0.0210748971.09544991
Get Rewards138800182021-12-26 9:33:471535 days ago1640511227IN
Fixed Forex: StakingRewardsV3
0 ETH0.0011092346.89028125
Withdraw138789812021-12-26 5:44:151535 days ago1640497455IN
Fixed Forex: StakingRewardsV3
0 ETH0.0144086848
Withdraw138714552021-12-25 1:49:471536 days ago1640396987IN
Fixed Forex: StakingRewardsV3
0 ETH0.0221319564.42322565
Withdraw138706412021-12-24 22:39:031536 days ago1640385543IN
Fixed Forex: StakingRewardsV3
0 ETH0.0235915567.26989161
Deposit138660382021-12-24 5:35:061537 days ago1640324106IN
Fixed Forex: StakingRewardsV3
0 ETH0.0151648152
Deposit138500602021-12-21 18:08:401539 days ago1640110120IN
Fixed Forex: StakingRewardsV3
0 ETH0.0179442964.24024747
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StakingRewardsV3

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-11-25
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.9;

library Math {
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }
    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }
}

library PoolAddress {
    bytes32 internal constant POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;

    struct PoolKey {
        address token0;
        address token1;
        uint24 fee;
    }

    function computeAddress(address factory, PoolKey memory key) internal pure returns (address pool) {
        require(key.token0 < key.token1);
        pool = address(
            uint160(uint256(
                keccak256(
                    abi.encodePacked(
                        hex'ff',
                        factory,
                        keccak256(abi.encode(key.token0, key.token1, key.fee)),
                        POOL_INIT_CODE_HASH
                    )
                )
            )
        ));
    }
}

interface erc20 {
    function transfer(address recipient, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    function balanceOf(address) external view returns (uint);
}

interface PositionManagerV3 {
    struct CollectParams {
        uint256 tokenId;
        address recipient;
        uint128 amount0Max;
        uint128 amount1Max;
    }

    function positions(uint256 tokenId)
        external
        view
        returns (
            uint96 nonce,
            address operator,
            address token0,
            address token1,
            uint24 fee,
            int24 tickLower,
            int24 tickUpper,
            uint128 liquidity,
            uint256 feeGrowthInside0LastX128,
            uint256 feeGrowthInside1LastX128,
            uint128 tokensOwed0,
            uint128 tokensOwed1
        );
    function safeTransferFrom(address from, address to, uint tokenId) external;

    function ownerOf(uint tokenId) external view returns (address);
    function transferFrom(address from, address to, uint tokenId) external;
    function collect(CollectParams calldata params) external payable returns (uint amount0, uint amount1);
}

interface UniV3 {
    function snapshotCumulativesInside(int24 tickLower, int24 tickUpper)
        external
        view
        returns (
            int56 tickCumulativeInside,
            uint160 secondsPerLiquidityInsideX128,
            uint32 secondsInside
        );
    function slot0() external view returns (uint160, int24, uint16, uint16, uint16, uint8, bool);
}

contract StakingRewardsV3 {

    address immutable public reward;
    address immutable public pool;

    address constant factory = 0x1F98431c8aD98523631AE4a59f267346ea31F984;
    PositionManagerV3 constant nftManager = PositionManagerV3(0xC36442b4a4522E871399CD717aBDD847Ab11FE88);
    uint constant DURATION = 7 days;
    uint constant PRECISION = 10 ** 18;

    uint rewardRate;
    uint periodFinish;
    uint lastUpdateTime;
    uint rewardPerLiquidityStored;
    uint public forfeit;

    mapping(uint => uint) public tokenRewardPerLiquidityPaid;
    mapping(uint => uint) public rewards;

    address public governance;
    address public nextGovernance;
    uint public delayGovernance;

    address public rewarder;
    
    address public treasury;
    address public nextTreasury;
    uint public delayTreasury;
    
    uint32 constant DELAY = 1 days;

    struct time {
        uint32 timestamp;
        uint32 secondsInside;
    }

    mapping(uint => time) public elapsed;
    mapping(uint => address) public owners;
    mapping(address => uint[]) public tokenIds;
    mapping(uint => uint) public liquidityOf;
    uint public totalLiquidity;

    uint public earned0;
    uint public earned1;

    event RewardPaid(address indexed sender, uint tokenId, uint reward);
    event RewardAdded(address indexed sender, uint reward);
    event Deposit(address indexed sender, uint tokenId, uint liquidity);
    event Withdraw(address indexed sender, uint tokenId, uint liquidity);
    event Collect(address indexed sender, uint tokenId, uint amount0, uint amount1);
    event Governance(address indexed previous, address indexed current, uint timestamp);
    event Treasury(address indexed previous, address indexed current, uint timestamp);

    constructor(address _reward, address _pool, address _governance, address _treasury, address _rewarder) {
        reward = _reward;
        pool = _pool;
        governance = _governance;
        treasury = _treasury;
        rewarder = _rewarder;
    }
    
    modifier onlyGovernance() {
        require(msg.sender == governance);
        _;
    }
    
    modifier onlyRewarder() {
        require(msg.sender == rewarder);
        _;
    }

    function setRewarder(address _rewarder) external onlyGovernance {
        rewarder = _rewarder;
    }

    function setGovernance(address _governance) external onlyGovernance {
        nextGovernance = _governance;
        delayGovernance = block.timestamp + DELAY;
    }

    function acceptGovernance() external {
        require(msg.sender == nextGovernance && delayGovernance < block.timestamp);
        emit Governance(governance, nextGovernance, block.timestamp);
        governance = nextGovernance;
    }

    function setTreasury(address _treasury) external onlyGovernance {
        nextTreasury = _treasury;
        delayTreasury = block.timestamp + DELAY;
    }

    function commitTreasury() external onlyGovernance {
        require(delayTreasury < block.timestamp);
        emit Treasury(treasury, nextTreasury, block.timestamp);
        treasury = nextTreasury;
    }

    function getTokenIdsLength(address _owner) external view returns (uint) {
        return tokenIds[_owner].length;
    }

    function getTokenIds(address _owner) external view returns (uint[] memory) {
        return tokenIds[_owner];
    }

    function lastTimeRewardApplicable() public view returns (uint) {
        return Math.min(block.timestamp, periodFinish);
    }

    function rewardPerLiquidity() public view returns (uint) {
        if (totalLiquidity == 0) {
            return rewardPerLiquidityStored;
        }
        return rewardPerLiquidityStored + ((lastTimeRewardApplicable() - lastUpdateTime) * rewardRate * PRECISION / totalLiquidity);
    }

    function collect(uint[] memory tokenId) external {
        for (uint i = 0; i < tokenId.length; i++) {
            _collect(tokenId[i]);
        }
    }

    function _collect(uint tokenId) internal {
        if (owners[tokenId] != address(0)) {
            PositionManagerV3.CollectParams memory _claim = PositionManagerV3.CollectParams(tokenId, treasury, type(uint128).max, type(uint128).max);
            (uint amount0, uint amount1) = nftManager.collect(_claim);
            earned0 += amount0;
            earned1 += amount1;
            emit Collect(msg.sender, tokenId, amount0, amount1);
        }
    }

    function earned(uint tokenId) public view returns (uint claimable, uint32 secondsInside, uint forfeited) {
        (,,,,,int24 _tickLower,int24 _tickUpper,,,,,) = nftManager.positions(tokenId);
        (,,secondsInside) = UniV3(pool).snapshotCumulativesInside(_tickLower, _tickUpper);

        uint _liquidity = liquidityOf[tokenId];
        time memory _elapsed = elapsed[tokenId];

        uint _maxSecondsElapsed = lastTimeRewardApplicable() - Math.min(_elapsed.timestamp, periodFinish);
        if (_maxSecondsElapsed > 0) {
            uint _secondsInside = Math.min(_maxSecondsElapsed, (secondsInside - _elapsed.secondsInside));
    
            uint _reward = (_liquidity * (rewardPerLiquidity() - tokenRewardPerLiquidityPaid[tokenId]) / PRECISION);
            uint _earned = _reward * _secondsInside / _maxSecondsElapsed;
            forfeited = _reward - _earned;
            claimable = _earned;
        }
        claimable += rewards[tokenId];
    }

    function getRewardForDuration() external view returns (uint) {
        return rewardRate * DURATION;
    }

    function deposit(uint tokenId) external update(tokenId) {
        (,,address token0,address token1,uint24 fee,int24 tickLower,int24 tickUpper,uint128 _liquidity,,,,) = nftManager.positions(tokenId);
        address _pool = PoolAddress.computeAddress(factory,PoolAddress.PoolKey({token0: token0, token1: token1, fee: fee}));

        require(pool == _pool);
        require(_liquidity > 0);

        (,int24 _tick,,,,,) = UniV3(_pool).slot0();
        require(tickLower <= _tick && _tick <= tickUpper);

        nftManager.transferFrom(msg.sender, address(this), tokenId);
        
        owners[tokenId] = msg.sender;
        tokenIds[msg.sender].push(tokenId);
        
        liquidityOf[tokenId] = _liquidity;
        totalLiquidity += _liquidity;

        emit Deposit(msg.sender, tokenId, _liquidity);
    }

    function _findIndex(uint[] memory array, uint element) internal pure returns (uint i) {
        for (i = 0; i < array.length; i++) {
            if (array[i] == element) {
                break;
            }
        }
    }

    function _remove(uint[] storage array, uint element) internal {
        uint _index = _findIndex(array, element);
        uint _length = array.length;
        if (_index >= _length) return;
        if (_index < _length-1) {
            array[_index] = array[_length-1];
        }

        array.pop();
    }

    function withdraw(uint tokenId) public update(tokenId) {
        _collect(tokenId);
        _withdraw(tokenId);
    }

    function _withdraw(uint tokenId) internal {
        require(owners[tokenId] == msg.sender);
        uint _liquidity = liquidityOf[tokenId];
        liquidityOf[tokenId] = 0;
        totalLiquidity -= _liquidity;
        owners[tokenId] = address(0);
        _remove(tokenIds[msg.sender], tokenId);
        nftManager.transferFrom(address(this), msg.sender, tokenId);
        delete elapsed[tokenId];
        emit Withdraw(msg.sender, tokenId, _liquidity);
    }

    function getRewards() external {
        uint[] memory _tokens = tokenIds[msg.sender];
        for (uint i = 0; i < _tokens.length; i++) {
            getReward(_tokens[i]);
        }
    }

    function getReward(uint tokenId) public update(tokenId) {
        _collect(tokenId);
        uint _reward = rewards[tokenId];
        if (_reward > 0) {
            rewards[tokenId] = 0;
            _safeTransfer(reward, _getRecipient(tokenId), _reward);

            emit RewardPaid(msg.sender, tokenId, _reward);
        }
    }

    function _getRecipient(uint tokenId) internal view returns (address) {
        if (owners[tokenId] != address(0)) {
            return owners[tokenId];
        } else {
            return nftManager.ownerOf(tokenId);
        }
    }

    function withdraw() external {
        uint[] memory _tokens = tokenIds[msg.sender];
        for (uint i = 0; i < _tokens.length; i++) {
            withdraw(_tokens[i]);
        }
    }

    function deposit_reward_token(address token, uint _reward) external {
        require(token == reward);
        notify(_reward);
    }

    function notify(uint amount) public onlyRewarder update(0) {
        if (block.timestamp >= periodFinish) {
            rewardRate = amount / DURATION;
        } else {
            uint _remaining = periodFinish - block.timestamp;
            uint _leftover = _remaining * rewardRate;

            rewardRate = (amount + _leftover) / DURATION;
        }

        lastUpdateTime = block.timestamp;
        periodFinish = block.timestamp + DURATION;

        _safeTransferFrom(reward, msg.sender, address(this), amount);
        emit RewardAdded(msg.sender, amount);
    }

    function refund() external onlyGovernance {
        uint _forfeit = forfeit;
        forfeit = 0;

        _safeTransfer(reward, treasury, _forfeit);
    }

    modifier update(uint tokenId) {
        uint _rewardPerLiquidityStored = rewardPerLiquidity();
        uint _lastUpdateTime = lastTimeRewardApplicable();
        rewardPerLiquidityStored = _rewardPerLiquidityStored;
        lastUpdateTime = _lastUpdateTime;
        if (tokenId != 0) {
            (uint _reward, uint32 _secondsInside, uint _forfeited) = earned(tokenId);
            tokenRewardPerLiquidityPaid[tokenId] = _rewardPerLiquidityStored;
            rewards[tokenId] = _reward;
            forfeit += _forfeited;

            if (elapsed[tokenId].timestamp < _lastUpdateTime) {
                elapsed[tokenId] = time(uint32(_lastUpdateTime), _secondsInside);
            }
        }
        _;
    }

    function _safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) =
            token.call(abi.encodeWithSelector(erc20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))));
    }

    function _safeTransferFrom(address token, address from, address to, uint256 value) internal {
        (bool success, bytes memory data) =
            token.call(abi.encodeWithSelector(erc20.transferFrom.selector, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))));
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_reward","type":"address"},{"internalType":"address","name":"_pool","type":"address"},{"internalType":"address","name":"_governance","type":"address"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_rewarder","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"current","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Governance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"current","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Treasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"acceptGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenId","type":"uint256[]"}],"name":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"commitTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delayGovernance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delayTreasury","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"deposit_reward_token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"earned","outputs":[{"internalType":"uint256","name":"claimable","type":"uint256"},{"internalType":"uint32","name":"secondsInside","type":"uint32"},{"internalType":"uint256","name":"forfeited","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earned0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earned1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"elapsed","outputs":[{"internalType":"uint32","name":"timestamp","type":"uint32"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forfeit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardForDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getTokenIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getTokenIdsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"liquidityOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextTreasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"notify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewarder","type":"address"}],"name":"setRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenRewardPerLiquidityPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b506040516200245b3803806200245b83398101604081905262000034916200009e565b6001600160a01b0394851660805292841660a052600780549285166001600160a01b0319938416179055600b8054918516918316919091179055600a80549290931691161790556200010e565b80516001600160a01b03811681146200009957600080fd5b919050565b600080600080600060a08688031215620000b757600080fd5b620000c28662000081565b9450620000d26020870162000081565b9350620000e26040870162000081565b9250620000f26060870162000081565b9150620001026080870162000081565b90509295509295909350565b60805160a0516122fd6200015e6000396000818161030901528181610bdc015261128b01526000818161034b0152818161077501528181610df501528181610e370152610ff001526122fd6000f3fe608060405234801561001057600080fd5b506004361061023c5760003560e01c806354021a8b1161013b578063ab033ea9116100b8578063ed7b686e1161007c578063ed7b686e14610556578063f0f442601461055f578063f301af4214610572578063f3d86e4a14610592578063f570cb7e1461059b57600080fd5b8063ab033ea9146104f4578063b6b55f2514610507578063d004b0361461051a578063d6ccdb221461053a578063dcc3e06e1461054357600080fd5b806361d027b3116100ff57806361d027b3146104aa57806380faa57d146104bd5780638ed42500146104c557806393f7aa67146104ce57806398d078b4146104e157600080fd5b806354021a8b1461040d57806357f46cbe1461045c578063590e1ae31461046f5780635aa6e675146104775780635f49a32c1461048a57600080fd5b8063228cb733116101c95780633ccfd60b1161018d5780633ccfd60b146103ae5780633de419e9146103b657806341d86d00146103c95780634d6ed8c4146103d157806351d201d81461040457600080fd5b8063228cb73314610346578063238efcbc1461036d5780632e1a7d4d14610375578063377f3300146103885780633a6462e41461039b57600080fd5b806311e904e31161021057806311e904e3146102d257806315770f92146102fb57806316f0115b146103045780631c1f78eb1461032b5780631c4b774b1461033357600080fd5b806274f27f1461024157806301f5d02e14610271578063025e7c271461029f5780630572b0cc146102c8575b600080fd5b600854610254906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61029161027f366004611d79565b60056020526000908152604090205481565b604051908152602001610268565b6102546102ad366004611d79565b600f602052600090815260409020546001600160a01b031681565b6102d06105a3565b005b6102916102e0366004611da7565b6001600160a01b031660009081526010602052604090205490565b61029160125481565b6102547f000000000000000000000000000000000000000000000000000000000000000081565b610291610645565b6102d0610341366004611d79565b61065d565b6102547f000000000000000000000000000000000000000000000000000000000000000081565b6102d06107e6565b6102d0610383366004611d79565b610877565b600c54610254906001600160a01b031681565b6102d06103a9366004611da7565b610975565b6102d06109ae565b6102916103c4366004611dc4565b610a4c565b6102d0610a7d565b6103e46103df366004611d79565b610b0f565b6040805193845263ffffffff909216602084015290820152606001610268565b61029160095481565b61043f61041b366004611d79565b600e6020526000908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201610268565b6102d061046a366004611e06565b610d8c565b6102d0610dcc565b600754610254906001600160a01b031681565b610291610498366004611d79565b60116020526000908152604090205481565b600b54610254906001600160a01b031681565b610291610e27565b61029160145481565b6102d06104dc366004611dc4565b610e35565b6102d06104ef366004611d79565b610e78565b6102d0610502366004611da7565b611053565b6102d0610515366004611d79565b611098565b61052d610528366004611da7565b6114fa565b6040516102689190611ec4565b61029160135481565b600a54610254906001600160a01b031681565b610291600d5481565b6102d061056d366004611da7565b611566565b610291610580366004611d79565b60066020526000908152604090205481565b61029160045481565b6102916115ab565b336000908152601060209081526040808320805482518185028101850190935280835291929091908301828280156105fa57602002820191906000526020600020905b8154815260200190600101908083116105e6575b5050505050905060005b81518110156106415761062f82828151811061062257610622611f08565b602002602001015161065d565b8061063981611f34565b915050610604565b5050565b600062093a806000546106589190611f4f565b905090565b8060006106686115ab565b90506000610674610e27565b600383905560028190559050821561074357600080600061069486610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926106cc908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561073f5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b61074c8461160e565b60008481526006602052604090205480156107df576000858152600660205260408120556107a37f000000000000000000000000000000000000000000000000000000000000000061079d8761177a565b83611841565b604080518681526020810183905233917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b5050505050565b6008546001600160a01b031633148015610801575042600954105b61080a57600080fd5b6008546007546040514281526001600160a01b0392831692909116907fb2d1f3d32490fa2a19a9b5f9f65ed2610f2b93c402d647e6ad79b49fe5f153769060200160405180910390a3600854600780546001600160a01b0319166001600160a01b03909216919091179055565b8060006108826115ab565b9050600061088e610e27565b600383905560028190559050821561095d5760008060006108ae86610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926108e6908490611f6e565b90915550506000868152600e602052604090205463ffffffff168411156109595760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6109668461160e565b61096f84611912565b50505050565b6007546001600160a01b0316331461098c57600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015610a0557602002820191906000526020600020905b8154815260200190600101908083116109f1575b5050505050905060005b815181101561064157610a3a828281518110610a2d57610a2d611f08565b6020026020010151610877565b80610a4481611f34565b915050610a0f565b60106020528160005260406000208181548110610a6857600080fd5b90600052602060002001600091509150505481565b6007546001600160a01b03163314610a9457600080fd5b42600d5410610aa257600080fd5b600c54600b546040514281526001600160a01b0392831692909116907f7385805103b4fb95658c5a10668e0a1296df53ff41afec0b79d78d5461a71f389060200160405180910390a3600c54600b80546001600160a01b0319166001600160a01b03909216919091179055565b600080600080600073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab88876040518263ffffffff1660e01b8152600401610b5991815260200190565b6101806040518083038186803b158015610b7257600080fd5b505afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa9190611fcd565b50506040516351c403f960e11b8152600286810b600483015285900b6024820152949b50929950506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016975063a38807f296505060449091019350610c1692505050565b60606040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6691906120ae565b600089815260116020908152604080832054600e835281842082518084019093525463ffffffff8082168085526401000000009092041693830193909352600154949a50955093509091610cba9190611a62565b610cc2610e27565b610ccc919061210a565b90508015610d65576000610cf58284602001518a610cea9190612121565b63ffffffff16611a62565b60008b81526005602052604081205491925090670de0b6b3a764000090610d1a6115ab565b610d24919061210a565b610d2e9087611f4f565b610d389190612146565b9050600083610d478484611f4f565b610d519190612146565b9050610d5d818361210a565b909a50975050505b600089815260066020526040902054610d7e9089611f6e565b975050505050509193909250565b60005b815181101561064157610dba828281518110610dad57610dad611f08565b602002602001015161160e565b80610dc481611f34565b915050610d8f565b6007546001600160a01b03163314610de357600080fd5b600480546000909155600b54610e24907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683611841565b50565b600061065842600154611a62565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614610e7357600080fd5b610641815b600a546001600160a01b03163314610e8f57600080fd5b600080610e9a6115ab565b90506000610ea6610e27565b6003839055600281905590508215610f75576000806000610ec686610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392610efe908490611f6e565b90915550506000868152600e602052604090205463ffffffff16841115610f715760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6001544210610f9357610f8b62093a8085612146565b600055610fd4565b600042600154610fa3919061210a565b90506000805482610fb49190611f4f565b905062093a80610fc48288611f6e565b610fce9190612146565b60005550505b426002819055610fe89062093a8090611f6e565b6001556110177f0000000000000000000000000000000000000000000000000000000000000000333087611a7a565b60405184815233907fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29906020015b60405180910390a250505050565b6007546001600160a01b0316331461106a57600080fd5b600880546001600160a01b0319166001600160a01b0383161790556110926201518042611f6e565b60095550565b8060006110a36115ab565b905060006110af610e27565b600383905560028190559050821561117e5760008060006110cf86610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392611107908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561117a5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b60008060008060008073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab888b6040518263ffffffff1660e01b81526004016111c991815260200190565b6101806040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190611fcd565b505050509750975097509750975097505050600061127d731f98431c8ad98523631ae4a59f267346ea31f98460405180606001604052808a6001600160a01b03168152602001896001600160a01b031681526020018862ffffff16815250611b5b565b9050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146112bd57600080fd5b6000826001600160801b0316116112d357600080fd5b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611346919061218a565b50505050509150508060020b8560020b1315801561136a57508360020b8160020b13155b61137357600080fd5b6040516323b872dd60e01b8152336004820152306024820152604481018d905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156113cc57600080fd5b505af11580156113e0573d6000803e3d6000fd5b5050505033600f60008e815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060106000336001600160a01b03166001600160a01b031681526020019081526020016000208c9080600181540180825580915050600190039060005260206000200160009091909190915055826001600160801b0316601160008e815260200190815260200160002081905550826001600160801b0316601260008282546114a49190611f6e565b9091555050604080518d81526001600160801b038516602082015233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a2505050505050505050505050565b6001600160a01b03811660009081526010602090815260409182902080548351818402810184019094528084526060939283018282801561155a57602002820191906000526020600020905b815481526020019060010190808311611546575b50505050509050919050565b6007546001600160a01b0316331461157d57600080fd5b600c80546001600160a01b0319166001600160a01b0383161790556115a56201518042611f6e565b600d5550565b6000601254600014156115bf575060035490565b601254670de0b6b3a76400006000546002546115d9610e27565b6115e3919061210a565b6115ed9190611f4f565b6115f79190611f4f565b6116019190612146565b6003546106589190611f6e565b6000818152600f60205260409020546001600160a01b031615610e245760408051608081018252828152600b546001600160a01b03908116602083019081526001600160801b0383850181815260608501828152955163fc6f786560e01b81528551600482015292519093166024830152915182166044820152925116606483015290600090819073c36442b4a4522e871399cd717abdd847ab11fe889063fc6f7865906084016040805180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611706919061221a565b91509150816013600082825461171c9190611f6e565b9250508190555080601460008282546117359190611f6e565b9091555050604080518581526020810184905290810182905233907fde5e3abbba77c313e4f5881ab0685bbbbb54f38b5cfbdd6230e88642a5df29f190606001611045565b6000818152600f60205260408120546001600160a01b0316156117b357506000908152600f60205260409020546001600160a01b031690565b6040516331a9108f60e11b81526004810183905273c36442b4a4522e871399cd717abdd847ab11fe8890636352211e9060240160206040518083038186803b1580156117fe57600080fd5b505afa158015611812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611836919061223e565b92915050565b919050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161189d919061225b565b6000604051808303816000865af19150503d80600081146118da576040519150601f19603f3d011682016040523d82523d6000602084013e6118df565b606091505b50915091508180156119095750805115806119095750808060200190518101906119099190612296565b6107df57600080fd5b6000818152600f60205260409020546001600160a01b0316331461193557600080fd5b6000818152601160205260408120805490829055601280549192839261195c90849061210a565b90915550506000828152600f6020908152604080832080546001600160a01b0319169055338352601090915290206119949083611c44565b6040516323b872dd60e01b81523060048201523360248201526044810183905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156119ed57600080fd5b505af1158015611a01573d6000803e3d6000fd5b5050506000838152600e6020908152604091829020805467ffffffffffffffff1916905581518581529081018490523392507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a25050565b6000818310611a715781611a73565b825b9392505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611ade919061225b565b6000604051808303816000865af19150503d8060008114611b1b576040519150601f19603f3d011682016040523d82523d6000602084013e611b20565b606091505b5091509150818015611b4a575080511580611b4a575080806020019051810190611b4a9190612296565b611b5357600080fd5b505050505050565b600081602001516001600160a01b031682600001516001600160a01b031610611b8357600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6000611c9f83805480602002602001604051908101604052809291908181526020018280548015611c9457602002820191906000526020600020905b815481526020019060010190808311611c80575b505050505083611d35565b8354909150808210611cb15750505050565b611cbc60018261210a565b821015611d095783611ccf60018361210a565b81548110611cdf57611cdf611f08565b9060005260206000200154848381548110611cfc57611cfc611f08565b6000918252602090912001555b83805480611d1957611d196122b1565b6001900381819060005260206000200160009055905550505050565b60005b82518110156118365781838281518110611d5457611d54611f08565b60200260200101511415611d6757611836565b80611d7181611f34565b915050611d38565b600060208284031215611d8b57600080fd5b5035919050565b6001600160a01b0381168114610e2457600080fd5b600060208284031215611db957600080fd5b8135611a7381611d92565b60008060408385031215611dd757600080fd5b8235611de281611d92565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611e1957600080fd5b823567ffffffffffffffff80821115611e3157600080fd5b818501915085601f830112611e4557600080fd5b813581811115611e5757611e57611df0565b8060051b604051601f19603f83011681018181108582111715611e7c57611e7c611df0565b604052918252848201925083810185019188831115611e9a57600080fd5b938501935b82851015611eb857843584529385019392850192611e9f565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611efc57835183529284019291840191600101611ee0565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f4857611f48611f1e565b5060010190565b6000816000190483118215151615611f6957611f69611f1e565b500290565b60008219821115611f8157611f81611f1e565b500190565b805161183c81611d92565b805162ffffff8116811461183c57600080fd5b8051600281900b811461183c57600080fd5b80516001600160801b038116811461183c57600080fd5b6000806000806000806000806000806000806101808d8f031215611ff057600080fd5b8c516bffffffffffffffffffffffff8116811461200c57600080fd5b9b5061201a60208e01611f86565b9a5061202860408e01611f86565b995061203660608e01611f86565b985061204460808e01611f91565b975061205260a08e01611fa4565b965061206060c08e01611fa4565b955061206e60e08e01611fb6565b94506101008d015193506101208d0151925061208d6101408e01611fb6565b915061209c6101608e01611fb6565b90509295989b509295989b509295989b565b6000806000606084860312156120c357600080fd5b83518060060b81146120d457600080fd5b60208501519093506120e581611d92565b604085015190925063ffffffff811681146120ff57600080fd5b809150509250925092565b60008282101561211c5761211c611f1e565b500390565b600063ffffffff8381169083168181101561213e5761213e611f1e565b039392505050565b60008261216357634e487b7160e01b600052601260045260246000fd5b500490565b805161ffff8116811461183c57600080fd5b8051801515811461183c57600080fd5b600080600080600080600060e0888a0312156121a557600080fd5b87516121b081611d92565b96506121be60208901611fa4565b95506121cc60408901612168565b94506121da60608901612168565b93506121e860808901612168565b925060a088015160ff811681146121fe57600080fd5b915061220c60c0890161217a565b905092959891949750929550565b6000806040838503121561222d57600080fd5b505080516020909101519092909150565b60006020828403121561225057600080fd5b8151611a7381611d92565b6000825160005b8181101561227c5760208186018101518583015201612262565b8181111561228b576000828501525b509190910192915050565b6000602082840312156122a857600080fd5b611a738261217a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220321a1444f4fc594a5788d007fb07e957162fbfda7137f8f867929516f950829a64736f6c63430008090033000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e900000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf50000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c0000000000000000000000000dba6457ea72ecf784a55abd738b1f9b6c45fd020000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061023c5760003560e01c806354021a8b1161013b578063ab033ea9116100b8578063ed7b686e1161007c578063ed7b686e14610556578063f0f442601461055f578063f301af4214610572578063f3d86e4a14610592578063f570cb7e1461059b57600080fd5b8063ab033ea9146104f4578063b6b55f2514610507578063d004b0361461051a578063d6ccdb221461053a578063dcc3e06e1461054357600080fd5b806361d027b3116100ff57806361d027b3146104aa57806380faa57d146104bd5780638ed42500146104c557806393f7aa67146104ce57806398d078b4146104e157600080fd5b806354021a8b1461040d57806357f46cbe1461045c578063590e1ae31461046f5780635aa6e675146104775780635f49a32c1461048a57600080fd5b8063228cb733116101c95780633ccfd60b1161018d5780633ccfd60b146103ae5780633de419e9146103b657806341d86d00146103c95780634d6ed8c4146103d157806351d201d81461040457600080fd5b8063228cb73314610346578063238efcbc1461036d5780632e1a7d4d14610375578063377f3300146103885780633a6462e41461039b57600080fd5b806311e904e31161021057806311e904e3146102d257806315770f92146102fb57806316f0115b146103045780631c1f78eb1461032b5780631c4b774b1461033357600080fd5b806274f27f1461024157806301f5d02e14610271578063025e7c271461029f5780630572b0cc146102c8575b600080fd5b600854610254906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61029161027f366004611d79565b60056020526000908152604090205481565b604051908152602001610268565b6102546102ad366004611d79565b600f602052600090815260409020546001600160a01b031681565b6102d06105a3565b005b6102916102e0366004611da7565b6001600160a01b031660009081526010602052604090205490565b61029160125481565b6102547f00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf581565b610291610645565b6102d0610341366004611d79565b61065d565b6102547f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e981565b6102d06107e6565b6102d0610383366004611d79565b610877565b600c54610254906001600160a01b031681565b6102d06103a9366004611da7565b610975565b6102d06109ae565b6102916103c4366004611dc4565b610a4c565b6102d0610a7d565b6103e46103df366004611d79565b610b0f565b6040805193845263ffffffff909216602084015290820152606001610268565b61029160095481565b61043f61041b366004611d79565b600e6020526000908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201610268565b6102d061046a366004611e06565b610d8c565b6102d0610dcc565b600754610254906001600160a01b031681565b610291610498366004611d79565b60116020526000908152604090205481565b600b54610254906001600160a01b031681565b610291610e27565b61029160145481565b6102d06104dc366004611dc4565b610e35565b6102d06104ef366004611d79565b610e78565b6102d0610502366004611da7565b611053565b6102d0610515366004611d79565b611098565b61052d610528366004611da7565b6114fa565b6040516102689190611ec4565b61029160135481565b600a54610254906001600160a01b031681565b610291600d5481565b6102d061056d366004611da7565b611566565b610291610580366004611d79565b60066020526000908152604090205481565b61029160045481565b6102916115ab565b336000908152601060209081526040808320805482518185028101850190935280835291929091908301828280156105fa57602002820191906000526020600020905b8154815260200190600101908083116105e6575b5050505050905060005b81518110156106415761062f82828151811061062257610622611f08565b602002602001015161065d565b8061063981611f34565b915050610604565b5050565b600062093a806000546106589190611f4f565b905090565b8060006106686115ab565b90506000610674610e27565b600383905560028190559050821561074357600080600061069486610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926106cc908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561073f5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b61074c8461160e565b60008481526006602052604090205480156107df576000858152600660205260408120556107a37f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e961079d8761177a565b83611841565b604080518681526020810183905233917fd6f2c8500df5b44f11e9e48b91ff9f1b9d81bc496d55570c2b1b75bf65243f51910160405180910390a25b5050505050565b6008546001600160a01b031633148015610801575042600954105b61080a57600080fd5b6008546007546040514281526001600160a01b0392831692909116907fb2d1f3d32490fa2a19a9b5f9f65ed2610f2b93c402d647e6ad79b49fe5f153769060200160405180910390a3600854600780546001600160a01b0319166001600160a01b03909216919091179055565b8060006108826115ab565b9050600061088e610e27565b600383905560028190559050821561095d5760008060006108ae86610b0f565b60008981526005602090815260408083208b9055600690915281208490556004805494975092955090935083926108e6908490611f6e565b90915550506000868152600e602052604090205463ffffffff168411156109595760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6109668461160e565b61096f84611912565b50505050565b6007546001600160a01b0316331461098c57600080fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015610a0557602002820191906000526020600020905b8154815260200190600101908083116109f1575b5050505050905060005b815181101561064157610a3a828281518110610a2d57610a2d611f08565b6020026020010151610877565b80610a4481611f34565b915050610a0f565b60106020528160005260406000208181548110610a6857600080fd5b90600052602060002001600091509150505481565b6007546001600160a01b03163314610a9457600080fd5b42600d5410610aa257600080fd5b600c54600b546040514281526001600160a01b0392831692909116907f7385805103b4fb95658c5a10668e0a1296df53ff41afec0b79d78d5461a71f389060200160405180910390a3600c54600b80546001600160a01b0319166001600160a01b03909216919091179055565b600080600080600073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab88876040518263ffffffff1660e01b8152600401610b5991815260200190565b6101806040518083038186803b158015610b7257600080fd5b505afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa9190611fcd565b50506040516351c403f960e11b8152600286810b600483015285900b6024820152949b50929950506001600160a01b037f00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf516975063a38807f296505060449091019350610c1692505050565b60606040518083038186803b158015610c2e57600080fd5b505afa158015610c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6691906120ae565b600089815260116020908152604080832054600e835281842082518084019093525463ffffffff8082168085526401000000009092041693830193909352600154949a50955093509091610cba9190611a62565b610cc2610e27565b610ccc919061210a565b90508015610d65576000610cf58284602001518a610cea9190612121565b63ffffffff16611a62565b60008b81526005602052604081205491925090670de0b6b3a764000090610d1a6115ab565b610d24919061210a565b610d2e9087611f4f565b610d389190612146565b9050600083610d478484611f4f565b610d519190612146565b9050610d5d818361210a565b909a50975050505b600089815260066020526040902054610d7e9089611f6e565b975050505050509193909250565b60005b815181101561064157610dba828281518110610dad57610dad611f08565b602002602001015161160e565b80610dc481611f34565b915050610d8f565b6007546001600160a01b03163314610de357600080fd5b600480546000909155600b54610e24907f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e9906001600160a01b031683611841565b50565b600061065842600154611a62565b7f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e96001600160a01b0316826001600160a01b031614610e7357600080fd5b610641815b600a546001600160a01b03163314610e8f57600080fd5b600080610e9a6115ab565b90506000610ea6610e27565b6003839055600281905590508215610f75576000806000610ec686610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392610efe908490611f6e565b90915550506000868152600e602052604090205463ffffffff16841115610f715760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b6001544210610f9357610f8b62093a8085612146565b600055610fd4565b600042600154610fa3919061210a565b90506000805482610fb49190611f4f565b905062093a80610fc48288611f6e565b610fce9190612146565b60005550505b426002819055610fe89062093a8090611f6e565b6001556110177f000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e9333087611a7a565b60405184815233907fac24935fd910bc682b5ccb1a07b718cadf8cf2f6d1404c4f3ddc3662dae40e29906020015b60405180910390a250505050565b6007546001600160a01b0316331461106a57600080fd5b600880546001600160a01b0319166001600160a01b0383161790556110926201518042611f6e565b60095550565b8060006110a36115ab565b905060006110af610e27565b600383905560028190559050821561117e5760008060006110cf86610b0f565b60008981526005602090815260408083208b905560069091528120849055600480549497509295509093508392611107908490611f6e565b90915550506000868152600e602052604090205463ffffffff1684111561117a5760408051808201825263ffffffff8087168252848116602080840191825260008b8152600e9091529390932091518254935182166401000000000267ffffffffffffffff199094169116179190911790555b5050505b60008060008060008073c36442b4a4522e871399cd717abdd847ab11fe886001600160a01b03166399fbab888b6040518263ffffffff1660e01b81526004016111c991815260200190565b6101806040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190611fcd565b505050509750975097509750975097505050600061127d731f98431c8ad98523631ae4a59f267346ea31f98460405180606001604052808a6001600160a01b03168152602001896001600160a01b031681526020018862ffffff16815250611b5b565b9050806001600160a01b03167f00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf56001600160a01b0316146112bd57600080fd5b6000826001600160801b0316116112d357600080fd5b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611346919061218a565b50505050509150508060020b8560020b1315801561136a57508360020b8160020b13155b61137357600080fd5b6040516323b872dd60e01b8152336004820152306024820152604481018d905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156113cc57600080fd5b505af11580156113e0573d6000803e3d6000fd5b5050505033600f60008e815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060106000336001600160a01b03166001600160a01b031681526020019081526020016000208c9080600181540180825580915050600190039060005260206000200160009091909190915055826001600160801b0316601160008e815260200190815260200160002081905550826001600160801b0316601260008282546114a49190611f6e565b9091555050604080518d81526001600160801b038516602082015233917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15910160405180910390a2505050505050505050505050565b6001600160a01b03811660009081526010602090815260409182902080548351818402810184019094528084526060939283018282801561155a57602002820191906000526020600020905b815481526020019060010190808311611546575b50505050509050919050565b6007546001600160a01b0316331461157d57600080fd5b600c80546001600160a01b0319166001600160a01b0383161790556115a56201518042611f6e565b600d5550565b6000601254600014156115bf575060035490565b601254670de0b6b3a76400006000546002546115d9610e27565b6115e3919061210a565b6115ed9190611f4f565b6115f79190611f4f565b6116019190612146565b6003546106589190611f6e565b6000818152600f60205260409020546001600160a01b031615610e245760408051608081018252828152600b546001600160a01b03908116602083019081526001600160801b0383850181815260608501828152955163fc6f786560e01b81528551600482015292519093166024830152915182166044820152925116606483015290600090819073c36442b4a4522e871399cd717abdd847ab11fe889063fc6f7865906084016040805180830381600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611706919061221a565b91509150816013600082825461171c9190611f6e565b9250508190555080601460008282546117359190611f6e565b9091555050604080518581526020810184905290810182905233907fde5e3abbba77c313e4f5881ab0685bbbbb54f38b5cfbdd6230e88642a5df29f190606001611045565b6000818152600f60205260408120546001600160a01b0316156117b357506000908152600f60205260409020546001600160a01b031690565b6040516331a9108f60e11b81526004810183905273c36442b4a4522e871399cd717abdd847ab11fe8890636352211e9060240160206040518083038186803b1580156117fe57600080fd5b505afa158015611812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611836919061223e565b92915050565b919050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161189d919061225b565b6000604051808303816000865af19150503d80600081146118da576040519150601f19603f3d011682016040523d82523d6000602084013e6118df565b606091505b50915091508180156119095750805115806119095750808060200190518101906119099190612296565b6107df57600080fd5b6000818152600f60205260409020546001600160a01b0316331461193557600080fd5b6000818152601160205260408120805490829055601280549192839261195c90849061210a565b90915550506000828152600f6020908152604080832080546001600160a01b0319169055338352601090915290206119949083611c44565b6040516323b872dd60e01b81523060048201523360248201526044810183905273c36442b4a4522e871399cd717abdd847ab11fe88906323b872dd90606401600060405180830381600087803b1580156119ed57600080fd5b505af1158015611a01573d6000803e3d6000fd5b5050506000838152600e6020908152604091829020805467ffffffffffffffff1916905581518581529081018490523392507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568910160405180910390a25050565b6000818310611a715781611a73565b825b9392505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611ade919061225b565b6000604051808303816000865af19150503d8060008114611b1b576040519150601f19603f3d011682016040523d82523d6000602084013e611b20565b606091505b5091509150818015611b4a575080511580611b4a575080806020019051810190611b4a9190612296565b611b5357600080fd5b505050505050565b600081602001516001600160a01b031682600001516001600160a01b031610611b8357600080fd5b815160208084015160408086015181516001600160a01b0395861681860152949092168482015262ffffff90911660608085019190915281518085038201815260808501909252815191909201206001600160f81b031960a08401529085901b6bffffffffffffffffffffffff191660a183015260b58201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d582015260f50160408051601f1981840301815291905280516020909101209392505050565b6000611c9f83805480602002602001604051908101604052809291908181526020018280548015611c9457602002820191906000526020600020905b815481526020019060010190808311611c80575b505050505083611d35565b8354909150808210611cb15750505050565b611cbc60018261210a565b821015611d095783611ccf60018361210a565b81548110611cdf57611cdf611f08565b9060005260206000200154848381548110611cfc57611cfc611f08565b6000918252602090912001555b83805480611d1957611d196122b1565b6001900381819060005260206000200160009055905550505050565b60005b82518110156118365781838281518110611d5457611d54611f08565b60200260200101511415611d6757611836565b80611d7181611f34565b915050611d38565b600060208284031215611d8b57600080fd5b5035919050565b6001600160a01b0381168114610e2457600080fd5b600060208284031215611db957600080fd5b8135611a7381611d92565b60008060408385031215611dd757600080fd5b8235611de281611d92565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611e1957600080fd5b823567ffffffffffffffff80821115611e3157600080fd5b818501915085601f830112611e4557600080fd5b813581811115611e5757611e57611df0565b8060051b604051601f19603f83011681018181108582111715611e7c57611e7c611df0565b604052918252848201925083810185019188831115611e9a57600080fd5b938501935b82851015611eb857843584529385019392850192611e9f565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015611efc57835183529284019291840191600101611ee0565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f4857611f48611f1e565b5060010190565b6000816000190483118215151615611f6957611f69611f1e565b500290565b60008219821115611f8157611f81611f1e565b500190565b805161183c81611d92565b805162ffffff8116811461183c57600080fd5b8051600281900b811461183c57600080fd5b80516001600160801b038116811461183c57600080fd5b6000806000806000806000806000806000806101808d8f031215611ff057600080fd5b8c516bffffffffffffffffffffffff8116811461200c57600080fd5b9b5061201a60208e01611f86565b9a5061202860408e01611f86565b995061203660608e01611f86565b985061204460808e01611f91565b975061205260a08e01611fa4565b965061206060c08e01611fa4565b955061206e60e08e01611fb6565b94506101008d015193506101208d0151925061208d6101408e01611fb6565b915061209c6101608e01611fb6565b90509295989b509295989b509295989b565b6000806000606084860312156120c357600080fd5b83518060060b81146120d457600080fd5b60208501519093506120e581611d92565b604085015190925063ffffffff811681146120ff57600080fd5b809150509250925092565b60008282101561211c5761211c611f1e565b500390565b600063ffffffff8381169083168181101561213e5761213e611f1e565b039392505050565b60008261216357634e487b7160e01b600052601260045260246000fd5b500490565b805161ffff8116811461183c57600080fd5b8051801515811461183c57600080fd5b600080600080600080600060e0888a0312156121a557600080fd5b87516121b081611d92565b96506121be60208901611fa4565b95506121cc60408901612168565b94506121da60608901612168565b93506121e860808901612168565b925060a088015160ff811681146121fe57600080fd5b915061220c60c0890161217a565b905092959891949750929550565b6000806040838503121561222d57600080fd5b505080516020909101519092909150565b60006020828403121561225057600080fd5b8151611a7381611d92565b6000825160005b8181101561227c5760208186018101518583015201612262565b8181111561228b576000828501525b509190910192915050565b6000602082840312156122a857600080fd5b611a738261217a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220321a1444f4fc594a5788d007fb07e957162fbfda7137f8f867929516f950829a64736f6c63430008090033

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

000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e900000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf50000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c0000000000000000000000000dba6457ea72ecf784a55abd738b1f9b6c45fd020000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c

-----Decoded View---------------
Arg [0] : _reward (address): 0xEdB67Ee1B171c4eC66E6c10EC43EDBbA20FaE8e9
Arg [1] : _pool (address): 0x11B7a6bc0259ed6Cf9DB8F499988F9eCc7167bf5
Arg [2] : _governance (address): 0x2D407dDb06311396fE14D4b49da5F0471447d45C
Arg [3] : _treasury (address): 0x0DBA6457EA72ecf784a55AbD738b1f9b6c45FD02
Arg [4] : _rewarder (address): 0x2D407dDb06311396fE14D4b49da5F0471447d45C

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000edb67ee1b171c4ec66e6c10ec43edbba20fae8e9
Arg [1] : 00000000000000000000000011b7a6bc0259ed6cf9db8f499988f9ecc7167bf5
Arg [2] : 0000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c
Arg [3] : 0000000000000000000000000dba6457ea72ecf784a55abd738b1f9b6c45fd02
Arg [4] : 0000000000000000000000002d407ddb06311396fe14d4b49da5f0471447d45c


Deployed Bytecode Sourcemap

2773:10878:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:29;;;;;-1:-1:-1;;;;;3425:29:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;3425:29:0;;;;;;;;3285:56;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;553:25:1;;;541:2;526:18;3285:56:0;407:177:1;3803:38:0;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3803:38:0;;;10398:194;;;:::i;:::-;;5963:121;;;;;;:::i;:::-;-1:-1:-1;;;;;6053:16:0;6029:4;6053:16;;;:8;:16;;;;;:23;;5963:121;3944:26;;;;;;2846:29;;;;;8272:108;;;:::i;10600:339::-;;;;;;:::i;:::-;;:::i;2808:31::-;;;;;5335:239;;;:::i;9791:120::-;;;;;;:::i;:::-;;:::i;3563:27::-;;;;;-1:-1:-1;;;;;3563:27:0;;;5049:103;;;;;;:::i;:::-;;:::i;11193:191::-;;;:::i;3848:42::-;;;;;;:::i;:::-;;:::i;5747:208::-;;;:::i;7286:978::-;;;;;;:::i;:::-;;:::i;:::-;;;;1497:25:1;;;1570:10;1558:23;;;1553:2;1538:18;;1531:51;1598:18;;;1591:34;1485:2;1470:18;7286:978:0;1297:334:1;3461:27:0;;;;;;3760:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:10:1;1853:15;;;1835:34;;1905:15;;;;1900:2;1885:18;;1878:43;1779:18;3760:36:0;1636:291:1;6653:156:0;;;;;;:::i;:::-;;:::i;12130:160::-;;;:::i;3393:25::-;;;;;-1:-1:-1;;;;;3393:25:0;;;3897:40;;;;;;:::i;:::-;;;;;;;;;;;;;;3533:23;;;;;-1:-1:-1;;;;;3533:23:0;;;6217:128;;;:::i;4005:19::-;;;;;;11392:137;;;;;;:::i;:::-;;:::i;11537:585::-;;;;;;:::i;:::-;;:::i;5160:167::-;;;;;;:::i;:::-;;:::i;8388:833::-;;;;;;:::i;:::-;;:::i;6092:117::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3979:19::-;;;;;;3497:23;;;;;-1:-1:-1;;;;;3497:23:0;;;3597:25;;;;;;5582:157;;;;;;:::i;:::-;;:::i;3348:36::-;;;;;;:::i;:::-;;;;;;;;;;;;;;3257:19;;;;;;6353:292;;;:::i;10398:194::-;10473:10;10440:21;10464:20;;;:8;:20;;;;;;;;10440:44;;;;;;;;;;;;;;;;;;;10464:20;;10440:44;;;10464:20;10440:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10500:6;10495:90;10516:7;:14;10512:1;:18;10495:90;;;10552:21;10562:7;10570:1;10562:10;;;;;;;;:::i;:::-;;;;;;;10552:9;:21::i;:::-;10532:3;;;;:::i;:::-;;;;10495:90;;;;10429:163;10398:194::o;8272:108::-;8327:4;3093:6;8351:10;;:21;;;;:::i;:::-;8344:28;;8272:108;:::o;10600:339::-;10647:7;12339:30;12372:20;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52;;;12526:14;:32;;;12403:49;-1:-1:-1;12573:12:0;;12569:438;;12603:12;12617:21;12640:15;12659;12666:7;12659:6;:15::i;:::-;12689:36;;;;:27;:36;;;;;;;;:64;;;12768:7;:16;;;;;:26;;;12809:7;:21;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21;;12602:72;;12809:21;:::i;:::-;;;;-1:-1:-1;;12851:16:0;;;;:7;:16;;;;;:26;;;:44;-1:-1:-1;12847:149:0;;;12935:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12916:16:0;;;:7;:16;;;;;;;:64;;;;;;;;;;-1:-1:-1;;12916:64:0;;;;;;;;;;;;12847:149;12587:420;;;12569:438;10667:17:::1;10676:7;10667:8;:17::i;:::-;10695:12;10710:16:::0;;;:7:::1;:16;::::0;;;;;10741:11;;10737:195:::1;;10788:1;10769:16:::0;;;:7:::1;:16;::::0;;;;:20;10804:54:::1;10818:6;10826:22;10777:7:::0;10826:13:::1;:22::i;:::-;10850:7;10804:13;:54::i;:::-;10880:40;::::0;;4705:25:1;;;4761:2;4746:18;;4739:34;;;10891:10:0::1;::::0;10880:40:::1;::::0;4678:18:1;10880:40:0::1;;;;;;;10737:195;10656:283;12328:698:::0;;10600:339;;:::o;5335:239::-;5405:14;;-1:-1:-1;;;;;5405:14:0;5391:10;:28;:65;;;;;5441:15;5423;;:33;5391:65;5383:74;;;;;;5496:14;;5484:10;;5473:55;;5512:15;553:25:1;;-1:-1:-1;;;;;5496:14:0;;;;5484:10;;;;5473:55;;541:2:1;526:18;5473:55:0;;;;;;;5552:14;;5539:10;:27;;-1:-1:-1;;;;;;5539:27:0;-1:-1:-1;;;;;5552:14:0;;;5539:27;;;;;;5335:239::o;9791:120::-;9837:7;12339:30;12372:20;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52;;;12526:14;:32;;;12403:49;-1:-1:-1;12573:12:0;;12569:438;;12603:12;12617:21;12640:15;12659;12666:7;12659:6;:15::i;:::-;12689:36;;;;:27;:36;;;;;;;;:64;;;12768:7;:16;;;;;:26;;;12809:7;:21;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21;;12602:72;;12809:21;:::i;:::-;;;;-1:-1:-1;;12851:16:0;;;;:7;:16;;;;;:26;;;:44;-1:-1:-1;12847:149:0;;;12935:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12916:16:0;;;:7;:16;;;;;;;:64;;;;;;;;;;-1:-1:-1;;12916:64:0;;;;;;;;;;;;12847:149;12587:420;;;12569:438;9857:17:::1;9866:7;9857:8;:17::i;:::-;9885:18;9895:7;9885:9;:18::i;:::-;12328:698:::0;;9791:120;;:::o;5049:103::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5124:8:::1;:20:::0;;-1:-1:-1;;;;;;5124:20:0::1;-1:-1:-1::0;;;;;5124:20:0;;;::::1;::::0;;;::::1;::::0;;5049:103::o;11193:191::-;11266:10;11233:21;11257:20;;;:8;:20;;;;;;;;11233:44;;;;;;;;;;;;;;;;;;;11257:20;;11233:44;;;11257:20;11233:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11293:6;11288:89;11309:7;:14;11305:1;:18;11288:89;;;11345:20;11354:7;11362:1;11354:10;;;;;;;;:::i;:::-;;;;;;;11345:8;:20::i;:::-;11325:3;;;;:::i;:::-;;;;11288:89;;3848:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5747:208::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5832:15:::1;5816:13;;:31;5808:40;;;::::0;::::1;;5883:12;::::0;5873:8:::1;::::0;5864:49:::1;::::0;5897:15:::1;553:25:1::0;;-1:-1:-1;;;;;5883:12:0;;::::1;::::0;5873:8;;::::1;::::0;5864:49:::1;::::0;541:2:1;526:18;5864:49:0::1;;;;;;;5935:12;::::0;5924:8:::1;:23:::0;;-1:-1:-1;;;;;;5924:23:0::1;-1:-1:-1::0;;;;;5935:12:0;;::::1;5924:23:::0;;;::::1;::::0;;5747:208::o;7286:978::-;7337:14;7353:20;7375:14;7408:16;7425;3018:42;-1:-1:-1;;;;;7450:20:0;;7471:7;7450:29;;;;;;;;;;;;;553:25:1;;541:2;526:18;;407:177;7450:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7510:61:0;;-1:-1:-1;;;7510:61:0;;6849:1:1;6838:21;;;7510:61:0;;;6820:40:1;6896:21;;;6876:18;;;6869:49;7402:77:0;;-1:-1:-1;7402:77:0;;-1:-1:-1;;;;;;;7516:4:0;7510:37;;-1:-1:-1;7510:37:0;;-1:-1:-1;;6793:18:1;;;;;-1:-1:-1;7510:61:0;;-1:-1:-1;;;6654:270:1;7510:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7584:15;7602:20;;;:11;:20;;;;;;;;;7656:7;:16;;;;;7633:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7769:12;7490:81;;-1:-1:-1;7602:20:0;-1:-1:-1;7633:39:0;-1:-1:-1;7584:15:0;;7740:42;;7633:39;7740:8;:42::i;:::-;7711:26;:24;:26::i;:::-;:71;;;;:::i;:::-;7685:97;-1:-1:-1;7797:22:0;;7793:424;;7836:19;7858:70;7867:18;7904:8;:22;;;7888:13;:38;;;;:::i;:::-;7858:70;;:8;:70::i;:::-;7949:12;8002:36;;;:27;:36;;;;;;7836:92;;-1:-1:-1;7949:12:0;3132:8;;7979:20;:18;:20::i;:::-;:59;;;;:::i;:::-;7965:74;;:10;:74;:::i;:::-;:86;;;;:::i;:::-;7949:103;-1:-1:-1;8067:12:0;8109:18;8082:24;8092:14;7949:103;8082:24;:::i;:::-;:45;;;;:::i;:::-;8067:60;-1:-1:-1;8154:17:0;8067:60;8154:7;:17;:::i;:::-;8198:7;;-1:-1:-1;8142:29:0;-1:-1:-1;;;7793:424:0;8240:16;;;;:7;:16;;;;;;8227:29;;;;:::i;:::-;;;7391:873;;;;;7286:978;;;;;:::o;6653:156::-;6718:6;6713:89;6734:7;:14;6730:1;:18;6713:89;;;6770:20;6779:7;6787:1;6779:10;;;;;;;;:::i;:::-;;;;;;;6770:8;:20::i;:::-;6750:3;;;;:::i;:::-;;;;6713:89;;12130:160;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;12199:7:::1;::::0;;12183:13:::1;12217:11:::0;;;12263:8:::1;::::0;12241:41:::1;::::0;12255:6:::1;::::0;-1:-1:-1;;;;;12263:8:0::1;12199:7:::0;12241:13:::1;:41::i;:::-;12172:118;12130:160::o:0;6217:128::-;6274:4;6298:39;6307:15;6324:12;;6298:8;:39::i;11392:137::-;11488:6;-1:-1:-1;;;;;11479:15:0;:5;-1:-1:-1;;;;;11479:15:0;;11471:24;;;;;;11506:15;11513:7;11537:585;5012:8;;-1:-1:-1;;;;;5012:8:0;4998:10;:22;4990:31;;;;;;11593:1:::1;12339:30:::0;12372:20:::1;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52:::0;;;12526:14:::1;:32:::0;;;12403:49;-1:-1:-1;12573:12:0;;12569:438:::1;;12603:12;12617:21:::0;12640:15:::1;12659;12666:7;12659:6;:15::i;:::-;12689:36;::::0;;;:27:::1;:36;::::0;;;;;;;:64;;;12768:7:::1;:16:::0;;;;;:26;;;12809:7:::1;:21:::0;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21:::1;::::0;12602:72;;12809:21:::1;:::i;:::-;::::0;;;-1:-1:-1;;12851:16:0::1;::::0;;;:7:::1;:16;::::0;;;;:26;::::1;;:44:::0;-1:-1:-1;12847:149:0::1;;;12935:45;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;12916:16:0;;;:7:::1;:16:::0;;;;;;;:64;;;;;;;::::1;::::0;::::1;-1:-1:-1::0;;12916:64:0;;;;::::1;::::0;;;;::::1;::::0;;12847:149:::1;12587:420;;;12569:438;11630:12:::2;;11611:15;:31;11607:291;;11672:17;3093:6;11672::::0;:17:::2;:::i;:::-;11659:10;:30:::0;11607:291:::2;;;11722:15;11755;11740:12;;:30;;;;:::i;:::-;11722:48;;11785:14;11815:10:::0;::::2;11802;:23;;;;:::i;:::-;11785:40:::0;-1:-1:-1;3093:6:0::2;11856:18;11785:40:::0;11856:6;:18:::2;:::i;:::-;11855:31;;;;:::i;:::-;11842:10;:44:::0;-1:-1:-1;;11607:291:0::2;11927:15;11910:14;:32:::0;;;11968:26:::2;::::0;3093:6:::2;::::0;11968:26:::2;:::i;:::-;11953:12;:41:::0;12007:60:::2;12025:6;12033:10;12053:4;12060:6:::0;12007:17:::2;:60::i;:::-;12083:31;::::0;553:25:1;;;12095:10:0::2;::::0;12083:31:::2;::::0;541:2:1;526:18;12083:31:0::2;;;;;;;;12328:698:::1;;5032:1;11537:585:::0;:::o;5160:167::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5239:14:::1;:28:::0;;-1:-1:-1;;;;;;5239:28:0::1;-1:-1:-1::0;;;;;5239:28:0;::::1;;::::0;;5296:23:::1;3659:6;5296:15;:23;:::i;:::-;5278:15;:41:::0;-1:-1:-1;5160:167:0:o;8388:833::-;8435:7;12339:30;12372:20;:18;:20::i;:::-;12339:53;;12403:20;12426:26;:24;:26::i;:::-;12463:24;:52;;;12526:14;:32;;;12403:49;-1:-1:-1;12573:12:0;;12569:438;;12603:12;12617:21;12640:15;12659;12666:7;12659:6;:15::i;:::-;12689:36;;;;:27;:36;;;;;;;;:64;;;12768:7;:16;;;;;:26;;;12809:7;:21;;12602:72;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;-1:-1:-1;12602:72:0;;12809:21;;12602:72;;12809:21;:::i;:::-;;;;-1:-1:-1;;12851:16:0;;;;:7;:16;;;;;:26;;;:44;-1:-1:-1;12847:149:0;;;12935:45;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12916:16:0;;;:7;:16;;;;;;;:64;;;;;;;;;;-1:-1:-1;;12916:64:0;;;;;;;;;;;;12847:149;12587:420;;;12569:438;8458:14:::1;8473::::0;8488:10:::1;8499:15:::0;8515::::1;8531:18:::0;3018:42:::1;-1:-1:-1::0;;;;;8557:20:0::1;;8578:7;8557:29;;;;;;;;;;;;;553:25:1::0;;541:2;526:18;;407:177;8557:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8455:131;;;;;;;;;;;;;;;;;;8597:13;8613:99;2911:42;8648:63;;;;;;;;8677:6;-1:-1:-1::0;;;;;8648:63:0::1;;;;;8693:6;-1:-1:-1::0;;;;;8648:63:0::1;;;;;8706:3;8648:63;;;;::::0;8613:26:::1;:99::i;:::-;8597:115;;8741:5;-1:-1:-1::0;;;;;8733:13:0::1;:4;-1:-1:-1::0;;;;;8733:13:0::1;;8725:22;;;::::0;::::1;;8779:1;8766:10;-1:-1:-1::0;;;;;8766:14:0::1;;8758:23;;;::::0;::::1;;8796:11;8822:5;-1:-1:-1::0;;;;;8816:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8794:42;;;;;;;;8868:5;8855:18;;:9;:18;;;;:40;;;;;8886:9;8877:18;;:5;:18;;;;8855:40;8847:49;;;::::0;::::1;;8909:59;::::0;-1:-1:-1;;;8909:59:0;;8933:10:::1;8909:59;::::0;::::1;9492:34:1::0;8953:4:0::1;9542:18:1::0;;;9535:43;9594:18;;;9587:34;;;3018:42:0::1;::::0;8909:23:::1;::::0;9427:18:1;;8909:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9007:10;8989:6;:15;8996:7;8989:15;;;;;;;;;;;;:28;;;;;-1:-1:-1::0;;;;;8989:28:0::1;;;;;-1:-1:-1::0;;;;;8989:28:0::1;;;;;;9028:8;:20;9037:10;-1:-1:-1::0;;;;;9028:20:0::1;-1:-1:-1::0;;;;;9028:20:0::1;;;;;;;;;;;;9054:7;9028:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9106:10;-1:-1:-1::0;;;;;9083:33:0::1;:11;:20;9095:7;9083:20;;;;;;;;;;;:33;;;;9145:10;-1:-1:-1::0;;;;;9127:28:0::1;:14;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9173:40:0::1;::::0;;9806:25:1;;;-1:-1:-1;;;;;9867:47:1;;9862:2;9847:18;;9840:75;9181:10:0::1;::::0;9173:40:::1;::::0;9779:18:1;9173:40:0::1;;;;;;;8444:777;;;;;;;;12328:698:::0;;8388:833;;:::o;6092:117::-;-1:-1:-1;;;;;6185:16:0;;;;;;:8;:16;;;;;;;;;6178:23;;;;;;;;;;;;;;;;;6152:13;;6178:23;;;6185:16;6178:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6092:117;;;:::o;5582:157::-;4912:10;;-1:-1:-1;;;;;4912:10:0;4898;:24;4890:33;;;;;;5657:12:::1;:24:::0;;-1:-1:-1;;;;;;5657:24:0::1;-1:-1:-1::0;;;;;5657:24:0;::::1;;::::0;;5708:23:::1;3659:6;5708:15;:23;:::i;:::-;5692:13;:39:::0;-1:-1:-1;5582:157:0:o;6353:292::-;6404:4;6425:14;;6443:1;6425:19;6421:83;;;-1:-1:-1;6468:24:0;;;6353:292::o;6421:83::-;6622:14;;3132:8;6597:10;;6579:14;;6550:26;:24;:26::i;:::-;:43;;;;:::i;:::-;6549:58;;;;:::i;:::-;:70;;;;:::i;:::-;:87;;;;:::i;:::-;6521:24;;:116;;;;:::i;6817:461::-;6900:1;6873:15;;;:6;:15;;;;;;-1:-1:-1;;;;;6873:15:0;:29;6869:402;;6967:88;;;;;;;;;;;7008:8;;-1:-1:-1;;;;;7008:8:0;;;6967:88;;;;;;-1:-1:-1;;;;;6967:88:0;;;;;;;;;;;;7101:26;;-1:-1:-1;;;7101:26:0;;10151:13:1;;7101:26:0;;;10133:32:1;10207:24;;10203:50;;;10181:20;;;10174:80;10283:24;;10398:21;;10376:20;;;10369:51;10462:24;;10458:33;10436:20;;;10429:63;6967:88:0;-1:-1:-1;;;;3018:42:0;;7101:18;;10105:19:1;;7101:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7070:57;;;;7153:7;7142;;:18;;;;;;;:::i;:::-;;;;;;;;7186:7;7175;;:18;;;;;;;:::i;:::-;;;;-1:-1:-1;;7213:46:0;;;10955:25:1;;;11011:2;10996:18;;10989:34;;;11039:18;;;11032:34;;;7221:10:0;;7213:46;;10943:2:1;10928:18;7213:46:0;10753:319:1;10947:238:0;11007:7;11031:15;;;:6;:15;;;;;;-1:-1:-1;;;;;11031:15:0;:29;11027:151;;-1:-1:-1;11084:15:0;;;;:6;:15;;;;;;-1:-1:-1;;;;;11084:15:0;;10947:238::o;11027:151::-;11139:27;;-1:-1:-1;;;11139:27:0;;;;;553:25:1;;;3018:42:0;;11139:18;;526::1;;11139:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11132:34;10947:238;-1:-1:-1;;10947:238:0:o;11027:151::-;10947:238;;;:::o;13034:289::-;13179:58;;;-1:-1:-1;;;;;11525:32:1;;;13179:58:0;;;11507:51:1;11574:18;;;;11567:34;;;13179:58:0;;;;;;;;;;11480:18:1;;;;13179:58:0;;;;;;;-1:-1:-1;;;;;13179:58:0;-1:-1:-1;;;13179:58:0;;;13168:70;;-1:-1:-1;;;;13168:10:0;;;;:70;;13179:58;13168:70;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13119:119;;;;13257:7;:57;;;;-1:-1:-1;13269:11:0;;:16;;:44;;;13300:4;13289:24;;;;;;;;;;;;:::i;:::-;13249:66;;;;;9919:471;9980:15;;;;:6;:15;;;;;;-1:-1:-1;;;;;9980:15:0;9999:10;9980:29;9972:38;;;;;;10021:15;10039:20;;;:11;:20;;;;;;;10070:24;;;;10105:14;:28;;10039:20;;;;10105:28;;10039:20;;10105:28;:::i;:::-;;;;-1:-1:-1;;10170:1:0;10144:15;;;:6;:15;;;;;;;;:28;;-1:-1:-1;;;;;;10144:28:0;;;10200:10;10191:20;;:8;:20;;;;;10183:38;;10151:7;10183;:38::i;:::-;10232:59;;-1:-1:-1;;;10232:59:0;;10264:4;10232:59;;;9492:34:1;10271:10:0;9542:18:1;;;9535:43;9594:18;;;9587:34;;;3018:42:0;;10232:23;;9427:18:1;;10232:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10309:16:0;;;;:7;:16;;;;;;;;;10302:23;;-1:-1:-1;;10302:23:0;;;10341:41;;4705:25:1;;;4746:18;;;4739:34;;;10350:10:0;;-1:-1:-1;10341:41:0;;4678:18:1;10341:41:0;;;;;;;9961:429;9919:471;:::o;192:106::-;250:7;281:1;277;:5;:13;;289:1;277:13;;;285:1;277:13;270:20;192:106;-1:-1:-1;;;192:106:0:o;13331:317::-;13494:68;;;-1:-1:-1;;;;;9510:15:1;;;13494:68:0;;;9492:34:1;9562:15;;;9542:18;;;9535:43;9594:18;;;;9587:34;;;13494:68:0;;;;;;;;;;9427:18:1;;;;13494:68:0;;;;;;;-1:-1:-1;;;;;13494:68:0;-1:-1:-1;;;13494:68:0;;;13483:80;;-1:-1:-1;;;;13483:10:0;;;;:80;;13494:68;13483:80;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13434:129;;;;13582:7;:57;;;;-1:-1:-1;13594:11:0;;:16;;:44;;;13625:4;13614:24;;;;;;;;;;;;:::i;:::-;13574:66;;;;;;13423:225;;13331:317;;;;:::o;557:535::-;641:12;687:3;:10;;;-1:-1:-1;;;;;674:23:0;:3;:10;;;-1:-1:-1;;;;;674:23:0;;666:32;;;;;;936:10;;948;;;;;960:7;;;;;925:43;;-1:-1:-1;;;;;12506:15:1;;;925:43:0;;;12488:34:1;12558:15;;;;12538:18;;;12531:43;12622:8;12610:21;;;12590:18;;;;12583:49;;;;925:43:0;;;;;;;;;12423:18:1;;;925:43:0;;;915:54;;;;;;;-1:-1:-1;;;;;;804:234:0;;;12929:26:1;12988:15;;;;-1:-1:-1;;12984:53:1;12971:11;;;12964:74;13054:12;;;13047:28;380:66:0;13091:12:1;;;13084:28;13128:12;;804:234:0;;;-1:-1:-1;;804:234:0;;;;;;;;;772:285;;804:234;772:285;;;;;557:535;-1:-1:-1;;;557:535:0:o;9467:316::-;9540:11;9554:26;9565:5;9554:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9572:7;9554:10;:26::i;:::-;9606:12;;9540:40;;-1:-1:-1;9633:17:0;;;9629:30;;9652:7;;9467:316;;:::o;9629:30::-;9682:9;9690:1;9682:7;:9;:::i;:::-;9673:6;:18;9669:83;;;9724:5;9730:9;9738:1;9730:7;:9;:::i;:::-;9724:16;;;;;;;;:::i;:::-;;;;;;;;;9708:5;9714:6;9708:13;;;;;;;;:::i;:::-;;;;;;;;;;:32;9669:83;9764:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9529:254;;9467:316;;:::o;9229:230::-;9307:6;9326:126;9342:5;:12;9338:1;:16;9326:126;;;9392:7;9380:5;9386:1;9380:8;;;;;;;;:::i;:::-;;;;;;;:19;9376:65;;;9420:5;;9376:65;9356:3;;;;:::i;:::-;;;;9326:126;;222:180:1;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;-1:-1:-1;373:23:1;;222:180;-1:-1:-1;222:180:1:o;589:131::-;-1:-1:-1;;;;;664:31:1;;654:42;;644:70;;710:1;707;700:12;725:247;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;892:9;879:23;911:31;936:5;911:31;:::i;977:315::-;1045:6;1053;1106:2;1094:9;1085:7;1081:23;1077:32;1074:52;;;1122:1;1119;1112:12;1074:52;1161:9;1148:23;1180:31;1205:5;1180:31;:::i;:::-;1230:5;1282:2;1267:18;;;;1254:32;;-1:-1:-1;;;977:315:1:o;1932:127::-;1993:10;1988:3;1984:20;1981:1;1974:31;2024:4;2021:1;2014:15;2048:4;2045:1;2038:15;2064:1115;2148:6;2179:2;2222;2210:9;2201:7;2197:23;2193:32;2190:52;;;2238:1;2235;2228:12;2190:52;2278:9;2265:23;2307:18;2348:2;2340:6;2337:14;2334:34;;;2364:1;2361;2354:12;2334:34;2402:6;2391:9;2387:22;2377:32;;2447:7;2440:4;2436:2;2432:13;2428:27;2418:55;;2469:1;2466;2459:12;2418:55;2505:2;2492:16;2527:2;2523;2520:10;2517:36;;;2533:18;;:::i;:::-;2579:2;2576:1;2572:10;2611:2;2605:9;2674:2;2670:7;2665:2;2661;2657:11;2653:25;2645:6;2641:38;2729:6;2717:10;2714:22;2709:2;2697:10;2694:18;2691:46;2688:72;;;2740:18;;:::i;:::-;2776:2;2769:22;2826:18;;;2860:15;;;;-1:-1:-1;2902:11:1;;;2898:20;;;2930:19;;;2927:39;;;2962:1;2959;2952:12;2927:39;2986:11;;;;3006:142;3022:6;3017:3;3014:15;3006:142;;;3088:17;;3076:30;;3039:12;;;;3126;;;;3006:142;;;3167:6;2064:1115;-1:-1:-1;;;;;;;;2064:1115:1:o;3184:632::-;3355:2;3407:21;;;3477:13;;3380:18;;;3499:22;;;3326:4;;3355:2;3578:15;;;;3552:2;3537:18;;;3326:4;3621:169;3635:6;3632:1;3629:13;3621:169;;;3696:13;;3684:26;;3765:15;;;;3730:12;;;;3657:1;3650:9;3621:169;;;-1:-1:-1;3807:3:1;;3184:632;-1:-1:-1;;;;;;3184:632:1:o;3821:127::-;3882:10;3877:3;3873:20;3870:1;3863:31;3913:4;3910:1;3903:15;3937:4;3934:1;3927:15;3953:127;4014:10;4009:3;4005:20;4002:1;3995:31;4045:4;4042:1;4035:15;4069:4;4066:1;4059:15;4085:135;4124:3;-1:-1:-1;;4145:17:1;;4142:43;;;4165:18;;:::i;:::-;-1:-1:-1;4212:1:1;4201:13;;4085:135::o;4225:168::-;4265:7;4331:1;4327;4323:6;4319:14;4316:1;4313:21;4308:1;4301:9;4294:17;4290:45;4287:71;;;4338:18;;:::i;:::-;-1:-1:-1;4378:9:1;;4225:168::o;4398:128::-;4438:3;4469:1;4465:6;4462:1;4459:13;4456:39;;;4475:18;;:::i;:::-;-1:-1:-1;4511:9:1;;4398:128::o;4784:138::-;4863:13;;4885:31;4863:13;4885:31;:::i;4927:165::-;5005:13;;5058:8;5047:20;;5037:31;;5027:59;;5082:1;5079;5072:12;5097:164;5174:13;;5227:1;5216:20;;;5206:31;;5196:59;;5251:1;5248;5241:12;5266:192;5345:13;;-1:-1:-1;;;;;5387:46:1;;5377:57;;5367:85;;5448:1;5445;5438:12;5463:1186;5626:6;5634;5642;5650;5658;5666;5674;5682;5690;5698;5706:7;5715;5769:3;5757:9;5748:7;5744:23;5740:33;5737:53;;;5786:1;5783;5776:12;5737:53;5818:9;5812:16;5868:26;5861:5;5857:38;5850:5;5847:49;5837:77;;5910:1;5907;5900:12;5837:77;5933:5;-1:-1:-1;5957:49:1;6002:2;5987:18;;5957:49;:::i;:::-;5947:59;;6025:49;6070:2;6059:9;6055:18;6025:49;:::i;:::-;6015:59;;6093:49;6138:2;6127:9;6123:18;6093:49;:::i;:::-;6083:59;;6161:49;6205:3;6194:9;6190:19;6161:49;:::i;:::-;6151:59;;6229:48;6272:3;6261:9;6257:19;6229:48;:::i;:::-;6219:58;;6296:48;6339:3;6328:9;6324:19;6296:48;:::i;:::-;6286:58;;6363:50;6408:3;6397:9;6393:19;6363:50;:::i;:::-;6353:60;;6453:3;6442:9;6438:19;6432:26;6422:36;;6498:3;6487:9;6483:19;6477:26;6467:36;;6523:50;6568:3;6557:9;6553:19;6523:50;:::i;:::-;6512:61;;6593:50;6638:3;6627:9;6623:19;6593:50;:::i;:::-;6582:61;;5463:1186;;;;;;;;;;;;;;:::o;6929:576::-;7014:6;7022;7030;7083:2;7071:9;7062:7;7058:23;7054:32;7051:52;;;7099:1;7096;7089:12;7051:52;7131:9;7125:16;7184:5;7181:1;7170:20;7163:5;7160:31;7150:59;;7205:1;7202;7195:12;7150:59;7278:2;7263:18;;7257:25;7228:5;;-1:-1:-1;7291:33:1;7257:25;7291:33;:::i;:::-;7395:2;7380:18;;7374:25;7343:7;;-1:-1:-1;7443:10:1;7430:24;;7418:37;;7408:65;;7469:1;7466;7459:12;7408:65;7492:7;7482:17;;;6929:576;;;;;:::o;7510:125::-;7550:4;7578:1;7575;7572:8;7569:34;;;7583:18;;:::i;:::-;-1:-1:-1;7620:9:1;;7510:125::o;7640:221::-;7679:4;7708:10;7768;;;;7738;;7790:12;;;7787:38;;;7805:18;;:::i;:::-;7842:13;;7640:221;-1:-1:-1;;;7640:221:1:o;7866:217::-;7906:1;7932;7922:132;;7976:10;7971:3;7967:20;7964:1;7957:31;8011:4;8008:1;8001:15;8039:4;8036:1;8029:15;7922:132;-1:-1:-1;8068:9:1;;7866:217::o;8088:163::-;8166:13;;8219:6;8208:18;;8198:29;;8188:57;;8241:1;8238;8231:12;8256:164;8332:13;;8381;;8374:21;8364:32;;8354:60;;8410:1;8407;8400:12;8425:822;8539:6;8547;8555;8563;8571;8579;8587;8640:3;8628:9;8619:7;8615:23;8611:33;8608:53;;;8657:1;8654;8647:12;8608:53;8689:9;8683:16;8708:31;8733:5;8708:31;:::i;:::-;8758:5;-1:-1:-1;8782:47:1;8825:2;8810:18;;8782:47;:::i;:::-;8772:57;;8848:48;8892:2;8881:9;8877:18;8848:48;:::i;:::-;8838:58;;8915:48;8959:2;8948:9;8944:18;8915:48;:::i;:::-;8905:58;;8982:49;9026:3;9015:9;9011:19;8982:49;:::i;:::-;8972:59;;9076:3;9065:9;9061:19;9055:26;9125:4;9116:7;9112:18;9103:7;9100:31;9090:59;;9145:1;9142;9135:12;9090:59;9168:7;-1:-1:-1;9194:47:1;9236:3;9221:19;;9194:47;:::i;:::-;9184:57;;8425:822;;;;;;;;;;:::o;10503:245::-;10582:6;10590;10643:2;10631:9;10622:7;10618:23;10614:32;10611:52;;;10659:1;10656;10649:12;10611:52;-1:-1:-1;;10682:16:1;;10738:2;10723:18;;;10717:25;10682:16;;10717:25;;-1:-1:-1;10503:245:1:o;11077:251::-;11147:6;11200:2;11188:9;11179:7;11175:23;11171:32;11168:52;;;11216:1;11213;11206:12;11168:52;11248:9;11242:16;11267:31;11292:5;11267:31;:::i;11612:426::-;11741:3;11779:6;11773:13;11804:1;11814:129;11828:6;11825:1;11822:13;11814:129;;;11926:4;11910:14;;;11906:25;;11900:32;11887:11;;;11880:53;11843:12;11814:129;;;11961:6;11958:1;11955:13;11952:48;;;11996:1;11987:6;11982:3;11978:16;11971:27;11952:48;-1:-1:-1;12016:16:1;;;;;11612:426;-1:-1:-1;;11612:426:1:o;12043:202::-;12110:6;12163:2;12151:9;12142:7;12138:23;12134:32;12131:52;;;12179:1;12176;12169:12;12131:52;12202:37;12229:9;12202:37;:::i;13151:127::-;13212:10;13207:3;13203:20;13200:1;13193:31;13243:4;13240:1;13233:15;13267:4;13264:1;13257:15

Swarm Source

ipfs://321a1444f4fc594a5788d007fb07e957162fbfda7137f8f867929516f950829a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.