ETH Price: $3,505.44 (+2.59%)
Gas: 12 Gwei

Contract

0xd556776a3451FB2E2252fEAEd234Be750a97d016
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve186792642023-11-29 19:10:11230 days ago1701285011IN
0xd556776a...50a97d016
0 ETH0.0019538980.61629258
Approve170047732023-04-08 16:11:35465 days ago1680970295IN
0xd556776a...50a97d016
0 ETH0.0005554922.86249947
Approve169312502023-03-29 6:44:47475 days ago1680072287IN
0xd556776a...50a97d016
0 ETH0.0006349626.1333773
Approve165164472023-01-30 1:46:47534 days ago1675043207IN
0xd556776a...50a97d016
0 ETH0.0006884414.7795447
Approve165114242023-01-29 8:56:47534 days ago1674982607IN
0xd556776a...50a97d016
0 ETH0.000423117.45710388
Approve165065442023-01-28 16:35:11535 days ago1674923711IN
0xd556776a...50a97d016
0 ETH0.0008268817.77446744
Approve164986102023-01-27 14:00:59536 days ago1674828059IN
0xd556776a...50a97d016
0 ETH0.0007950617.09055366
Approve164983202023-01-27 13:02:23536 days ago1674824543IN
0xd556776a...50a97d016
0 ETH0.000656414.21255965
Approve164956482023-01-27 4:03:59537 days ago1674792239IN
0xd556776a...50a97d016
0 ETH0.0008212217.63000209
Approve164953812023-01-27 3:09:59537 days ago1674788999IN
0xd556776a...50a97d016
0 ETH0.0007829516.83015374
Approve164950532023-01-27 2:03:59537 days ago1674785039IN
0xd556776a...50a97d016
0 ETH0.0018280439.24437313
Approve164946262023-01-27 0:38:11537 days ago1674779891IN
0xd556776a...50a97d016
0 ETH0.0012403126.66136129
Approve164944162023-01-26 23:56:11537 days ago1674777371IN
0xd556776a...50a97d016
0 ETH0.000978221
Approve164943682023-01-26 23:46:35537 days ago1674776795IN
0xd556776a...50a97d016
0 ETH0.0008761518.83364001
Approve164942492023-01-26 23:22:47537 days ago1674775367IN
0xd556776a...50a97d016
0 ETH0.0011168824.00816823
Approve164941142023-01-26 22:55:47537 days ago1674773747IN
0xd556776a...50a97d016
0 ETH0.0015151932.57015876
Approve164938352023-01-26 21:59:35537 days ago1674770375IN
0xd556776a...50a97d016
0 ETH0.0010292422.12428932
Approve164937852023-01-26 21:49:35537 days ago1674769775IN
0xd556776a...50a97d016
0 ETH0.001020421.93439149
Approve164937142023-01-26 21:35:23537 days ago1674768923IN
0xd556776a...50a97d016
0 ETH0.001156124.85133239
Approve164936002023-01-26 21:12:35537 days ago1674767555IN
0xd556776a...50a97d016
0 ETH0.0018301339.33987573
Approve164935232023-01-26 20:57:11537 days ago1674766631IN
0xd556776a...50a97d016
0 ETH0.0006172125.46598663
Approve164935032023-01-26 20:53:11537 days ago1674766391IN
0xd556776a...50a97d016
0 ETH0.0012222526.27323167
Approve164934382023-01-26 20:40:11537 days ago1674765611IN
0xd556776a...50a97d016
0 ETH0.0013100128.12344289
Approve164933932023-01-26 20:31:11537 days ago1674765071IN
0xd556776a...50a97d016
0 ETH0.0011426424.5619043
Approve164933602023-01-26 20:24:35537 days ago1674764675IN
0xd556776a...50a97d016
0 ETH0.0011008923.66454468
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
167401972023-03-02 10:09:47502 days ago1677751787
0xd556776a...50a97d016
0.00035301 ETH
167401972023-03-02 10:09:47502 days ago1677751787
0xd556776a...50a97d016
0.00035301 ETH
166070962023-02-11 17:45:35521 days ago1676137535
0xd556776a...50a97d016
0.0007114 ETH
166070962023-02-11 17:45:35521 days ago1676137535
0xd556776a...50a97d016
0.0007114 ETH
165651522023-02-05 21:04:47527 days ago1675631087
0xd556776a...50a97d016
0.00164723 ETH
165651522023-02-05 21:04:47527 days ago1675631087
0xd556776a...50a97d016
0.00164723 ETH
165164572023-01-30 1:48:47534 days ago1675043327
0xd556776a...50a97d016
0.00056503 ETH
165164572023-01-30 1:48:47534 days ago1675043327
0xd556776a...50a97d016
0.00056503 ETH
164971592023-01-27 9:08:47536 days ago1674810527
0xd556776a...50a97d016
0.00256519 ETH
164971592023-01-27 9:08:47536 days ago1674810527
0xd556776a...50a97d016
0.00256519 ETH
164968302023-01-27 8:02:47536 days ago1674806567
0xd556776a...50a97d016
0.00103814 ETH
164968302023-01-27 8:02:47536 days ago1674806567
0xd556776a...50a97d016
0.00103814 ETH
164968282023-01-27 8:02:23536 days ago1674806543
0xd556776a...50a97d016
0.00119435 ETH
164968282023-01-27 8:02:23536 days ago1674806543
0xd556776a...50a97d016
0.00119435 ETH
164967892023-01-27 7:54:35536 days ago1674806075
0xd556776a...50a97d016
0.00045324 ETH
164967892023-01-27 7:54:35536 days ago1674806075
0xd556776a...50a97d016
0.00045324 ETH
164967762023-01-27 7:51:59536 days ago1674805919
0xd556776a...50a97d016
0.0011612 ETH
164967762023-01-27 7:51:59536 days ago1674805919
0xd556776a...50a97d016
0.0011612 ETH
164967412023-01-27 7:44:59536 days ago1674805499
0xd556776a...50a97d016
0.0012979 ETH
164967412023-01-27 7:44:59536 days ago1674805499
0xd556776a...50a97d016
0.0012979 ETH
164965992023-01-27 7:15:35536 days ago1674803735
0xd556776a...50a97d016
0.0003769 ETH
164965992023-01-27 7:15:35536 days ago1674803735
0xd556776a...50a97d016
0.0003769 ETH
164957952023-01-27 4:33:23537 days ago1674794003
0xd556776a...50a97d016
0.00015786 ETH
164957952023-01-27 4:33:23537 days ago1674794003
0xd556776a...50a97d016
0.00015786 ETH
164957552023-01-27 4:25:23537 days ago1674793523
0xd556776a...50a97d016
0.00020606 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UCHI

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-26
*/

/**
The Legend of Uchiha Inu is a unique and innovative token built on the Ethereum blockchain. 
It is inspired by the legendary Uchiha clan from the popular anime and manga series "Naruto."

The Uchiha clan is known for their powerful Sharingan eyes, which grant them incredible abilities such as the ability to copy and master any jutsu they see. 
Similarly, the Legend of Uchiha Inu token grants holders access to exclusive benefits and rewards within the platform.

The token is built on the Ethereum blockchain, which provides a secure and decentralized platform for transactions. 
This ensures that the token is transparent and tamper-proof, providing peace of mind for holders.

TG: https://t.me/uchihaportal
Twitter: https://twitter.com/uchihaerc
Website: http://uchihaeth.com/
*/

pragma solidity 0.8.9;

// 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 UCHI 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 = 10000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = unicode"Uchiha Inu";
    string private constant _symbol = unicode"UCHI";
    uint8 private constant _decimals = 5;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private _maxWalletSize = _tTotal.mul(2).div(100);
    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;
        _standardTax=5;

        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 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            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 setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    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 addbot(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    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":"addbot","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":[],"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":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","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"}]

6080604052620000126005600a62000442565b62000021906298968062000453565b6200002f906000196200048b565b6200003d90600019620004a2565b600855600f805462ffffff60a81b19169055620000a060646200008c6002620000696005600a62000442565b62000078906298968062000453565b6200021560201b62000a821790919060201c565b620002a960201b62000b081790919060201c565b601055620000bd60646200008c6002620000696005600a62000442565b601155348015620000cd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b031916339081179091556008546000918252600260205260408220556001906005906200014f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600593849052828120805486166001908117909155600d54909216815291909120805490931617909155600c55620001b53390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001ef6005600a62000442565b620001fe906298968062000453565b60405190815260200160405180910390a36200052b565b6000826200022657506000620002a3565b600062000234838562000453565b905082620002438583620004bc565b14620002a05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b6000620002a083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620002f360201b60201c565b60008183620003175760405162461bcd60e51b8152600401620002979190620004d3565b506000620003268486620004bc565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003865781600019048211156200036a576200036a6200032f565b808516156200037857918102915b93841c93908002906200034a565b509250929050565b6000826200039f57506001620002a3565b81620003ae57506000620002a3565b8160018114620003c75760028114620003d257620003f2565b6001915050620002a3565b60ff841115620003e657620003e66200032f565b50506001821b620002a3565b5060208310610133831016604e8410600b841016171562000417575081810a620002a3565b62000423838362000345565b80600019048211156200043a576200043a6200032f565b029392505050565b6000620002a060ff8416836200038e565b60008160001904831182151516156200047057620004706200032f565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826200049d576200049d62000475565b500690565b600082821015620004b757620004b76200032f565b500390565b600082620004ce57620004ce62000475565b500490565b600060208083528351808285015260005b818110156200050257858101830151858201604001528201620004e4565b8181111562000515576000604083870101525b50601f01601f1916929092016040019392505050565b611ba5806200053b6000396000f3fe60806040526004361061010d5760003560e01c8063751039fc11610095578063a9059cbb11610064578063a9059cbb146102e3578063c3c8cd8014610303578063c9567bf914610318578063ccfee5d61461032d578063dd62ed3e1461034d57600080fd5b8063751039fc14610259578063843f7be21461026e5780638da5cb5b1461028e57806395d89b41146102b657600080fd5b8063313ce567116100dc578063313ce567146101d15780635932ead1146101ed5780636fc3eaec1461020f57806370a0823114610224578063715018a61461024457600080fd5b806306fdde0314610119578063095ea7b31461015e57806318160ddd1461018e57806323b872dd146101b157600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600a81526955636869686120496e7560b01b60208201525b6040516101559190611633565b60405180910390f35b34801561016a57600080fd5b5061017e6101793660046116ad565b610393565b6040519015158152602001610155565b34801561019a57600080fd5b506101a36103aa565b604051908152602001610155565b3480156101bd57600080fd5b5061017e6101cc3660046116d9565b6103ca565b3480156101dd57600080fd5b5060405160058152602001610155565b3480156101f957600080fd5b5061020d610208366004611728565b610433565b005b34801561021b57600080fd5b5061020d610484565b34801561023057600080fd5b506101a361023f366004611745565b6104b1565b34801561025057600080fd5b5061020d6104d3565b34801561026557600080fd5b5061020d610547565b34801561027a57600080fd5b5061020d610289366004611762565b6105ab565b34801561029a57600080fd5b506000546040516001600160a01b039091168152602001610155565b3480156102c257600080fd5b506040805180820190915260048152635543484960e01b6020820152610148565b3480156102ef57600080fd5b5061017e6102fe3660046116ad565b6105e8565b34801561030f57600080fd5b5061020d6105f5565b34801561032457600080fd5b5061020d61062b565b34801561033957600080fd5b5061020d610348366004611791565b6109f0565b34801561035957600080fd5b506101a3610368366004611856565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a0338484610b4a565b5060015b92915050565b60006103b86005600a611989565b6103c59062989680611998565b905090565b60006103d7848484610c6e565b610429843361042485604051806060016040528060288152602001611b48602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fd6565b610b4a565b5060019392505050565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161045d906119b7565b60405180910390fd5b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146104a457600080fd5b476104ae81611010565b50565b6001600160a01b0381166000908152600260205260408120546103a49061104a565b6000546001600160a01b031633146104fd5760405162461bcd60e51b815260040161045d906119b7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105715760405162461bcd60e51b815260040161045d906119b7565b61057d6005600a611989565b61058a9062989680611998565b6010556105996005600a611989565b6105a69062989680611998565b601155565b6000546001600160a01b031633146105d55760405162461bcd60e51b815260040161045d906119b7565b600c5481106105e357600080fd5b600c55565b60006103a0338484610c6e565b600d546001600160a01b0316336001600160a01b03161461061557600080fd5b6000610620306104b1565b90506104ae816110c7565b6000546001600160a01b031633146106555760405162461bcd60e51b815260040161045d906119b7565b600f54600160a01b900460ff16156106af5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045d565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f630826106e96005600a611989565b6104249062989680611998565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561072f57600080fd5b505afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076791906119ec565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e791906119ec565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561082f57600080fd5b505af1158015610843573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086791906119ec565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730610897816104b1565b6000806108ac6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561090f57600080fd5b505af1158015610923573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109489190611a09565b5050600f805463ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109b457600080fd5b505af11580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611a37565b5050565b6000546001600160a01b03163314610a1a5760405162461bcd60e51b815260040161045d906119b7565b60005b81518110156109ec57600160066000848481518110610a3e57610a3e611a54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a7a81611a6a565b915050610a1d565b600082610a91575060006103a4565b6000610a9d8385611998565b905082610aaa8583611a85565b14610b015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045d565b9392505050565b6000610b0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611250565b6001600160a01b038316610bac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045d565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045d565b6001600160a01b038216610d345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045d565b60008111610d965760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045d565b6000546001600160a01b03848116911614801590610dc257506000546001600160a01b03838116911614155b15610fbb576001600160a01b03831660009081526006602052604090205460ff16158015610e0957506001600160a01b03821660009081526006602052604090205460ff16155b610e1257600080fd5b6000600a55600c54600b55600f546001600160a01b038481169116148015610e485750600e546001600160a01b03838116911614155b8015610e6d57506001600160a01b03821660009081526005602052604090205460ff16155b8015610e825750600f54600160b81b900460ff165b15610f3e57601054811115610ed95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045d565b60115481610ee6846104b1565b610ef09190611aa7565b1115610f3e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045d565b6000610f49306104b1565b600f54909150600160a81b900460ff16158015610f745750600f546001600160a01b03858116911614155b8015610f895750600f54600160b01b900460ff165b8015610f955750600081115b15610fb557610fa3816110c7565b478015610fb357610fb347611010565b505b50610fc6565b6000600a819055600b555b610fd183838361127e565b505050565b60008184841115610ffa5760405162461bcd60e51b815260040161045d9190611633565b5060006110078486611abf565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109ec573d6000803e3d6000fd5b60006008548211156110b15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161045d565b60006110bb611289565b9050610b018382610b08565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110f5761110f611a54565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561116357600080fd5b505afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906119ec565b816001815181106111ae576111ae611a54565b6001600160a01b039283166020918202929092010152600e546111d49130911684610b4a565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061120d908590600090869030904290600401611ad6565b600060405180830381600087803b15801561122757600080fd5b505af115801561123b573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b600081836112715760405162461bcd60e51b815260040161045d9190611633565b5060006110078486611a85565b610fd18383836112ac565b60008060006112966113a3565b90925090506112a58282610b08565b9250505090565b6000806000806000806112be87611422565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112f0908761147f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461131f90866114c1565b6001600160a01b03891660009081526002602052604090205561134181611520565b61134b848361156a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161139091815260200190565b60405180910390a3505050505050505050565b6008546000908190816113b86005600a611989565b6113c59062989680611998565b90506113ec6113d66005600a611989565b6113e39062989680611998565b60085490610b08565b821015611419576008546114026005600a611989565b61140f9062989680611998565b9350935050509091565b90939092509050565b600080600080600080600080600061143f8a600a54600b5461158e565b925092509250600061144f611289565b905060008060006114628e8787876115e3565b919e509c509a509598509396509194505050505091939550919395565b6000610b0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fd6565b6000806114ce8385611aa7565b905083811015610b015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045d565b600061152a611289565b905060006115388383610a82565b3060009081526002602052604090205490915061155590826114c1565b30600090815260026020526040902055505050565b600854611577908361147f565b60085560095461158790826114c1565b6009555050565b60008080806115a860646115a28989610a82565b90610b08565b905060006115bb60646115a28a89610a82565b905060006115d3826115cd8b8661147f565b9061147f565b9992985090965090945050505050565b60008080806115f28886610a82565b905060006116008887610a82565b9050600061160e8888610a82565b90506000611620826115cd868661147f565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561166057858101830151858201604001528201611644565b81811115611672576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104ae57600080fd5b80356116a881611688565b919050565b600080604083850312156116c057600080fd5b82356116cb81611688565b946020939093013593505050565b6000806000606084860312156116ee57600080fd5b83356116f981611688565b9250602084013561170981611688565b929592945050506040919091013590565b80151581146104ae57600080fd5b60006020828403121561173a57600080fd5b8135610b018161171a565b60006020828403121561175757600080fd5b8135610b0181611688565b60006020828403121561177457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117a457600080fd5b823567ffffffffffffffff808211156117bc57600080fd5b818501915085601f8301126117d057600080fd5b8135818111156117e2576117e261177b565b8060051b604051601f19603f830116810181811085821117156118075761180761177b565b60405291825284820192508381018501918883111561182557600080fd5b938501935b8285101561184a5761183b8561169d565b8452938501939285019261182a565b98975050505050505050565b6000806040838503121561186957600080fd5b823561187481611688565b9150602083013561188481611688565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118e05781600019048211156118c6576118c661188f565b808516156118d357918102915b93841c93908002906118aa565b509250929050565b6000826118f7575060016103a4565b81611904575060006103a4565b816001811461191a576002811461192457611940565b60019150506103a4565b60ff8411156119355761193561188f565b50506001821b6103a4565b5060208310610133831016604e8410600b8410161715611963575081810a6103a4565b61196d83836118a5565b80600019048211156119815761198161188f565b029392505050565b6000610b0160ff8416836118e8565b60008160001904831182151516156119b2576119b261188f565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119fe57600080fd5b8151610b0181611688565b600080600060608486031215611a1e57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a4957600080fd5b8151610b018161171a565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611a7e57611a7e61188f565b5060010190565b600082611aa257634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611aba57611aba61188f565b500190565b600082821015611ad157611ad161188f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b265784516001600160a01b031683529383019391830191600101611b01565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1d1f50cef428dacf93c776c7904a0936fe7602975e5c22a19429a15ca86d19064736f6c63430008090033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063751039fc11610095578063a9059cbb11610064578063a9059cbb146102e3578063c3c8cd8014610303578063c9567bf914610318578063ccfee5d61461032d578063dd62ed3e1461034d57600080fd5b8063751039fc14610259578063843f7be21461026e5780638da5cb5b1461028e57806395d89b41146102b657600080fd5b8063313ce567116100dc578063313ce567146101d15780635932ead1146101ed5780636fc3eaec1461020f57806370a0823114610224578063715018a61461024457600080fd5b806306fdde0314610119578063095ea7b31461015e57806318160ddd1461018e57806323b872dd146101b157600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600a81526955636869686120496e7560b01b60208201525b6040516101559190611633565b60405180910390f35b34801561016a57600080fd5b5061017e6101793660046116ad565b610393565b6040519015158152602001610155565b34801561019a57600080fd5b506101a36103aa565b604051908152602001610155565b3480156101bd57600080fd5b5061017e6101cc3660046116d9565b6103ca565b3480156101dd57600080fd5b5060405160058152602001610155565b3480156101f957600080fd5b5061020d610208366004611728565b610433565b005b34801561021b57600080fd5b5061020d610484565b34801561023057600080fd5b506101a361023f366004611745565b6104b1565b34801561025057600080fd5b5061020d6104d3565b34801561026557600080fd5b5061020d610547565b34801561027a57600080fd5b5061020d610289366004611762565b6105ab565b34801561029a57600080fd5b506000546040516001600160a01b039091168152602001610155565b3480156102c257600080fd5b506040805180820190915260048152635543484960e01b6020820152610148565b3480156102ef57600080fd5b5061017e6102fe3660046116ad565b6105e8565b34801561030f57600080fd5b5061020d6105f5565b34801561032457600080fd5b5061020d61062b565b34801561033957600080fd5b5061020d610348366004611791565b6109f0565b34801561035957600080fd5b506101a3610368366004611856565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a0338484610b4a565b5060015b92915050565b60006103b86005600a611989565b6103c59062989680611998565b905090565b60006103d7848484610c6e565b610429843361042485604051806060016040528060288152602001611b48602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610fd6565b610b4a565b5060019392505050565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161045d906119b7565b60405180910390fd5b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600d546001600160a01b0316336001600160a01b0316146104a457600080fd5b476104ae81611010565b50565b6001600160a01b0381166000908152600260205260408120546103a49061104a565b6000546001600160a01b031633146104fd5760405162461bcd60e51b815260040161045d906119b7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105715760405162461bcd60e51b815260040161045d906119b7565b61057d6005600a611989565b61058a9062989680611998565b6010556105996005600a611989565b6105a69062989680611998565b601155565b6000546001600160a01b031633146105d55760405162461bcd60e51b815260040161045d906119b7565b600c5481106105e357600080fd5b600c55565b60006103a0338484610c6e565b600d546001600160a01b0316336001600160a01b03161461061557600080fd5b6000610620306104b1565b90506104ae816110c7565b6000546001600160a01b031633146106555760405162461bcd60e51b815260040161045d906119b7565b600f54600160a01b900460ff16156106af5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045d565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106f630826106e96005600a611989565b6104249062989680611998565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561072f57600080fd5b505afa158015610743573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076791906119ec565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107af57600080fd5b505afa1580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e791906119ec565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561082f57600080fd5b505af1158015610843573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086791906119ec565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d7194730610897816104b1565b6000806108ac6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561090f57600080fd5b505af1158015610923573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109489190611a09565b5050600f805463ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156109b457600080fd5b505af11580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611a37565b5050565b6000546001600160a01b03163314610a1a5760405162461bcd60e51b815260040161045d906119b7565b60005b81518110156109ec57600160066000848481518110610a3e57610a3e611a54565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a7a81611a6a565b915050610a1d565b600082610a91575060006103a4565b6000610a9d8385611998565b905082610aaa8583611a85565b14610b015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045d565b9392505050565b6000610b0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611250565b6001600160a01b038316610bac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045d565b6001600160a01b038216610c0d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cd25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045d565b6001600160a01b038216610d345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045d565b60008111610d965760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045d565b6000546001600160a01b03848116911614801590610dc257506000546001600160a01b03838116911614155b15610fbb576001600160a01b03831660009081526006602052604090205460ff16158015610e0957506001600160a01b03821660009081526006602052604090205460ff16155b610e1257600080fd5b6000600a55600c54600b55600f546001600160a01b038481169116148015610e485750600e546001600160a01b03838116911614155b8015610e6d57506001600160a01b03821660009081526005602052604090205460ff16155b8015610e825750600f54600160b81b900460ff165b15610f3e57601054811115610ed95760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045d565b60115481610ee6846104b1565b610ef09190611aa7565b1115610f3e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045d565b6000610f49306104b1565b600f54909150600160a81b900460ff16158015610f745750600f546001600160a01b03858116911614155b8015610f895750600f54600160b01b900460ff165b8015610f955750600081115b15610fb557610fa3816110c7565b478015610fb357610fb347611010565b505b50610fc6565b6000600a819055600b555b610fd183838361127e565b505050565b60008184841115610ffa5760405162461bcd60e51b815260040161045d9190611633565b5060006110078486611abf565b95945050505050565b600d546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109ec573d6000803e3d6000fd5b60006008548211156110b15760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161045d565b60006110bb611289565b9050610b018382610b08565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110f5761110f611a54565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561116357600080fd5b505afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906119ec565b816001815181106111ae576111ae611a54565b6001600160a01b039283166020918202929092010152600e546111d49130911684610b4a565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061120d908590600090869030904290600401611ad6565b600060405180830381600087803b15801561122757600080fd5b505af115801561123b573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b600081836112715760405162461bcd60e51b815260040161045d9190611633565b5060006110078486611a85565b610fd18383836112ac565b60008060006112966113a3565b90925090506112a58282610b08565b9250505090565b6000806000806000806112be87611422565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112f0908761147f565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461131f90866114c1565b6001600160a01b03891660009081526002602052604090205561134181611520565b61134b848361156a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161139091815260200190565b60405180910390a3505050505050505050565b6008546000908190816113b86005600a611989565b6113c59062989680611998565b90506113ec6113d66005600a611989565b6113e39062989680611998565b60085490610b08565b821015611419576008546114026005600a611989565b61140f9062989680611998565b9350935050509091565b90939092509050565b600080600080600080600080600061143f8a600a54600b5461158e565b925092509250600061144f611289565b905060008060006114628e8787876115e3565b919e509c509a509598509396509194505050505091939550919395565b6000610b0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fd6565b6000806114ce8385611aa7565b905083811015610b015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045d565b600061152a611289565b905060006115388383610a82565b3060009081526002602052604090205490915061155590826114c1565b30600090815260026020526040902055505050565b600854611577908361147f565b60085560095461158790826114c1565b6009555050565b60008080806115a860646115a28989610a82565b90610b08565b905060006115bb60646115a28a89610a82565b905060006115d3826115cd8b8661147f565b9061147f565b9992985090965090945050505050565b60008080806115f28886610a82565b905060006116008887610a82565b9050600061160e8888610a82565b90506000611620826115cd868661147f565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561166057858101830151858201604001528201611644565b81811115611672576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146104ae57600080fd5b80356116a881611688565b919050565b600080604083850312156116c057600080fd5b82356116cb81611688565b946020939093013593505050565b6000806000606084860312156116ee57600080fd5b83356116f981611688565b9250602084013561170981611688565b929592945050506040919091013590565b80151581146104ae57600080fd5b60006020828403121561173a57600080fd5b8135610b018161171a565b60006020828403121561175757600080fd5b8135610b0181611688565b60006020828403121561177457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156117a457600080fd5b823567ffffffffffffffff808211156117bc57600080fd5b818501915085601f8301126117d057600080fd5b8135818111156117e2576117e261177b565b8060051b604051601f19603f830116810181811085821117156118075761180761177b565b60405291825284820192508381018501918883111561182557600080fd5b938501935b8285101561184a5761183b8561169d565b8452938501939285019261182a565b98975050505050505050565b6000806040838503121561186957600080fd5b823561187481611688565b9150602083013561188481611688565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118e05781600019048211156118c6576118c661188f565b808516156118d357918102915b93841c93908002906118aa565b509250929050565b6000826118f7575060016103a4565b81611904575060006103a4565b816001811461191a576002811461192457611940565b60019150506103a4565b60ff8411156119355761193561188f565b50506001821b6103a4565b5060208310610133831016604e8410600b8410161715611963575081810a6103a4565b61196d83836118a5565b80600019048211156119815761198161188f565b029392505050565b6000610b0160ff8416836118e8565b60008160001904831182151516156119b2576119b261188f565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119fe57600080fd5b8151610b0181611688565b600080600060608486031215611a1e57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611a4957600080fd5b8151610b018161171a565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611a7e57611a7e61188f565b5060010190565b600082611aa257634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611aba57611aba61188f565b500190565b600082821015611ad157611ad161188f565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b265784516001600160a01b031683529383019391830191600101611b01565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b1d1f50cef428dacf93c776c7904a0936fe7602975e5c22a19429a15ca86d19064736f6c63430008090033

Deployed Bytecode Sourcemap

4320:10186:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6102:83;;;;;;;;;;-1:-1:-1;6172:5:0;;;;;;;;;;;;-1:-1:-1;;;6172:5:0;;;;6102:83;;;;;;;:::i;:::-;;;;;;;;6954:161;;;;;;;;;;-1:-1:-1;6954:161:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6954:161:0;1211:187:1;6379:95:0;;;;;;;;;;;;;:::i;:::-;;;1549:25:1;;;1537:2;1522:18;6379:95:0;1403:177:1;7123:313:0;;;;;;;;;;-1:-1:-1;7123:313:0;;;;;:::i;:::-;;:::i;6288:83::-;;;;;;;;;;-1:-1:-1;6288:83:0;;5232:1;2188:36:1;;2176:2;2161:18;6288:83:0;2046:184:1;7444:103:0;;;;;;;;;;-1:-1:-1;7444:103:0;;;;;:::i;:::-;;:::i;:::-;;12621:193;;;;;;;;;;;;;:::i;6482:138::-;;;;;;;;;;-1:-1:-1;6482:138:0;;;;;:::i;:::-;;:::i;3401:148::-;;;;;;;;;;;;;:::i;10172:118::-;;;;;;;;;;;;;:::i;10033:131::-;;;;;;;;;;-1:-1:-1;10033:131:0;;;;;:::i;:::-;;:::i;3187:79::-;;;;;;;;;;-1:-1:-1;3225:7:0;3252:6;3187:79;;-1:-1:-1;;;;;3252:6:0;;;3187:51:1;;3175:2;3160:18;3187:79:0;3041:203:1;6193:87:0;;;;;;;;;;-1:-1:-1;6265:7:0;;;;;;;;;;;;-1:-1:-1;;;6265:7:0;;;;6193:87;;6628:167;;;;;;;;;;-1:-1:-1;6628:167:0;;;;;:::i;:::-;;:::i;12419:194::-;;;;;;;;;;;;;:::i;10402:773::-;;;;;;;;;;;;;:::i;11187:163::-;;;;;;;;;;-1:-1:-1;11187:163:0;;;;;:::i;:::-;;:::i;6803:143::-;;;;;;;;;;-1:-1:-1;6803:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6911:18:0;;;6884:7;6911:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6803:143;6954:161;7029:4;7046:39;985:10;7069:7;7078:6;7046:8;:39::i;:::-;-1:-1:-1;7103:4:0;6954:161;;;;;:::o;6379:95::-;6432:7;4828:13;5232:1;4828:2;:13;:::i;:::-;4817:24;;:8;:24;:::i;:::-;6452:14;;6379:95;:::o;7123:313::-;7221:4;7238:36;7248:6;7256:9;7267:6;7238:9;:36::i;:::-;7285:121;7294:6;985:10;7316:89;7354:6;7316:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7316:19:0;;;;;;:11;:19;;;;;;;;985:10;7316:33;;;;;;;;;;:37;:89::i;:::-;7285:8;:121::i;:::-;-1:-1:-1;7424:4:0;7123:313;;;;;:::o;7444:103::-;3314:6;;-1:-1:-1;;;;;3314:6:0;985:10;3314:22;3306:67;;;;-1:-1:-1;;;3306:67:0;;;;;;;:::i;:::-;;;;;;;;;7516:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7516:23:0::1;-1:-1:-1::0;;;;7516:23:0;;::::1;::::0;;;::::1;::::0;;7444:103::o;12621:193::-;12687:14;;-1:-1:-1;;;;;12687:14:0;985:10;-1:-1:-1;;;;;12671:30:0;;12663:39;;;;;;12742:21;12774:32;12742:21;12774:12;:32::i;:::-;12652:162;12621:193::o;6482:138::-;-1:-1:-1;;;;;6595:16:0;;6548:7;6595:16;;;:7;:16;;;;;;6575:37;;:19;:37::i;3401:148::-;3314:6;;-1:-1:-1;;;;;3314:6:0;985:10;3314:22;3306:67;;;;-1:-1:-1;;;3306:67:0;;;;;;;:::i;:::-;3508:1:::1;3492:6:::0;;3471:40:::1;::::0;-1:-1:-1;;;;;3492:6:0;;::::1;::::0;3471:40:::1;::::0;3508:1;;3471:40:::1;3539:1;3522:19:::0;;-1:-1:-1;;;;;;3522:19:0::1;::::0;;3401:148::o;10172:118::-;3314:6;;-1:-1:-1;;;;;3314:6:0;985:10;3314:22;3306:67;;;;-1:-1:-1;;;3306:67:0;;;;;;;:::i;:::-;4828:13:::1;5232:1;4828:2;:13;:::i;:::-;4817:24;::::0;:8:::1;:24;:::i;:::-;10225:12;:22:::0;4828:13:::1;5232:1;4828:2;:13;:::i;:::-;4817:24;::::0;:8:::1;:24;:::i;:::-;10258:14;:24:::0;10172:118::o;10033:131::-;3314:6;;-1:-1:-1;;;;;3314:6:0;985:10;3314:22;3306:67;;;;-1:-1:-1;;;3306:67:0;;;;;;;:::i;:::-;10115:12:::1;;10108:6;:19;10100:28;;;::::0;::::1;;10137:12;:19:::0;10033:131::o;6628:167::-;6706:4;6723:42;985:10;6747:9;6758:6;6723:9;:42::i;12419:194::-;12485:14;;-1:-1:-1;;;;;12485:14:0;985:10;-1:-1:-1;;;;;12469:30:0;;12461:39;;;;;;12511:23;12537:24;12555:4;12537:9;:24::i;:::-;12511:50;;12572:33;12589:15;12572:16;:33::i;10402:773::-;3314:6;;-1:-1:-1;;;;;3314:6:0;985:10;3314:22;3306:67;;;;-1:-1:-1;;;3306:67:0;;;;;;;:::i;:::-;10466:11:::1;::::0;-1:-1:-1;;;10466:11:0;::::1;;;10465:12;10457:47;;;::::0;-1:-1:-1;;;10457:47:0;;7151:2:1;10457:47:0::1;::::0;::::1;7133:21:1::0;7190:2;7170:18;;;7163:30;7229:25;7209:18;;;7202:53;7272:18;;10457:47:0::1;6949:347:1::0;10457:47:0::1;10626:15;:34:::0;;-1:-1:-1;;;;;;10626:34:0::1;10572:42;10626:34:::0;;::::1;::::0;;;10671:58:::1;10688:4;10572:42:::0;4828:13:::1;5232:1;4828:2;:13;:::i;:::-;4817:24;::::0;:8:::1;:24;:::i;10671:58::-;10774:16;-1:-1:-1::0;;;;;10774:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10756:56:0::1;;10821:4;10828:16;-1:-1:-1::0;;;;;10828:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10756:96;::::0;-1:-1:-1;;;;;;10756:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7787:15:1;;;10756:96:0::1;::::0;::::1;7769:34:1::0;7839:15;;7819:18;;;7812:43;7704:18;;10756:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10740:13;:112:::0;;-1:-1:-1;;;;;;10740:112:0::1;-1:-1:-1::0;;;;;10740:112:0;;::::1;;::::0;;10863:15:::1;::::0;::::1;:31;10902:21;10933:4;10939:24;10933:4:::0;10939:9:::1;:24::i;:::-;10964:1;10966::::0;10968:7:::1;3225::::0;3252:6;-1:-1:-1;;;;;3252:6:0;;3187:79;10968:7:::1;10863:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10863:129:0;;;-1:-1:-1;;;;;8225:15:1;;;10863:129:0::1;::::0;::::1;8207:34:1::0;8257:18;;;8250:34;;;;8300:18;;;8293:34;;;;8343:18;;;8336:34;8407:15;;;8386:19;;;8379:44;10976:15:0::1;8439:19:1::0;;;8432:35;8141:19;;10863:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11003:11:0::1;:18:::0;;-1:-1:-1;;;;11067:18:0;;-1:-1:-1;;;11067:18:0;;;;11134:15:::1;::::0;11096:71:::1;::::0;-1:-1:-1;;;11096:71:0;;-1:-1:-1;;;;;11134:15:0;;::::1;11096:71;::::0;::::1;8963:51:1::0;-1:-1:-1;;9030:18:1;;;9023:34;11103:13:0;;;-1:-1:-1;11096:29:0::1;::::0;8936:18:1;;11096:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10446:729;10402:773::o:0;11187:163::-;3314:6;;-1:-1:-1;;;;;3314:6:0;985:10;3314:22;3306:67;;;;-1:-1:-1;;;3306:67:0;;;;;;;:::i;:::-;11260:6:::1;11255:88;11276:5;:12;11272:1;:16;11255:88;;;11327:4;11310;:14;11315:5;11321:1;11315:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11310:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11310:14:0;:21;;-1:-1:-1;;11310:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11290:3;::::1;::::0;::::1;:::i;:::-;;;;11255:88;;2240:246:::0;2298:7;2322:6;2318:47;;-1:-1:-1;2352:1:0;2345:8;;2318:47;2375:9;2387:5;2391:1;2387;:5;:::i;:::-;2375:17;-1:-1:-1;2420:1:0;2411:5;2415:1;2375:17;2411:5;:::i;:::-;:10;2403:56;;;;-1:-1:-1;;;2403:56:0;;10014:2:1;2403:56:0;;;9996:21:1;10053:2;10033:18;;;10026:30;10092:34;10072:18;;;10065:62;-1:-1:-1;;;10143:18:1;;;10136:31;10184:19;;2403:56:0;9812:397:1;2403:56:0;2477:1;2240:246;-1:-1:-1;;;2240:246:0:o;2494:132::-;2552:7;2579:39;2583:1;2586;2579:39;;;;;;;;;;;;;;;;;:3;:39::i;7817:335::-;-1:-1:-1;;;;;7910:19:0;;7902:68;;;;-1:-1:-1;;;7902:68:0;;10416:2:1;7902:68:0;;;10398:21:1;10455:2;10435:18;;;10428:30;10494:34;10474:18;;;10467:62;-1:-1:-1;;;10545:18:1;;;10538:34;10589:19;;7902:68:0;10214:400:1;7902:68:0;-1:-1:-1;;;;;7989:21:0;;7981:68;;;;-1:-1:-1;;;7981:68:0;;10821:2:1;7981:68:0;;;10803:21:1;10860:2;10840:18;;;10833:30;10899:34;10879:18;;;10872:62;-1:-1:-1;;;10950:18:1;;;10943:32;10992:19;;7981:68:0;10619:398:1;7981:68:0;-1:-1:-1;;;;;8060:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8112:32;;1549:25:1;;;8112:32:0;;1522:18:1;8112:32:0;;;;;;;7817:335;;;:::o;8160:1374::-;-1:-1:-1;;;;;8248:18:0;;8240:68;;;;-1:-1:-1;;;8240:68:0;;11224:2:1;8240:68:0;;;11206:21:1;11263:2;11243:18;;;11236:30;11302:34;11282:18;;;11275:62;-1:-1:-1;;;11353:18:1;;;11346:35;11398:19;;8240:68:0;11022:401:1;8240:68:0;-1:-1:-1;;;;;8327:16:0;;8319:64;;;;-1:-1:-1;;;8319:64:0;;11630:2:1;8319:64:0;;;11612:21:1;11669:2;11649:18;;;11642:30;11708:34;11688:18;;;11681:62;-1:-1:-1;;;11759:18:1;;;11752:33;11802:19;;8319:64:0;11428:399:1;8319:64:0;8411:1;8402:6;:10;8394:64;;;;-1:-1:-1;;;8394:64:0;;12034:2:1;8394:64:0;;;12016:21:1;12073:2;12053:18;;;12046:30;12112:34;12092:18;;;12085:62;-1:-1:-1;;;12163:18:1;;;12156:39;12212:19;;8394:64:0;11832:405:1;8394:64:0;3225:7;3252:6;-1:-1:-1;;;;;8477:15:0;;;3252:6;;8477:15;;;;:32;;-1:-1:-1;3225:7:0;3252:6;-1:-1:-1;;;;;8496:13:0;;;3252:6;;8496:13;;8477:32;8473:1011;;;-1:-1:-1;;;;;8535:10:0;;;;;;:4;:10;;;;;;;;8534:11;:24;;;;-1:-1:-1;;;;;;8550:8:0;;;;;;:4;:8;;;;;;;;8549:9;8534:24;8526:33;;;;;;8586:1;8574:9;:13;8614:12;;8602:9;:24;8653:13;;-1:-1:-1;;;;;8645:21:0;;;8653:13;;8645:21;:55;;;;-1:-1:-1;8684:15:0;;-1:-1:-1;;;;;8670:30:0;;;8684:15;;8670:30;;8645:55;:83;;;;-1:-1:-1;;;;;;8706:22:0;;;;;;:18;:22;;;;;;;;8704:24;8645:83;:102;;;;-1:-1:-1;8732:15:0;;-1:-1:-1;;;8732:15:0;;;;8645:102;8641:332;;;8815:12;;8805:6;:22;;8797:60;;;;-1:-1:-1;;;8797:60:0;;12444:2:1;8797:60:0;;;12426:21:1;12483:2;12463:18;;;12456:30;12522:27;12502:18;;;12495:55;12567:18;;8797:60:0;12242:349:1;8797:60:0;8910:14;;8900:6;8884:13;8894:2;8884:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8876:79;;;;-1:-1:-1;;;8876:79:0;;12931:2:1;8876:79:0;;;12913:21:1;12970:2;12950:18;;;12943:30;13009:28;12989:18;;;12982:56;13055:18;;8876:79:0;12729:350:1;8876:79:0;8991:28;9022:24;9040:4;9022:9;:24::i;:::-;9066:6;;8991:55;;-1:-1:-1;;;;9066:6:0;;;;9065:7;:32;;;;-1:-1:-1;9084:13:0;;-1:-1:-1;;;;;9076:21:0;;;9084:13;;9076:21;;9065:32;:47;;;;-1:-1:-1;9101:11:0;;-1:-1:-1;;;9101:11:0;;;;9065:47;:73;;;;;9137:1;9116:20;:22;9065:73;9061:344;;;9159:38;9176:20;9159:16;:38::i;:::-;9245:21;9288:22;;9285:105;;9335:35;9348:21;9335:12;:35::i;:::-;9140:265;9061:344;8511:905;8473:1011;;;9445:1;9433:9;:13;;;9459:9;:13;8473:1011;9496:30;9511:4;9516:2;9519:6;9496:14;:30::i;:::-;8160:1374;;;:::o;2042:190::-;2128:7;2164:12;2156:6;;;;2148:29;;;;-1:-1:-1;;;2148:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2188:9:0;2200:5;2204:1;2200;:5;:::i;:::-;2188:17;2042:190;-1:-1:-1;;;;;2042:190:0:o;10298:96::-;10355:14;;:31;;-1:-1:-1;;;;;10355:14:0;;;;:31;;;;;10379:6;;10355:14;:31;:14;:31;10379:6;10355:14;:31;;;;;;;;;;;;;;;;;;;7555:254;7622:7;7661;;7650;:18;;7642:73;;;;-1:-1:-1;;;7642:73:0;;13416:2:1;7642:73:0;;;13398:21:1;13455:2;13435:18;;;13428:30;13494:34;13474:18;;;13467:62;-1:-1:-1;;;13545:18:1;;;13538:40;13595:19;;7642:73:0;13214:406:1;7642:73:0;7726:19;7749:10;:8;:10::i;:::-;7726:33;-1:-1:-1;7777:24:0;:7;7726:33;7777:11;:24::i;9542:483::-;5680:6;:13;;-1:-1:-1;;;;5680:13:0;-1:-1:-1;;;5680:13:0;;;9644:16:::1;::::0;;9658:1:::1;9644:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9644:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9644:16:0::1;9620:40;;9689:4;9671;9676:1;9671:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9671:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9715:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9715:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9671:7;;9715:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9705:4;9710:1;9705:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9705:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9780:15:::1;::::0;9748:62:::1;::::0;9765:4:::1;::::0;9780:15:::1;9798:11:::0;9748:8:::1;:62::i;:::-;9821:15;::::0;:196:::1;::::0;-1:-1:-1;;;9821:196:0;;-1:-1:-1;;;;;9821:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9902:11;;9821:15:::1;::::0;9944:4;;9971::::1;::::0;9991:15:::1;::::0;9821:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5716:6:0;:14;;-1:-1:-1;;;;5716:14:0;;;-1:-1:-1;;;;9542:483:0:o;2634:189::-;2720:7;2755:12;2748:5;2740:28;;;;-1:-1:-1;;;2740:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2779:9:0;2791:5;2795:1;2791;:5;:::i;11358:146::-;11452:44;11470:6;11478:9;11489:6;11452:17;:44::i;14076:163::-;14117:7;14138:15;14155;14174:19;:17;:19::i;:::-;14137:56;;-1:-1:-1;14137:56:0;-1:-1:-1;14211:20:0;14137:56;;14211:11;:20::i;:::-;14204:27;;;;14076:163;:::o;11512:487::-;11611:15;11628:23;11653:12;11667:23;11692:12;11706:13;11723:19;11734:7;11723:10;:19::i;:::-;-1:-1:-1;;;;;11771:15:0;;;;;;:7;:15;;;;;;11610:132;;-1:-1:-1;11610:132:0;;-1:-1:-1;11610:132:0;;-1:-1:-1;11610:132:0;-1:-1:-1;11610:132:0;-1:-1:-1;11610:132:0;-1:-1:-1;11771:28:0;;11610:132;11771:19;:28::i;:::-;-1:-1:-1;;;;;11753:15:0;;;;;;;:7;:15;;;;;;:46;;;;11831:18;;;;;;;:39;;11854:15;11831:22;:39::i;:::-;-1:-1:-1;;;;;11810:18:0;;;;;;:7;:18;;;;;:60;11881:16;11891:5;11881:9;:16::i;:::-;11908:23;11920:4;11926;11908:11;:23::i;:::-;11964:9;-1:-1:-1;;;;;11947:44:0;11956:6;-1:-1:-1;;;;;11947:44:0;;11975:15;11947:44;;;;1549:25:1;;1537:2;1522:18;;1403:177;11947:44:0;;;;;;;;11599:400;;;;;;11512:487;;;:::o;14247:256::-;14344:7;;14297;;;;;4828:13;5232:1;4828:2;:13;:::i;:::-;4817:24;;:8;:24;:::i;:::-;14362:25;-1:-1:-1;14412:20:0;4828:13;5232:1;4828:2;:13;:::i;:::-;4817:24;;:8;:24;:::i;:::-;14412:7;;;:11;:20::i;:::-;14402:7;:30;14398:61;;;14442:7;;4828:13;5232:1;4828:2;:13;:::i;:::-;4817:24;;:8;:24;:::i;:::-;14434:25;;;;;;14247:256;;:::o;14398:61::-;14478:7;;14487;;-1:-1:-1;14247:256:0;-1:-1:-1;14247:256:0:o;12824:471::-;12883:7;12892;12901;12910;12919;12928;12949:23;12974:12;12988:13;13005:42;13017:7;13026:9;;13037;;13005:11;:42::i;:::-;12948:99;;;;;;13058:19;13081:10;:8;:10::i;:::-;13058:33;;13103:15;13120:23;13145:12;13161:46;13173:7;13182:4;13188:5;13195:11;13161;:46::i;:::-;13102:105;;-1:-1:-1;13102:105:0;-1:-1:-1;13102:105:0;-1:-1:-1;13258:15:0;;-1:-1:-1;13275:4:0;;-1:-1:-1;13281:5:0;;-1:-1:-1;;;;;12824:471:0;;;;;;;:::o;1898:136::-;1956:7;1983:43;1987:1;1990;1983:43;;;;;;;;;;;;;;;;;:3;:43::i;1711:179::-;1769:7;;1801:5;1805:1;1801;:5;:::i;:::-;1789:17;;1830:1;1825;:6;;1817:46;;;;-1:-1:-1;;;1817:46:0;;14812:2:1;1817:46:0;;;14794:21:1;14851:2;14831:18;;;14824:30;14890:29;14870:18;;;14863:57;14937:18;;1817:46:0;14610:351:1;12007:212:0;12060:19;12083:10;:8;:10::i;:::-;12060:33;-1:-1:-1;12104:13:0;12120:22;:5;12060:33;12120:9;:22::i;:::-;12194:4;12178:22;;;;:7;:22;;;;;;12104:38;;-1:-1:-1;12178:33:0;;12104:38;12178:26;:33::i;:::-;12169:4;12153:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12007:212:0:o;12227:147::-;12305:7;;:17;;12317:4;12305:11;:17::i;:::-;12295:7;:27;12346:10;;:20;;12361:4;12346:14;:20::i;:::-;12333:10;:33;-1:-1:-1;;12227:147:0:o;13303:351::-;13396:7;;;;13449:28;13473:3;13449:19;:7;13461:6;13449:11;:19::i;:::-;:23;;:28::i;:::-;13434:43;-1:-1:-1;13488:13:0;13504:29;13529:3;13504:20;:7;13516;13504:11;:20::i;:29::-;13488:45;-1:-1:-1;13544:23:0;13570:28;13488:45;13570:17;:7;13582:4;13570:11;:17::i;:::-;:21;;:28::i;:::-;13544:54;13634:4;;-1:-1:-1;13640:5:0;;-1:-1:-1;13303:351:0;;-1:-1:-1;;;;;13303:351:0:o;13662:409::-;13772:7;;;;13828:24;:7;13840:11;13828;:24::i;:::-;13810:42;-1:-1:-1;13863:12:0;13878:21;:4;13887:11;13878:8;:21::i;:::-;13863:36;-1:-1:-1;13910:13:0;13926:22;:5;13936:11;13926:9;:22::i;:::-;13910:38;-1:-1:-1;13959:23:0;13985:28;13910:38;13985:17;:7;13997:4;13985:11;:17::i;:28::-;14032:7;;;;-1:-1:-1;14058:4:0;;-1:-1:-1;13662:409:0;;-1:-1:-1;;;;;;;13662:409:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2235:118::-;2321:5;2314:13;2307:21;2300:5;2297:32;2287:60;;2343:1;2340;2333:12;2358:241;2414:6;2467:2;2455:9;2446:7;2442:23;2438:32;2435:52;;;2483:1;2480;2473:12;2435:52;2522:9;2509:23;2541:28;2563:5;2541:28;:::i;2604:247::-;2663:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:52;;;2732:1;2729;2722:12;2684:52;2771:9;2758:23;2790:31;2815:5;2790:31;:::i;2856:180::-;2915:6;2968:2;2956:9;2947:7;2943:23;2939:32;2936:52;;;2984:1;2981;2974:12;2936:52;-1:-1:-1;3007:23:1;;2856:180;-1:-1:-1;2856:180:1:o;3249:127::-;3310:10;3305:3;3301:20;3298:1;3291:31;3341:4;3338:1;3331:15;3365:4;3362:1;3355:15;3381:1121;3465:6;3496:2;3539;3527:9;3518:7;3514:23;3510:32;3507:52;;;3555:1;3552;3545:12;3507:52;3595:9;3582:23;3624:18;3665:2;3657:6;3654:14;3651:34;;;3681:1;3678;3671:12;3651:34;3719:6;3708:9;3704:22;3694:32;;3764:7;3757:4;3753:2;3749:13;3745:27;3735:55;;3786:1;3783;3776:12;3735:55;3822:2;3809:16;3844:2;3840;3837:10;3834:36;;;3850:18;;:::i;:::-;3896:2;3893:1;3889:10;3928:2;3922:9;3991:2;3987:7;3982:2;3978;3974:11;3970:25;3962:6;3958:38;4046:6;4034:10;4031:22;4026:2;4014:10;4011:18;4008:46;4005:72;;;4057:18;;:::i;:::-;4093:2;4086:22;4143:18;;;4177:15;;;;-1:-1:-1;4219:11:1;;;4215:20;;;4247:19;;;4244:39;;;4279:1;4276;4269:12;4244:39;4303:11;;;;4323:148;4339:6;4334:3;4331:15;4323:148;;;4405:23;4424:3;4405:23;:::i;:::-;4393:36;;4356:12;;;;4449;;;;4323:148;;;4490:6;3381:1121;-1:-1:-1;;;;;;;;3381:1121:1:o;4507:388::-;4575:6;4583;4636:2;4624:9;4615:7;4611:23;4607:32;4604:52;;;4652:1;4649;4642:12;4604:52;4691:9;4678:23;4710:31;4735:5;4710:31;:::i;:::-;4760:5;-1:-1:-1;4817:2:1;4802:18;;4789:32;4830:33;4789:32;4830:33;:::i;:::-;4882:7;4872:17;;;4507:388;;;;;:::o;4900:127::-;4961:10;4956:3;4952:20;4949:1;4942:31;4992:4;4989:1;4982:15;5016:4;5013:1;5006:15;5032:422;5121:1;5164:5;5121:1;5178:270;5199:7;5189:8;5186:21;5178:270;;;5258:4;5254:1;5250:6;5246:17;5240:4;5237:27;5234:53;;;5267:18;;:::i;:::-;5317:7;5307:8;5303:22;5300:55;;;5337:16;;;;5300:55;5416:22;;;;5376:15;;;;5178:270;;;5182:3;5032:422;;;;;:::o;5459:806::-;5508:5;5538:8;5528:80;;-1:-1:-1;5579:1:1;5593:5;;5528:80;5627:4;5617:76;;-1:-1:-1;5664:1:1;5678:5;;5617:76;5709:4;5727:1;5722:59;;;;5795:1;5790:130;;;;5702:218;;5722:59;5752:1;5743:10;;5766:5;;;5790:130;5827:3;5817:8;5814:17;5811:43;;;5834:18;;:::i;:::-;-1:-1:-1;;5890:1:1;5876:16;;5905:5;;5702:218;;6004:2;5994:8;5991:16;5985:3;5979:4;5976:13;5972:36;5966:2;5956:8;5953:16;5948:2;5942:4;5939:12;5935:35;5932:77;5929:159;;;-1:-1:-1;6041:19:1;;;6073:5;;5929:159;6120:34;6145:8;6139:4;6120:34;:::i;:::-;6190:6;6186:1;6182:6;6178:19;6169:7;6166:32;6163:58;;;6201:18;;:::i;:::-;6239:20;;5459:806;-1:-1:-1;;;5459:806:1:o;6270:140::-;6328:5;6357:47;6398:4;6388:8;6384:19;6378:4;6357:47;:::i;6415:168::-;6455:7;6521:1;6517;6513:6;6509:14;6506:1;6503:21;6498:1;6491:9;6484:17;6480:45;6477:71;;;6528:18;;:::i;:::-;-1:-1:-1;6568:9:1;;6415:168::o;6588:356::-;6790:2;6772:21;;;6809:18;;;6802:30;6868:34;6863:2;6848:18;;6841:62;6935:2;6920:18;;6588:356::o;7301:251::-;7371:6;7424:2;7412:9;7403:7;7399:23;7395:32;7392:52;;;7440:1;7437;7430:12;7392:52;7472:9;7466:16;7491:31;7516:5;7491:31;:::i;8478:306::-;8566:6;8574;8582;8635:2;8623:9;8614:7;8610:23;8606:32;8603:52;;;8651:1;8648;8641:12;8603:52;8680:9;8674:16;8664:26;;8730:2;8719:9;8715:18;8709:25;8699:35;;8774:2;8763:9;8759:18;8753:25;8743:35;;8478:306;;;;;:::o;9068:245::-;9135:6;9188:2;9176:9;9167:7;9163:23;9159:32;9156:52;;;9204:1;9201;9194:12;9156:52;9236:9;9230:16;9255:28;9277:5;9255:28;:::i;9318:127::-;9379:10;9374:3;9370:20;9367:1;9360:31;9410:4;9407:1;9400:15;9434:4;9431:1;9424:15;9450:135;9489:3;-1:-1:-1;;9510:17:1;;9507:43;;;9530:18;;:::i;:::-;-1:-1:-1;9577:1:1;9566:13;;9450:135::o;9590:217::-;9630:1;9656;9646:132;;9700:10;9695:3;9691:20;9688:1;9681:31;9735:4;9732:1;9725:15;9763:4;9760:1;9753:15;9646:132;-1:-1:-1;9792:9:1;;9590:217::o;12596:128::-;12636:3;12667:1;12663:6;12660:1;12657:13;12654:39;;;12673:18;;:::i;:::-;-1:-1:-1;12709:9:1;;12596:128::o;13084:125::-;13124:4;13152:1;13149;13146:8;13143:34;;;13157:18;;:::i;:::-;-1:-1:-1;13194:9:1;;13084:125::o;13625:980::-;13887:4;13935:3;13924:9;13920:19;13966:6;13955:9;13948:25;13992:2;14030:6;14025:2;14014:9;14010:18;14003:34;14073:3;14068:2;14057:9;14053:18;14046:31;14097:6;14132;14126:13;14163:6;14155;14148:22;14201:3;14190:9;14186:19;14179:26;;14240:2;14232:6;14228:15;14214:29;;14261:1;14271:195;14285:6;14282:1;14279:13;14271:195;;;14350:13;;-1:-1:-1;;;;;14346:39:1;14334:52;;14441:15;;;;14406:12;;;;14382:1;14300:9;14271:195;;;-1:-1:-1;;;;;;;14522:32:1;;;;14517:2;14502:18;;14495:60;-1:-1:-1;;;14586:3:1;14571:19;14564:35;14483:3;13625:980;-1:-1:-1;;;13625:980:1:o

Swarm Source

ipfs://b1d1f50cef428dacf93c776c7904a0936fe7602975e5c22a19429a15ca86d190

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.