ETH Price: $2,472.64 (+0.69%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve160024492022-11-19 7:03:59715 days ago1668841439IN
0xD71165AF...E4650A892
0 ETH0.0005446911.69348203
Approve157675462022-10-17 11:32:35748 days ago1666006355IN
0xD71165AF...E4650A892
0 ETH0.0006383213.70362606
Approve157642232022-10-17 0:22:11749 days ago1665966131IN
0xD71165AF...E4650A892
0 ETH0.0005949612.7727853
Approve157243902022-10-11 10:51:59754 days ago1665485519IN
0xD71165AF...E4650A892
0 ETH0.0005612823.10100395
Approve157231572022-10-11 6:44:23754 days ago1665470663IN
0xD71165AF...E4650A892
0 ETH0.0013968429.98738333
Approve157195482022-10-10 18:40:11755 days ago1665427211IN
0xD71165AF...E4650A892
0 ETH0.0015401133.06318098
Approve157195342022-10-10 18:37:23755 days ago1665427043IN
0xD71165AF...E4650A892
0 ETH0.0014752831.67149616
Approve156937412022-10-07 4:09:23759 days ago1665115763IN
0xD71165AF...E4650A892
0 ETH0.000303526.51615517
Approve156865992022-10-06 4:12:35760 days ago1665029555IN
0xD71165AF...E4650A892
0 ETH0.000326067
Approve156858342022-10-06 1:38:47760 days ago1665020327IN
0xD71165AF...E4650A892
0 ETH0.000218338.98596104
Approve156856712022-10-06 1:05:47760 days ago1665018347IN
0xD71165AF...E4650A892
0 ETH0.0002788611.47752395
Approve156732872022-10-04 7:28:59761 days ago1664868539IN
0xD71165AF...E4650A892
0 ETH0.000402058.63132116
Approve156686372022-10-03 15:51:47762 days ago1664812307IN
0xD71165AF...E4650A892
0 ETH0.0012831827.54737998
Approve156627122022-10-02 19:59:59763 days ago1664740799IN
0xD71165AF...E4650A892
0 ETH0.000257485.52778666
Approve156614432022-10-02 15:44:59763 days ago1664725499IN
0xD71165AF...E4650A892
0 ETH0.000232249.55847866
Approve156613782022-10-02 15:31:59763 days ago1664724719IN
0xD71165AF...E4650A892
0 ETH0.000163286.72034196
Approve156583002022-10-02 5:14:47764 days ago1664687687IN
0xD71165AF...E4650A892
0 ETH0.000236945.08676302
Approve156579882022-10-02 4:11:59764 days ago1664683919IN
0xD71165AF...E4650A892
0 ETH0.000084213.46593157
Approve156579872022-10-02 4:11:47764 days ago1664683907IN
0xD71165AF...E4650A892
0 ETH0.000084593.48188732
Approve156575032022-10-02 2:34:47764 days ago1664678087IN
0xD71165AF...E4650A892
0 ETH0.000309316.64037419
Approve156502912022-10-01 2:20:35765 days ago1664590835IN
0xD71165AF...E4650A892
0 ETH0.000406058.71710092
Approve156497492022-10-01 0:30:59765 days ago1664584259IN
0xD71165AF...E4650A892
0 ETH0.0005333711.45047831
Approve156467782022-09-30 14:33:59765 days ago1664548439IN
0xD71165AF...E4650A892
0 ETH0.0009126319.5924364
Approve156444412022-09-30 6:44:11765 days ago1664520251IN
0xD71165AF...E4650A892
0 ETH0.0005589712
Approve156442572022-09-30 6:06:59766 days ago1664518019IN
0xD71165AF...E4650A892
0 ETH0.0005176511.11291206
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
160024512022-11-19 7:04:23715 days ago1668841463
0xD71165AF...E4650A892
0.00021371 ETH
160024512022-11-19 7:04:23715 days ago1668841463
0xD71165AF...E4650A892
0.00021371 ETH
158726012022-11-01 3:45:59734 days ago1667274359
0xD71165AF...E4650A892
0.00026449 ETH
158726012022-11-01 3:45:59734 days ago1667274359
0xD71165AF...E4650A892
0.00026449 ETH
158384052022-10-27 9:05:23738 days ago1666861523
0xD71165AF...E4650A892
0.00085483 ETH
158384052022-10-27 9:05:23738 days ago1666861523
0xD71165AF...E4650A892
0.00085483 ETH
157675482022-10-17 11:32:59748 days ago1666006379
0xD71165AF...E4650A892
0.00475685 ETH
157675482022-10-17 11:32:59748 days ago1666006379
0xD71165AF...E4650A892
0.00475685 ETH
157655132022-10-17 4:41:11749 days ago1665981671
0xD71165AF...E4650A892
0.00050193 ETH
157655132022-10-17 4:41:11749 days ago1665981671
0xD71165AF...E4650A892
0.00050193 ETH
157426612022-10-14 0:06:47752 days ago1665706007
0xD71165AF...E4650A892
0.00025728 ETH
157426612022-10-14 0:06:47752 days ago1665706007
0xD71165AF...E4650A892
0.00025728 ETH
156937452022-10-07 4:10:11759 days ago1665115811
0xD71165AF...E4650A892
0.00043974 ETH
156937452022-10-07 4:10:11759 days ago1665115811
0xD71165AF...E4650A892
0.00043974 ETH
156921772022-10-06 22:54:59759 days ago1665096899
0xD71165AF...E4650A892
0.00062885 ETH
156921772022-10-06 22:54:59759 days ago1665096899
0xD71165AF...E4650A892
0.00062885 ETH
156865992022-10-06 4:12:35760 days ago1665029555
0xD71165AF...E4650A892
0.00027134 ETH
156865992022-10-06 4:12:35760 days ago1665029555
0xD71165AF...E4650A892
0.00027134 ETH
156786282022-10-05 1:27:47761 days ago1664933267
0xD71165AF...E4650A892
0.0002208 ETH
156786282022-10-05 1:27:47761 days ago1664933267
0xD71165AF...E4650A892
0.0002208 ETH
156732892022-10-04 7:29:23761 days ago1664868563
0xD71165AF...E4650A892
0.00065997 ETH
156732892022-10-04 7:29:23761 days ago1664868563
0xD71165AF...E4650A892
0.00065997 ETH
156732662022-10-04 7:24:47761 days ago1664868287
0xD71165AF...E4650A892
0.00018873 ETH
156732662022-10-04 7:24:47761 days ago1664868287
0xD71165AF...E4650A892
0.00018873 ETH
156675972022-10-03 12:22:35762 days ago1664799755
0xD71165AF...E4650A892
0.00037935 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DeepFuckingValue

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-29
*/

/**
https://t.me/DeepFuckingValueToken

*/


pragma solidity 0.8.7;
// SPDX-License-Identifier: UNLICENSED
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DeepFuckingValue is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Deep Fucking Value";
    string private constant _symbol = "DFV";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 1_000_000 * 10**9;
    uint256 private _maxWalletSize = 20_000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=5;
        _finalTax=5;
        _reduceTaxCountdown=60;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }


    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001966038d7ea4c68000600019620001ce565b6200002790600019620001a8565b6008556011805462ffffff60a81b1916905566038d7ea4c680006012556512309ce540006013553480156200005b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b03191633908117909155600854600091825260026020526040822055600190600590620000dd6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600593849052828120805486166001908117909155600f54909216815291909120805490931617909155600c819055600d55603c600e556200014d3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200019a91815260200190565b60405180910390a3620001f1565b600082821015620001c957634e487b7160e01b600052601160045260246000fd5b500390565b600082620001ec57634e487b7160e01b600052601260045260246000fd5b500690565b611a6780620002016000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102eb578063c3c8cd801461030b578063c9567bf914610320578063d34628cc14610335578063dd62ed3e1461035557600080fd5b8063715018a61461026d578063751039fc146102825780638da5cb5b1461029757806395d89b41146102bf57600080fd5b8063273123b7116100dc578063273123b7146101da578063313ce567146101fc5780635932ead1146102185780636fc3eaec1461023857806370a082311461024d57600080fd5b806306fdde0314610119578063095ea7b31461016657806318160ddd1461019657806323b872dd146101ba57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152601281527144656570204675636b696e672056616c756560701b60208201525b60405161015d9190611807565b60405180910390f35b34801561017257600080fd5b506101866101813660046116a7565b61039b565b604051901515815260200161015d565b3480156101a257600080fd5b5066038d7ea4c680005b60405190815260200161015d565b3480156101c657600080fd5b506101866101d5366004611666565b6103b2565b3480156101e657600080fd5b506101fa6101f53660046115f3565b61041b565b005b34801561020857600080fd5b506040516009815260200161015d565b34801561022457600080fd5b506101fa61023336600461179f565b61046f565b34801561024457600080fd5b506101fa6104b7565b34801561025957600080fd5b506101ac6102683660046115f3565b6104e4565b34801561027957600080fd5b506101fa610506565b34801561028e57600080fd5b506101fa61057a565b3480156102a357600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102cb57600080fd5b5060408051808201909152600381526222232b60e91b6020820152610150565b3480156102f757600080fd5b506101866103063660046116a7565b6105b6565b34801561031757600080fd5b506101fa6105c3565b34801561032c57600080fd5b506101fa6105f9565b34801561034157600080fd5b506101fa6103503660046116d3565b6109b2565b34801561036157600080fd5b506101ac61037036600461162d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a8338484610a44565b5060015b92915050565b60006103bf848484610b68565b610411843361040c85604051806060016040528060288152602001611a0a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610eff565b610a44565b5060019392505050565b6000546001600160a01b0316331461044e5760405162461bcd60e51b81526004016104459061185c565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104995760405162461bcd60e51b81526004016104459061185c565b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b0316146104d757600080fd5b476104e181610f39565b50565b6001600160a01b0381166000908152600260205260408120546103ac90610f73565b6000546001600160a01b031633146105305760405162461bcd60e51b81526004016104459061185c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105a45760405162461bcd60e51b81526004016104459061185c565b66038d7ea4c680006012819055601355565b60006103a8338484610b68565b600f546001600160a01b0316336001600160a01b0316146105e357600080fd5b60006105ee306104e4565b90506104e181610ff7565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016104459061185c565b601154600160a01b900460ff161561067d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610445565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b8308266038d7ea4c68000610a44565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156106f157600080fd5b505afa158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611610565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a99190611610565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108299190611610565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610859816104e4565b60008061086e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108d157600080fd5b505af11580156108e5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061090a91906117d9565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae91906117bc565b5050565b6000546001600160a01b031633146109dc5760405162461bcd60e51b81526004016104459061185c565b60005b81518110156109ae57600160066000848481518110610a0057610a006119ba565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a3c81611989565b9150506109df565b6001600160a01b038316610aa65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610445565b6001600160a01b038216610b075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610445565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bcc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610445565b6001600160a01b038216610c2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610445565b60008111610c905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610445565b6000546001600160a01b03848116911614801590610cbc57506000546001600160a01b03838116911614155b15610ee4576001600160a01b03831660009081526006602052604090205460ff16158015610d0357506001600160a01b03821660009081526006602052604090205460ff16155b610d0c57600080fd5b6000600a55600e5415610d2157600c54610d25565b600d545b600b556011546001600160a01b038481169116148015610d5357506010546001600160a01b03838116911614155b8015610d7857506001600160a01b03821660009081526005602052604090205460ff16155b8015610d8d5750601154600160b81b900460ff165b15610e6757601254811115610de45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610445565b60135481610df1846104e4565b610dfb9190611902565b1115610e495760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610445565b600e5415610e6757600e8054906000610e6183611972565b91905055505b6000610e72306104e4565b601154909150600160a81b900460ff16158015610e9d57506011546001600160a01b03858116911614155b8015610eb25750601154600160b01b900460ff165b8015610ebe5750600081115b15610ede57610ecc81610ff7565b478015610edc57610edc47610f39565b505b50610eef565b6000600a819055600b555b610efa838383611180565b505050565b60008184841115610f235760405162461bcd60e51b81526004016104459190611807565b506000610f30848661195b565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109ae573d6000803e3d6000fd5b6000600854821115610fda5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610445565b6000610fe461118b565b9050610ff083826111ae565b9392505050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061103f5761103f6119ba565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb9190611610565b816001815181106110de576110de6119ba565b6001600160a01b0392831660209182029290920101526010546111049130911684610a44565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061113d908590600090869030904290600401611891565b600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610efa8383836111f0565b60008060006111986112e7565b90925090506111a782826111ae565b9250505090565b6000610ff083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611325565b60008060008060008061120287611353565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061123490876113b0565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461126390866113f2565b6001600160a01b03891660009081526002602052604090205561128581611451565b61128f848361149b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112d491815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c6800061130182826111ae565b82101561131c5750506008549266038d7ea4c6800092509050565b90939092509050565b600081836113465760405162461bcd60e51b81526004016104459190611807565b506000610f30848661191a565b60008060008060008060008060006113708a600a54600b546114bf565b925092509250600061138061118b565b905060008060006113938e878787611514565b919e509c509a509598509396509194505050505091939550919395565b6000610ff083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eff565b6000806113ff8385611902565b905083811015610ff05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610445565b600061145b61118b565b905060006114698383611564565b3060009081526002602052604090205490915061148690826113f2565b30600090815260026020526040902055505050565b6008546114a890836113b0565b6008556009546114b890826113f2565b6009555050565b60008080806114d960646114d38989611564565b906111ae565b905060006114ec60646114d38a89611564565b90506000611504826114fe8b866113b0565b906113b0565b9992985090965090945050505050565b60008080806115238886611564565b905060006115318887611564565b9050600061153f8888611564565b90506000611551826114fe86866113b0565b939b939a50919850919650505050505050565b600082611573575060006103ac565b600061157f838561193c565b90508261158c858361191a565b14610ff05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610445565b80356115ee816119e6565b919050565b60006020828403121561160557600080fd5b8135610ff0816119e6565b60006020828403121561162257600080fd5b8151610ff0816119e6565b6000806040838503121561164057600080fd5b823561164b816119e6565b9150602083013561165b816119e6565b809150509250929050565b60008060006060848603121561167b57600080fd5b8335611686816119e6565b92506020840135611696816119e6565b929592945050506040919091013590565b600080604083850312156116ba57600080fd5b82356116c5816119e6565b946020939093013593505050565b600060208083850312156116e657600080fd5b823567ffffffffffffffff808211156116fe57600080fd5b818501915085601f83011261171257600080fd5b813581811115611724576117246119d0565b8060051b604051601f19603f83011681018181108582111715611749576117496119d0565b604052828152858101935084860182860187018a101561176857600080fd5b600095505b838610156117925761177e816115e3565b85526001959095019493860193860161176d565b5098975050505050505050565b6000602082840312156117b157600080fd5b8135610ff0816119fb565b6000602082840312156117ce57600080fd5b8151610ff0816119fb565b6000806000606084860312156117ee57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561183457858101830151858201604001528201611818565b81811115611846576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118e15784516001600160a01b0316835293830193918301916001016118bc565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611915576119156119a4565b500190565b60008261193757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611956576119566119a4565b500290565b60008282101561196d5761196d6119a4565b500390565b600081611981576119816119a4565b506000190190565b600060001982141561199d5761199d6119a4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104e157600080fd5b80151581146104e157600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203cb81c27fdbbf18410e735b16f42de291c18426b2bd8a99f71ad397acc64cafc64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102eb578063c3c8cd801461030b578063c9567bf914610320578063d34628cc14610335578063dd62ed3e1461035557600080fd5b8063715018a61461026d578063751039fc146102825780638da5cb5b1461029757806395d89b41146102bf57600080fd5b8063273123b7116100dc578063273123b7146101da578063313ce567146101fc5780635932ead1146102185780636fc3eaec1461023857806370a082311461024d57600080fd5b806306fdde0314610119578063095ea7b31461016657806318160ddd1461019657806323b872dd146101ba57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152601281527144656570204675636b696e672056616c756560701b60208201525b60405161015d9190611807565b60405180910390f35b34801561017257600080fd5b506101866101813660046116a7565b61039b565b604051901515815260200161015d565b3480156101a257600080fd5b5066038d7ea4c680005b60405190815260200161015d565b3480156101c657600080fd5b506101866101d5366004611666565b6103b2565b3480156101e657600080fd5b506101fa6101f53660046115f3565b61041b565b005b34801561020857600080fd5b506040516009815260200161015d565b34801561022457600080fd5b506101fa61023336600461179f565b61046f565b34801561024457600080fd5b506101fa6104b7565b34801561025957600080fd5b506101ac6102683660046115f3565b6104e4565b34801561027957600080fd5b506101fa610506565b34801561028e57600080fd5b506101fa61057a565b3480156102a357600080fd5b506000546040516001600160a01b03909116815260200161015d565b3480156102cb57600080fd5b5060408051808201909152600381526222232b60e91b6020820152610150565b3480156102f757600080fd5b506101866103063660046116a7565b6105b6565b34801561031757600080fd5b506101fa6105c3565b34801561032c57600080fd5b506101fa6105f9565b34801561034157600080fd5b506101fa6103503660046116d3565b6109b2565b34801561036157600080fd5b506101ac61037036600461162d565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a8338484610a44565b5060015b92915050565b60006103bf848484610b68565b610411843361040c85604051806060016040528060288152602001611a0a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610eff565b610a44565b5060019392505050565b6000546001600160a01b0316331461044e5760405162461bcd60e51b81526004016104459061185c565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104995760405162461bcd60e51b81526004016104459061185c565b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b0316146104d757600080fd5b476104e181610f39565b50565b6001600160a01b0381166000908152600260205260408120546103ac90610f73565b6000546001600160a01b031633146105305760405162461bcd60e51b81526004016104459061185c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105a45760405162461bcd60e51b81526004016104459061185c565b66038d7ea4c680006012819055601355565b60006103a8338484610b68565b600f546001600160a01b0316336001600160a01b0316146105e357600080fd5b60006105ee306104e4565b90506104e181610ff7565b6000546001600160a01b031633146106235760405162461bcd60e51b81526004016104459061185c565b601154600160a01b900460ff161561067d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610445565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b8308266038d7ea4c68000610a44565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156106f157600080fd5b505afa158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611610565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a99190611610565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108299190611610565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610859816104e4565b60008061086e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108d157600080fd5b505af11580156108e5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061090a91906117d9565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae91906117bc565b5050565b6000546001600160a01b031633146109dc5760405162461bcd60e51b81526004016104459061185c565b60005b81518110156109ae57600160066000848481518110610a0057610a006119ba565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a3c81611989565b9150506109df565b6001600160a01b038316610aa65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610445565b6001600160a01b038216610b075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610445565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bcc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610445565b6001600160a01b038216610c2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610445565b60008111610c905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610445565b6000546001600160a01b03848116911614801590610cbc57506000546001600160a01b03838116911614155b15610ee4576001600160a01b03831660009081526006602052604090205460ff16158015610d0357506001600160a01b03821660009081526006602052604090205460ff16155b610d0c57600080fd5b6000600a55600e5415610d2157600c54610d25565b600d545b600b556011546001600160a01b038481169116148015610d5357506010546001600160a01b03838116911614155b8015610d7857506001600160a01b03821660009081526005602052604090205460ff16155b8015610d8d5750601154600160b81b900460ff165b15610e6757601254811115610de45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610445565b60135481610df1846104e4565b610dfb9190611902565b1115610e495760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610445565b600e5415610e6757600e8054906000610e6183611972565b91905055505b6000610e72306104e4565b601154909150600160a81b900460ff16158015610e9d57506011546001600160a01b03858116911614155b8015610eb25750601154600160b01b900460ff165b8015610ebe5750600081115b15610ede57610ecc81610ff7565b478015610edc57610edc47610f39565b505b50610eef565b6000600a819055600b555b610efa838383611180565b505050565b60008184841115610f235760405162461bcd60e51b81526004016104459190611807565b506000610f30848661195b565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109ae573d6000803e3d6000fd5b6000600854821115610fda5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610445565b6000610fe461118b565b9050610ff083826111ae565b9392505050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061103f5761103f6119ba565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb9190611610565b816001815181106110de576110de6119ba565b6001600160a01b0392831660209182029290920101526010546111049130911684610a44565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061113d908590600090869030904290600401611891565b600060405180830381600087803b15801561115757600080fd5b505af115801561116b573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610efa8383836111f0565b60008060006111986112e7565b90925090506111a782826111ae565b9250505090565b6000610ff083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611325565b60008060008060008061120287611353565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061123490876113b0565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461126390866113f2565b6001600160a01b03891660009081526002602052604090205561128581611451565b61128f848361149b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112d491815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c6800061130182826111ae565b82101561131c5750506008549266038d7ea4c6800092509050565b90939092509050565b600081836113465760405162461bcd60e51b81526004016104459190611807565b506000610f30848661191a565b60008060008060008060008060006113708a600a54600b546114bf565b925092509250600061138061118b565b905060008060006113938e878787611514565b919e509c509a509598509396509194505050505091939550919395565b6000610ff083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610eff565b6000806113ff8385611902565b905083811015610ff05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610445565b600061145b61118b565b905060006114698383611564565b3060009081526002602052604090205490915061148690826113f2565b30600090815260026020526040902055505050565b6008546114a890836113b0565b6008556009546114b890826113f2565b6009555050565b60008080806114d960646114d38989611564565b906111ae565b905060006114ec60646114d38a89611564565b90506000611504826114fe8b866113b0565b906113b0565b9992985090965090945050505050565b60008080806115238886611564565b905060006115318887611564565b9050600061153f8888611564565b90506000611551826114fe86866113b0565b939b939a50919850919650505050505050565b600082611573575060006103ac565b600061157f838561193c565b90508261158c858361191a565b14610ff05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610445565b80356115ee816119e6565b919050565b60006020828403121561160557600080fd5b8135610ff0816119e6565b60006020828403121561162257600080fd5b8151610ff0816119e6565b6000806040838503121561164057600080fd5b823561164b816119e6565b9150602083013561165b816119e6565b809150509250929050565b60008060006060848603121561167b57600080fd5b8335611686816119e6565b92506020840135611696816119e6565b929592945050506040919091013590565b600080604083850312156116ba57600080fd5b82356116c5816119e6565b946020939093013593505050565b600060208083850312156116e657600080fd5b823567ffffffffffffffff808211156116fe57600080fd5b818501915085601f83011261171257600080fd5b813581811115611724576117246119d0565b8060051b604051601f19603f83011681018181108582111715611749576117496119d0565b604052828152858101935084860182860187018a101561176857600080fd5b600095505b838610156117925761177e816115e3565b85526001959095019493860193860161176d565b5098975050505050505050565b6000602082840312156117b157600080fd5b8135610ff0816119fb565b6000602082840312156117ce57600080fd5b8151610ff0816119fb565b6000806000606084860312156117ee57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561183457858101830151858201604001528201611818565b81811115611846576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118e15784516001600160a01b0316835293830193918301916001016118bc565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611915576119156119a4565b500190565b60008261193757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611956576119566119a4565b500290565b60008282101561196d5761196d6119a4565b500390565b600081611981576119816119a4565b506000190190565b600060001982141561199d5761199d6119a4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104e157600080fd5b80151581146104e157600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203cb81c27fdbbf18410e735b16f42de291c18426b2bd8a99f71ad397acc64cafc64736f6c63430008070033

Deployed Bytecode Sourcemap

3563:10351:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5455:83;;;;;;;;;;-1:-1:-1;5525:5:0;;;;;;;;;;;;-1:-1:-1;;;5525:5:0;;;;5455:83;;;;;;;:::i;:::-;;;;;;;;6307:161;;;;;;;;;;-1:-1:-1;6307:161:0;;;;;:::i;:::-;;:::i;:::-;;;5352:14:1;;5345:22;5327:41;;5315:2;5300:18;6307:161:0;5187:187:1;5732:95:0;;;;;;;;;;-1:-1:-1;4072:17:0;5732:95;;;10746:25:1;;;10734:2;10719:18;5732:95:0;10600:177:1;6476:313:0;;;;;;;;;;-1:-1:-1;6476:313:0;;;;;:::i;:::-;;:::i;9657:88::-;;;;;;;;;;-1:-1:-1;9657:88:0;;;;;:::i;:::-;;:::i;:::-;;5641:83;;;;;;;;;;-1:-1:-1;5641:83:0;;4546:1;11909:36:1;;11897:2;11882:18;5641:83:0;11767:184:1;6797:103:0;;;;;;;;;;-1:-1:-1;6797:103:0;;;;;:::i;:::-;;:::i;12029:193::-;;;;;;;;;;;;;:::i;5835:138::-;;;;;;;;;;-1:-1:-1;5835:138:0;;;;;:::i;:::-;;:::i;2644:148::-;;;;;;;;;;;;;:::i;9755:118::-;;;;;;;;;;;;;:::i;2430:79::-;;;;;;;;;;-1:-1:-1;2468:7:0;2495:6;2430:79;;-1:-1:-1;;;;;2495:6:0;;;3925:51:1;;3913:2;3898:18;2430:79:0;3779:203:1;5546:87:0;;;;;;;;;;-1:-1:-1;5618:7:0;;;;;;;;;;;;-1:-1:-1;;;5618:7:0;;;;5546:87;;5981:167;;;;;;;;;;-1:-1:-1;5981:167:0;;;;;:::i;:::-;;:::i;11827:194::-;;;;;;;;;;;;;:::i;9985:773::-;;;;;;;;;;;;;:::i;9485:164::-;;;;;;;;;;-1:-1:-1;9485:164:0;;;;;:::i;:::-;;:::i;6156:143::-;;;;;;;;;;-1:-1:-1;6156:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6264:18:0;;;6237:7;6264:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6156:143;6307:161;6382:4;6399:39;228:10;6422:7;6431:6;6399:8;:39::i;:::-;-1:-1:-1;6456:4:0;6307:161;;;;;:::o;6476:313::-;6574:4;6591:36;6601:6;6609:9;6620:6;6591:9;:36::i;:::-;6638:121;6647:6;228:10;6669:89;6707:6;6669:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6669:19:0;;;;;;:11;:19;;;;;;;;228:10;6669:33;;;;;;;;;;:37;:89::i;:::-;6638:8;:121::i;:::-;-1:-1:-1;6777:4:0;6476:313;;;;;:::o;9657:88::-;2557:6;;-1:-1:-1;;;;;2557:6:0;228:10;2557:22;2549:67;;;;-1:-1:-1;;;2549:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9717:12:0::1;9732:5;9717:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;9717:20:0::1;::::0;;9657:88::o;6797:103::-;2557:6;;-1:-1:-1;;;;;2557:6:0;228:10;2557:22;2549:67;;;;-1:-1:-1;;;2549:67:0;;;;;;;:::i;:::-;6869:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6869:23:0::1;-1:-1:-1::0;;;;6869:23:0;;::::1;::::0;;;::::1;::::0;;6797:103::o;12029:193::-;12095:14;;-1:-1:-1;;;;;12095:14:0;228:10;-1:-1:-1;;;;;12079:30:0;;12071:39;;;;;;12150:21;12182:32;12150:21;12182:12;:32::i;:::-;12060:162;12029:193::o;5835:138::-;-1:-1:-1;;;;;5948:16:0;;5901:7;5948:16;;;:7;:16;;;;;;5928:37;;:19;:37::i;2644:148::-;2557:6;;-1:-1:-1;;;;;2557:6:0;228:10;2557:22;2549:67;;;;-1:-1:-1;;;2549:67:0;;;;;;;:::i;:::-;2751:1:::1;2735:6:::0;;2714:40:::1;::::0;-1:-1:-1;;;;;2735:6:0;;::::1;::::0;2714:40:::1;::::0;2751:1;;2714:40:::1;2782:1;2765:19:::0;;-1:-1:-1;;;;;;2765:19:0::1;::::0;;2644:148::o;9755:118::-;2557:6;;-1:-1:-1;;;;;2557:6:0;228:10;2557:22;2549:67;;;;-1:-1:-1;;;2549:67:0;;;;;;;:::i;:::-;4072:17:::1;9808:12;:22:::0;;;9841:14:::1;:24:::0;9755:118::o;5981:167::-;6059:4;6076:42;228:10;6100:9;6111:6;6076:9;:42::i;11827:194::-;11893:14;;-1:-1:-1;;;;;11893:14:0;228:10;-1:-1:-1;;;;;11877:30:0;;11869:39;;;;;;11919:23;11945:24;11963:4;11945:9;:24::i;:::-;11919:50;;11980:33;11997:15;11980:16;:33::i;9985:773::-;2557:6;;-1:-1:-1;;;;;2557:6:0;228:10;2557:22;2549:67;;;;-1:-1:-1;;;2549:67:0;;;;;;;:::i;:::-;10049:11:::1;::::0;-1:-1:-1;;;10049:11:0;::::1;;;10048:12;10040:47;;;::::0;-1:-1:-1;;;10040:47:0;;10450:2:1;10040:47:0::1;::::0;::::1;10432:21:1::0;10489:2;10469:18;;;10462:30;10528:25;10508:18;;;10501:53;10571:18;;10040:47:0::1;10248:347:1::0;10040:47:0::1;10209:15;:34:::0;;-1:-1:-1;;;;;;10209:34:0::1;10155:42;10209:34:::0;;::::1;::::0;;;10254:58:::1;10271:4;10155:42:::0;4072:17:::1;10254:8;:58::i;:::-;10357:16;-1:-1:-1::0;;;;;10357:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10339:56:0::1;;10404:4;10411:16;-1:-1:-1::0;;;;;10411:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10339:96;::::0;-1:-1:-1;;;;;;10339:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4217:15:1;;;10339:96:0::1;::::0;::::1;4199:34:1::0;4269:15;;4249:18;;;4242:43;4134:18;;10339:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10323:13;:112:::0;;-1:-1:-1;;;;;;10323:112:0::1;-1:-1:-1::0;;;;;10323:112:0;;::::1;;::::0;;10446:15:::1;::::0;::::1;:31;10485:21;10516:4;10522:24;10516:4:::0;10522:9:::1;:24::i;:::-;10547:1;10549::::0;10551:7:::1;2468::::0;2495:6;-1:-1:-1;;;;;2495:6:0;;2430:79;10551:7:::1;10446:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10446:129:0;;;-1:-1:-1;;;;;4934:15:1;;;10446:129:0::1;::::0;::::1;4916:34:1::0;4966:18;;;4959:34;;;;5009:18;;;5002:34;;;;5052:18;;;5045:34;5116:15;;;5095:19;;;5088:44;10559:15:0::1;5148:19:1::0;;;5141:35;4850:19;;10446:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10586:11:0::1;:18:::0;;-1:-1:-1;;;;10650:18:0;;-1:-1:-1;;;10650:18:0;;;;10717:15:::1;::::0;10679:71:::1;::::0;-1:-1:-1;;;10679:71:0;;-1:-1:-1;;;;;10717:15:0;;::::1;10679:71;::::0;::::1;4470:51:1::0;-1:-1:-1;;4537:18:1;;;4530:34;10686:13:0;;;-1:-1:-1;10679:29:0::1;::::0;4443:18:1;;10679:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10029:729;9985:773::o:0;9485:164::-;2557:6;;-1:-1:-1;;;;;2557:6:0;228:10;2557:22;2549:67;;;;-1:-1:-1;;;2549:67:0;;;;;;;:::i;:::-;9559:6:::1;9554:88;9575:5;:12;9571:1;:16;9554:88;;;9626:4;9609;:14;9614:5;9620:1;9614:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9609:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9609:14:0;:21;;-1:-1:-1;;9609:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9589:3;::::1;::::0;::::1;:::i;:::-;;;;9554:88;;7170:335:::0;-1:-1:-1;;;;;7263:19:0;;7255:68;;;;-1:-1:-1;;;7255:68:0;;10045:2:1;7255:68:0;;;10027:21:1;10084:2;10064:18;;;10057:30;10123:34;10103:18;;;10096:62;-1:-1:-1;;;10174:18:1;;;10167:34;10218:19;;7255:68:0;9843:400:1;7255:68:0;-1:-1:-1;;;;;7342:21:0;;7334:68;;;;-1:-1:-1;;;7334:68:0;;7352:2:1;7334:68:0;;;:21:1;7391:2;7371:18;;;7364:30;7430:34;7410:18;;;7403:62;-1:-1:-1;;;7481:18:1;;;7474:32;7523:19;;7334:68:0;7150:398:1;7334:68:0;-1:-1:-1;;;;;7413:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7465:32;;10746:25:1;;;7465:32:0;;10719:18:1;7465:32:0;;;;;;;7170:335;;;:::o;7513:1473::-;-1:-1:-1;;;;;7601:18:0;;7593:68;;;;-1:-1:-1;;;7593:68:0;;9284:2:1;7593:68:0;;;9266:21:1;9323:2;9303:18;;;9296:30;9362:34;9342:18;;;9335:62;-1:-1:-1;;;9413:18:1;;;9406:35;9458:19;;7593:68:0;9082:401:1;7593:68:0;-1:-1:-1;;;;;7680:16:0;;7672:64;;;;-1:-1:-1;;;7672:64:0;;6183:2:1;7672:64:0;;;6165:21:1;6222:2;6202:18;;;6195:30;6261:34;6241:18;;;6234:62;-1:-1:-1;;;6312:18:1;;;6305:33;6355:19;;7672:64:0;5981:399:1;7672:64:0;7764:1;7755:6;:10;7747:64;;;;-1:-1:-1;;;7747:64:0;;8874:2:1;7747:64:0;;;8856:21:1;8913:2;8893:18;;;8886:30;8952:34;8932:18;;;8925:62;-1:-1:-1;;;9003:18:1;;;8996:39;9052:19;;7747:64:0;8672:405:1;7747:64:0;2468:7;2495:6;-1:-1:-1;;;;;7830:15:0;;;2495:6;;7830:15;;;;:32;;-1:-1:-1;2468:7:0;2495:6;-1:-1:-1;;;;;7849:13:0;;;2495:6;;7849:13;;7830:32;7826:1110;;;-1:-1:-1;;;;;7888:10:0;;;;;;:4;:10;;;;;;;;7887:11;:24;;;;-1:-1:-1;;;;;;7903:8:0;;;;;;:4;:8;;;;;;;;7902:9;7887:24;7879:33;;;;;;7939:1;7927:9;:13;7968:19;;:22;7967:46;;8002:11;;7967:46;;;7992:9;;7967:46;7955:9;:58;8040:13;;-1:-1:-1;;;;;8032:21:0;;;8040:13;;8032:21;:55;;;;-1:-1:-1;8071:15:0;;-1:-1:-1;;;;;8057:30:0;;;8071:15;;8057:30;;8032:55;:83;;;;-1:-1:-1;;;;;;8093:22:0;;;;;;:18;:22;;;;;;;;8091:24;8032:83;:102;;;;-1:-1:-1;8119:15:0;;-1:-1:-1;;;8119:15:0;;;;8032:102;8028:397;;;8202:12;;8192:6;:22;;8184:60;;;;-1:-1:-1;;;8184:60:0;;6587:2:1;8184:60:0;;;6569:21:1;6626:2;6606:18;;;6599:30;6665:27;6645:18;;;6638:55;6710:18;;8184:60:0;6385:349:1;8184:60:0;8297:14;;8287:6;8271:13;8281:2;8271:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8263:79;;;;-1:-1:-1;;;8263:79:0;;9690:2:1;8263:79:0;;;9672:21:1;9729:2;9709:18;;;9702:30;9768:28;9748:18;;;9741:56;9814:18;;8263:79:0;9488:350:1;8263:79:0;8364:19;;:21;8361:49;;8387:19;:21;;;:19;:21;;;:::i;:::-;;;;;;8361:49;8443:28;8474:24;8492:4;8474:9;:24::i;:::-;8518:6;;8443:55;;-1:-1:-1;;;;8518:6:0;;;;8517:7;:32;;;;-1:-1:-1;8536:13:0;;-1:-1:-1;;;;;8528:21:0;;;8536:13;;8528:21;;8517:32;:47;;;;-1:-1:-1;8553:11:0;;-1:-1:-1;;;8553:11:0;;;;8517:47;:73;;;;;8589:1;8568:20;:22;8517:73;8513:344;;;8611:38;8628:20;8611:16;:38::i;:::-;8697:21;8740:22;;8737:105;;8787:35;8800:21;8787:12;:35::i;:::-;8592:265;8513:344;7864:1004;7826:1110;;;8897:1;8885:9;:13;;;8911:9;:13;7826:1110;8948:30;8963:4;8968:2;8971:6;8948:14;:30::i;:::-;7513:1473;;;:::o;1285:190::-;1371:7;1407:12;1399:6;;;;1391:29;;;;-1:-1:-1;;;1391:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1431:9:0;1443:5;1447:1;1443;:5;:::i;:::-;1431:17;1285:190;-1:-1:-1;;;;;1285:190:0:o;9881:96::-;9938:14;;:31;;-1:-1:-1;;;;;9938:14:0;;;;:31;;;;;9962:6;;9938:14;:31;:14;:31;9962:6;9938:14;:31;;;;;;;;;;;;;;;;;;;6908:254;6975:7;7014;;7003;:18;;6995:73;;;;-1:-1:-1;;;6995:73:0;;6941:2:1;6995:73:0;;;6923:21:1;6980:2;6960:18;;;6953:30;7019:34;6999:18;;;6992:62;-1:-1:-1;;;7070:18:1;;;7063:40;7120:19;;6995:73:0;6739:406:1;6995:73:0;7079:19;7102:10;:8;:10::i;:::-;7079:33;-1:-1:-1;7130:24:0;:7;7079:33;7130:11;:24::i;:::-;7123:31;6908:254;-1:-1:-1;;;6908:254:0:o;8994:483::-;4979:6;:13;;-1:-1:-1;;;;4979:13:0;-1:-1:-1;;;4979:13:0;;;9096:16:::1;::::0;;9110:1:::1;9096:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9096:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9096:16:0::1;9072:40;;9141:4;9123;9128:1;9123:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9123:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9167:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9167:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9123:7;;9167:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9157:4;9162:1;9157:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9157:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9232:15:::1;::::0;9200:62:::1;::::0;9217:4:::1;::::0;9232:15:::1;9250:11:::0;9200:8:::1;:62::i;:::-;9273:15;::::0;:196:::1;::::0;-1:-1:-1;;;9273:196:0;;-1:-1:-1;;;;;9273:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9354:11;;9273:15:::1;::::0;9396:4;;9423::::1;::::0;9443:15:::1;::::0;9273:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5015:6:0;:14;;-1:-1:-1;;;;5015:14:0;;;-1:-1:-1;;;;8994:483:0:o;10766:146::-;10860:44;10878:6;10886:9;10897:6;10860:17;:44::i;13484:163::-;13525:7;13546:15;13563;13582:19;:17;:19::i;:::-;13545:56;;-1:-1:-1;13545:56:0;-1:-1:-1;13619:20:0;13545:56;;13619:11;:20::i;:::-;13612:27;;;;13484:163;:::o;1737:132::-;1795:7;1822:39;1826:1;1829;1822:39;;;;;;;;;;;;;;;;;:3;:39::i;10920:487::-;11019:15;11036:23;11061:12;11075:23;11100:12;11114:13;11131:19;11142:7;11131:10;:19::i;:::-;-1:-1:-1;;;;;11179:15:0;;;;;;:7;:15;;;;;;11018:132;;-1:-1:-1;11018:132:0;;-1:-1:-1;11018:132:0;;-1:-1:-1;11018:132:0;-1:-1:-1;11018:132:0;-1:-1:-1;11018:132:0;-1:-1:-1;11179:28:0;;11018:132;11179:19;:28::i;:::-;-1:-1:-1;;;;;11161:15:0;;;;;;;:7;:15;;;;;;:46;;;;11239:18;;;;;;;:39;;11262:15;11239:22;:39::i;:::-;-1:-1:-1;;;;;11218:18:0;;;;;;:7;:18;;;;;:60;11289:16;11299:5;11289:9;:16::i;:::-;11316:23;11328:4;11334;11316:11;:23::i;:::-;11372:9;-1:-1:-1;;;;;11355:44:0;11364:6;-1:-1:-1;;;;;11355:44:0;;11383:15;11355:44;;;;10746:25:1;;10734:2;10719:18;;10600:177;11355:44:0;;;;;;;;11007:400;;;;;;10920:487;;;:::o;13655:256::-;13752:7;;13705;;;;4072:17;13820:20;13752:7;4072:17;13820:11;:20::i;:::-;13810:7;:30;13806:61;;;-1:-1:-1;;13850:7:0;;;4072:17;;-1:-1:-1;13655:256:0;-1:-1:-1;13655:256:0:o;13806:61::-;13886:7;;13895;;-1:-1:-1;13655:256:0;-1:-1:-1;13655:256:0:o;1877:189::-;1963:7;1998:12;1991:5;1983:28;;;;-1:-1:-1;;;1983:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2022:9:0;2034:5;2038:1;2034;:5;:::i;12232:471::-;12291:7;12300;12309;12318;12327;12336;12357:23;12382:12;12396:13;12413:42;12425:7;12434:9;;12445;;12413:11;:42::i;:::-;12356:99;;;;;;12466:19;12489:10;:8;:10::i;:::-;12466:33;;12511:15;12528:23;12553:12;12569:46;12581:7;12590:4;12596:5;12603:11;12569;:46::i;:::-;12510:105;;-1:-1:-1;12510:105:0;-1:-1:-1;12510:105:0;-1:-1:-1;12666:15:0;;-1:-1:-1;12683:4:0;;-1:-1:-1;12689:5:0;;-1:-1:-1;;;;;12232:471:0;;;;;;;:::o;1141:136::-;1199:7;1226:43;1230:1;1233;1226:43;;;;;;;;;;;;;;;;;:3;:43::i;954:179::-;1012:7;;1044:5;1048:1;1044;:5;:::i;:::-;1032:17;;1073:1;1068;:6;;1060:46;;;;-1:-1:-1;;;1060:46:0;;7755:2:1;1060:46:0;;;7737:21:1;7794:2;7774:18;;;7767:30;7833:29;7813:18;;;7806:57;7880:18;;1060:46:0;7553:351:1;11415:212:0;11468:19;11491:10;:8;:10::i;:::-;11468:33;-1:-1:-1;11512:13:0;11528:22;:5;11468:33;11528:9;:22::i;:::-;11602:4;11586:22;;;;:7;:22;;;;;;11512:38;;-1:-1:-1;11586:33:0;;11512:38;11586:26;:33::i;:::-;11577:4;11561:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11415:212:0:o;11635:147::-;11713:7;;:17;;11725:4;11713:11;:17::i;:::-;11703:7;:27;11754:10;;:20;;11769:4;11754:14;:20::i;:::-;11741:10;:33;-1:-1:-1;;11635:147:0:o;12711:351::-;12804:7;;;;12857:28;12881:3;12857:19;:7;12869:6;12857:11;:19::i;:::-;:23;;:28::i;:::-;12842:43;-1:-1:-1;12896:13:0;12912:29;12937:3;12912:20;:7;12924;12912:11;:20::i;:29::-;12896:45;-1:-1:-1;12952:23:0;12978:28;12896:45;12978:17;:7;12990:4;12978:11;:17::i;:::-;:21;;:28::i;:::-;12952:54;13042:4;;-1:-1:-1;13048:5:0;;-1:-1:-1;12711:351:0;;-1:-1:-1;;;;;12711:351:0:o;13070:409::-;13180:7;;;;13236:24;:7;13248:11;13236;:24::i;:::-;13218:42;-1:-1:-1;13271:12:0;13286:21;:4;13295:11;13286:8;:21::i;:::-;13271:36;-1:-1:-1;13318:13:0;13334:22;:5;13344:11;13334:9;:22::i;:::-;13318:38;-1:-1:-1;13367:23:0;13393:28;13318:38;13393:17;:7;13405:4;13393:11;:17::i;:28::-;13440:7;;;;-1:-1:-1;13466:4:0;;-1:-1:-1;13070:409:0;;-1:-1:-1;;;;;;;13070:409:0:o;1483:246::-;1541:7;1565:6;1561:47;;-1:-1:-1;1595:1:0;1588:8;;1561:47;1618:9;1630:5;1634:1;1630;:5;:::i;:::-;1618:17;-1:-1:-1;1663:1:0;1654:5;1658:1;1618:17;1654:5;:::i;:::-;:10;1646:56;;;;-1:-1:-1;;;1646:56:0;;8111:2:1;1646:56:0;;;8093:21:1;8150:2;8130:18;;;8123:30;8189:34;8169:18;;;8162:62;-1:-1:-1;;;8240:18:1;;;8233:31;8281:19;;1646:56:0;7909:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:306::-;3556:6;3564;3572;3625:2;3613:9;3604:7;3600:23;3596:32;3593:52;;;3641:1;3638;3631:12;3593:52;3670:9;3664:16;3654:26;;3720:2;3709:9;3705:18;3699:25;3689:35;;3764:2;3753:9;3749:18;3743:25;3733:35;;3468:306;;;;;:::o;5379:597::-;5491:4;5520:2;5549;5538:9;5531:21;5581:6;5575:13;5624:6;5619:2;5608:9;5604:18;5597:34;5649:1;5659:140;5673:6;5670:1;5667:13;5659:140;;;5768:14;;;5764:23;;5758:30;5734:17;;;5753:2;5730:26;5723:66;5688:10;;5659:140;;;5817:6;5814:1;5811:13;5808:91;;;5887:1;5882:2;5873:6;5862:9;5858:22;5854:31;5847:42;5808:91;-1:-1:-1;5960:2:1;5939:15;-1:-1:-1;;5935:29:1;5920:45;;;;5967:2;5916:54;;5379:597;-1:-1:-1;;;5379:597:1:o;8311:356::-;8513:2;8495:21;;;8532:18;;;8525:30;8591:34;8586:2;8571:18;;8564:62;8658:2;8643:18;;8311:356::o;10782:980::-;11044:4;11092:3;11081:9;11077:19;11123:6;11112:9;11105:25;11149:2;11187:6;11182:2;11171:9;11167:18;11160:34;11230:3;11225:2;11214:9;11210:18;11203:31;11254:6;11289;11283:13;11320:6;11312;11305:22;11358:3;11347:9;11343:19;11336:26;;11397:2;11389:6;11385:15;11371:29;;11418:1;11428:195;11442:6;11439:1;11436:13;11428:195;;;11507:13;;-1:-1:-1;;;;;11503:39:1;11491:52;;11598:15;;;;11563:12;;;;11539:1;11457:9;11428:195;;;-1:-1:-1;;;;;;;11679:32:1;;;;11674:2;11659:18;;11652:60;-1:-1:-1;;;11743:3:1;11728:19;11721:35;11640:3;10782:980;-1:-1:-1;;;10782:980:1:o;11956:128::-;11996:3;12027:1;12023:6;12020:1;12017:13;12014:39;;;12033:18;;:::i;:::-;-1:-1:-1;12069:9:1;;11956:128::o;12089:217::-;12129:1;12155;12145:132;;12199:10;12194:3;12190:20;12187:1;12180:31;12234:4;12231:1;12224:15;12262:4;12259:1;12252:15;12145:132;-1:-1:-1;12291:9:1;;12089:217::o;12311:168::-;12351:7;12417:1;12413;12409:6;12405:14;12402:1;12399:21;12394:1;12387:9;12380:17;12376:45;12373:71;;;12424:18;;:::i;:::-;-1:-1:-1;12464:9:1;;12311:168::o;12484:125::-;12524:4;12552:1;12549;12546:8;12543:34;;;12557:18;;:::i;:::-;-1:-1:-1;12594:9:1;;12484:125::o;12614:136::-;12653:3;12681:5;12671:39;;12690:18;;:::i;:::-;-1:-1:-1;;;12726:18:1;;12614:136::o;12755:135::-;12794:3;-1:-1:-1;;12815:17:1;;12812:43;;;12835:18;;:::i;:::-;-1:-1:-1;12882:1:1;12871:13;;12755:135::o;12895:127::-;12956:10;12951:3;12947:20;12944:1;12937:31;12987:4;12984:1;12977:15;13011:4;13008:1;13001:15;13027:127;13088:10;13083:3;13079:20;13076:1;13069:31;13119:4;13116:1;13109:15;13143:4;13140:1;13133:15;13159:127;13220:10;13215:3;13211:20;13208:1;13201:31;13251:4;13248:1;13241:15;13275:4;13272:1;13265:15;13291:131;-1:-1:-1;;;;;13366:31:1;;13356:42;;13346:70;;13412:1;13409;13402:12;13427:118;13513:5;13506:13;13499:21;13492:5;13489:32;13479:60;;13535:1;13532;13525:12

Swarm Source

ipfs://3cb81c27fdbbf18410e735b16f42de291c18426b2bd8a99f71ad397acc64cafc

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  ]
[ 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.