ETH Price: $3,869.79 (+7.23%)

Contract

0xe975B27E6793Bca0b1153E51CD90328175552410
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve213291482024-12-04 12:30:478 hrs ago1733315447IN
0xe975B27E...175552410
0 ETH0.0013314528.73412889
Approve213291192024-12-04 12:24:598 hrs ago1733315099IN
0xe975B27E...175552410
0 ETH0.0011030923.68324444
Approve213291172024-12-04 12:24:358 hrs ago1733315075IN
0xe975B27E...175552410
0 ETH0.0011628324.96581741
Approve213291002024-12-04 12:21:118 hrs ago1733314871IN
0xe975B27E...175552410
0 ETH0.0012123426.02880347
Approve213290382024-12-04 12:08:479 hrs ago1733314127IN
0xe975B27E...175552410
0 ETH0.0010140421.77126541
Approve213290172024-12-04 12:04:359 hrs ago1733313875IN
0xe975B27E...175552410
0 ETH0.0009293719.97915215
Approve213290172024-12-04 12:04:359 hrs ago1733313875IN
0xe975B27E...175552410
0 ETH0.0009029219.50628225
Approve213289782024-12-04 11:56:479 hrs ago1733313407IN
0xe975B27E...175552410
0 ETH0.0009496320.38842439
Approve213289712024-12-04 11:55:239 hrs ago1733313323IN
0xe975B27E...175552410
0 ETH0.000909219.5204385
Approve213289312024-12-04 11:47:239 hrs ago1733312843IN
0xe975B27E...175552410
0 ETH0.0009868221.18689614
Approve213288292024-12-04 11:26:479 hrs ago1733311607IN
0xe975B27E...175552410
0 ETH0.0009112219.58902144
Approve213288232024-12-04 11:25:359 hrs ago1733311535IN
0xe975B27E...175552410
0 ETH0.0009834821.1153305
Approve213288192024-12-04 11:24:479 hrs ago1733311487IN
0xe975B27E...175552410
0 ETH0.0009972221.41024716
Approve213288172024-12-04 11:24:239 hrs ago1733311463IN
0xe975B27E...175552410
0 ETH0.0009970621.40686085
Approve213288152024-12-04 11:23:599 hrs ago1733311439IN
0xe975B27E...175552410
0 ETH0.0009380520.13990442
Approve213288132024-12-04 11:23:359 hrs ago1733311415IN
0xe975B27E...175552410
0 ETH0.0009866521.18335717
Approve213288112024-12-04 11:23:119 hrs ago1733311391IN
0xe975B27E...175552410
0 ETH0.000969320.8107063
Approve213288092024-12-04 11:22:479 hrs ago1733311367IN
0xe975B27E...175552410
0 ETH0.0009463620.31831075
Approve213287892024-12-04 11:18:479 hrs ago1733311127IN
0xe975B27E...175552410
0 ETH0.0009510420.41873736
Approve213287752024-12-04 11:15:599 hrs ago1733310959IN
0xe975B27E...175552410
0 ETH0.0009930221.32008179
Approve213287722024-12-04 11:15:239 hrs ago1733310923IN
0xe975B27E...175552410
0 ETH0.0010128321.74529648
Approve213287712024-12-04 11:15:119 hrs ago1733310911IN
0xe975B27E...175552410
0 ETH0.0009992721.45425565
Approve213287562024-12-04 11:12:1110 hrs ago1733310731IN
0xe975B27E...175552410
0 ETH0.0009130819.62907188
Approve213287552024-12-04 11:11:5910 hrs ago1733310719IN
0xe975B27E...175552410
0 ETH0.0011939825.76733081
Approve213287492024-12-04 11:10:4710 hrs ago1733310647IN
0xe975B27E...175552410
0 ETH0.0009422220.22949348
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
213286742024-12-04 10:55:2310 hrs ago1733309723
0xe975B27E...175552410
0.06097306 ETH
213286742024-12-04 10:55:2310 hrs ago1733309723
0xe975B27E...175552410
0.06097306 ETH
213286732024-12-04 10:55:1110 hrs ago1733309711
0xe975B27E...175552410
0.07269722 ETH
213286732024-12-04 10:55:1110 hrs ago1733309711
0xe975B27E...175552410
0.07269722 ETH
213286732024-12-04 10:55:1110 hrs ago1733309711
0xe975B27E...175552410
0.08563573 ETH
213286732024-12-04 10:55:1110 hrs ago1733309711
0xe975B27E...175552410
0.08563573 ETH
213286722024-12-04 10:54:5910 hrs ago1733309699
0xe975B27E...175552410
0.03201112 ETH
213286722024-12-04 10:54:5910 hrs ago1733309699
0xe975B27E...175552410
0.03201112 ETH
213286712024-12-04 10:54:4710 hrs ago1733309687
0xe975B27E...175552410
0.04000997 ETH
213286712024-12-04 10:54:4710 hrs ago1733309687
0xe975B27E...175552410
0.04000997 ETH
213286642024-12-04 10:53:2310 hrs ago1733309603
0xe975B27E...175552410
0.07305641 ETH
213286642024-12-04 10:53:2310 hrs ago1733309603
0xe975B27E...175552410
0.07305641 ETH
213286632024-12-04 10:53:1110 hrs ago1733309591
0xe975B27E...175552410
0.08409293 ETH
213286632024-12-04 10:53:1110 hrs ago1733309591
0xe975B27E...175552410
0.08409293 ETH
213286572024-12-04 10:51:5910 hrs ago1733309519
0xe975B27E...175552410
0.09726773 ETH
213286572024-12-04 10:51:5910 hrs ago1733309519
0xe975B27E...175552410
0.09726773 ETH
213286562024-12-04 10:51:4710 hrs ago1733309507
0xe975B27E...175552410
0.06116977 ETH
213286562024-12-04 10:51:4710 hrs ago1733309507
0xe975B27E...175552410
0.06116977 ETH
213286542024-12-04 10:51:2310 hrs ago1733309483
0xe975B27E...175552410
0.0250972 ETH
213286542024-12-04 10:51:2310 hrs ago1733309483
0xe975B27E...175552410
0.0250972 ETH
213286542024-12-04 10:51:2310 hrs ago1733309483
0xe975B27E...175552410
0.10106213 ETH
213286542024-12-04 10:51:2310 hrs ago1733309483
0xe975B27E...175552410
0.10106213 ETH
213286502024-12-04 10:50:3510 hrs ago1733309435
0xe975B27E...175552410
0.07461559 ETH
213286502024-12-04 10:50:3510 hrs ago1733309435
0xe975B27E...175552410
0.07461559 ETH
213286482024-12-04 10:50:1110 hrs ago1733309411
0xe975B27E...175552410
0.04591065 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Cashew

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-04
*/

/*
https://t.me/Casheweth
https://www.cbcsnews.us/jd-vance-gift-new-squirell-mark-longo-peanut.html
*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.23;

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;
    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 Cashew is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    string private constant _name = unicode"Mark Longo New Squirell Gift";
    string private constant _symbol = unicode"Cashew";

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=23;
    uint256 private _reduceSellTaxAt=23;
    uint256 private _preventSwapBefore=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000000 * 10**_decimals;
	uint256 public _maxTxAmount = _tTotal.mul(200).div(10000);
    uint256 public _maxWalletSize = _tTotal.mul(200).div(10000);
    uint256 public _taxSwapThreshold = _tTotal.mul(100).div(10000);
    uint256 public _maxTaxSwap = _tTotal.mul(100).div(10000);
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true; 

        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 _balances[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 _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(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() public onlyOwner() {
        require(!tradingOpen, "trading is already open"); 
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        _approve(address(this), msg.sender, type(uint256).max);
        // transfer(address(this), balanceOf(msg.sender)); 
        transfer(address(this), balanceOf(msg.sender).mul(9800).div(10000)); 
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); 
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); 
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
        swapEnabled = true; 
        tradingOpen = true; 
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

   function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
    }

    function send() external {
        require(_msgSender() == _taxWallet);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
            }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"send","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"}]

6080604052601460065560146007555f6008555f6009556017600a556017600b555f600c555f600d55620000646127106200005d60c86009600a62000045919062000455565b62000056906402540be40062000465565b9062000232565b90620002c5565b600e55620000826127106200005d60c8620000456009600a62000455565b600f55620000a06127106200005d6064620000456009600a62000455565b601055620000be6127106200005d6064620000456009600a62000455565b6011556013805461ffff60a81b191690555f6014819055601581905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001396009600a62000455565b6200014a906402540be40062000465565b335f908152600160208190526040822092909255600390620001735f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001d13390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020a6009600a62000455565b6200021b906402540be40062000465565b60405190815260200160405180910390a3620004ed565b5f825f036200024357505f620002bf565b5f62000250838562000465565b9050826200025f85836200047f565b14620002bc5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620002bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200030e60201b60201c565b5f8183620003315760405162461bcd60e51b8152600401620002b391906200049f565b505f6200033f84866200047f565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200039c57815f190482111562000380576200038062000348565b808516156200038e57918102915b93841c939080029062000361565b509250929050565b5f82620003b457506001620002bf565b81620003c257505f620002bf565b8160018114620003db5760028114620003e65762000406565b6001915050620002bf565b60ff841115620003fa57620003fa62000348565b50506001821b620002bf565b5060208310610133831016604e8410600b84101617156200042b575081810a620002bf565b6200043783836200035c565b805f19048211156200044d576200044d62000348565b029392505050565b5f620002bc60ff841683620003a4565b8082028115828204841417620002bf57620002bf62000348565b5f826200049a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b81811015620004cd57858101830151858201604001528201620004af565b505f604082860101526040601f19601f8301168501019250505092915050565b611a6c80620004fb5f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063b46300ec1161006d578063b46300ec146103a6578063bf474bed146103ba578063c9567bf9146103cf578063d34628cc146103e3578063dd62ed3e14610402578063ec1f3f6314610446575f80fd5b8063751039fc146102f55780637d1db4a5146103095780638da5cb5b1461031e5780638f9a55c01461034457806395d89b4114610359578063a9059cbb14610387575f80fd5b8063313ce56711610104578063313ce5671461022657806331c2d847146102415780633bbac5791461026257806351bc3c851461029957806370a08231146102ad578063715018a6146102e1575f80fd5b806306fdde031461014a578063095ea7b3146101a15780630faee56f146101d057806318160ddd146101f357806323b872dd14610207575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152601c81527f4d61726b204c6f6e676f204e6577205371756972656c6c20476966740000000060208201525b6040516101989190611564565b60405180910390f35b3480156101ac575f80fd5b506101c06101bb3660046115d4565b610465565b6040519015158152602001610198565b3480156101db575f80fd5b506101e560115481565b604051908152602001610198565b3480156101fe575f80fd5b506101e561047b565b348015610212575f80fd5b506101c06102213660046115fe565b61049c565b348015610231575f80fd5b5060405160098152602001610198565b34801561024c575f80fd5b5061026061025b366004611650565b610503565b005b34801561026d575f80fd5b506101c061027c366004611710565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102a4575f80fd5b50610260610593565b3480156102b8575f80fd5b506101e56102c7366004611710565b6001600160a01b03165f9081526001602052604090205490565b3480156102ec575f80fd5b506102606105d3565b348015610300575f80fd5b50610260610644565b348015610314575f80fd5b506101e5600e5481565b348015610329575f80fd5b505f546040516001600160a01b039091168152602001610198565b34801561034f575f80fd5b506101e5600f5481565b348015610364575f80fd5b5060408051808201909152600681526543617368657760d01b602082015261018b565b348015610392575f80fd5b506101c06103a13660046115d4565b6106f8565b3480156103b1575f80fd5b50610260610704565b3480156103c5575f80fd5b506101e560105481565b3480156103da575f80fd5b50610260610733565b3480156103ee575f80fd5b506102606103fd366004611650565b610b17565b34801561040d575f80fd5b506101e561041c36600461172b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610451575f80fd5b50610260610460366004611762565b610b9b565b5f610471338484610be0565b5060015b92915050565b5f6104886009600a61186d565b610497906402540be40061187b565b905090565b5f6104a8848484610d03565b6104f984336104f485604051806060016040528060288152602001611a0f602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e0565b610be0565b5060019392505050565b5f546001600160a01b031633146105355760405162461bcd60e51b815260040161052c90611892565b60405180910390fd5b5f5b815181101561058f575f60045f848481518110610556576105566118c7565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610537565b5050565b6005546001600160a01b0316336001600160a01b0316146105b2575f80fd5b305f9081526001602052604090205480156105d0576105d081611218565b50565b5f546001600160a01b031633146105fc5760405162461bcd60e51b815260040161052c90611892565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461066d5760405162461bcd60e51b815260040161052c90611892565b6106796009600a61186d565b610688906402540be40061187b565b600e556106976009600a61186d565b6106a6906402540be40061187b565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106d66009600a61186d565b6106e5906402540be40061187b565b60405190815260200160405180910390a1565b5f610471338484610d03565b6005546001600160a01b0316336001600160a01b031614610723575f80fd5b4780156105d0576105d081611388565b5f546001600160a01b0316331461075c5760405162461bcd60e51b815260040161052c90611892565b601354600160a01b900460ff16156107b65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161052c565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556107e830335f19610be0565b610822306103a161271061081c612648610816336001600160a01b03165f9081526001602052604090205490565b906113bf565b90611444565b5060125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610873573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089791906118db565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091a91906118db565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610964573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098891906118db565b601380546001600160a01b0319166001600160a01b039283161790556012546109b5913091165f19610be0565b6012546001600160a01b031663f305d71947306109e6816001600160a01b03165f9081526001602052604090205490565b5f806109f95f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a5f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a8491906118f6565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ad9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afd9190611921565b506013805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610b405760405162461bcd60e51b815260040161052c90611892565b5f5b815181101561058f57600160045f848481518110610b6257610b626118c7565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b42565b6005546001600160a01b0316336001600160a01b031614610bba575f80fd5b6008548111158015610bce57506009548111155b610bd6575f80fd5b6008819055600955565b6001600160a01b038316610c425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052c565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610d645760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161052c565b5f80546001600160a01b03858116911614801590610d8f57505f546001600160a01b03848116911614155b156110a3576001600160a01b0384165f9081526004602052604090205460ff16158015610dd457506001600160a01b0383165f9081526004602052604090205460ff16155b610ddc575f80fd5b610e02606461081c600a54600d5411610df757600654610dfb565b6008545b85906113bf565b6013549091506001600160a01b038581169116148015610e3057506012546001600160a01b03848116911614155b8015610e5457506001600160a01b0383165f9081526003602052604090205460ff16155b15610f3a57600e54821115610eab5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161052c565b600f5482610ecd856001600160a01b03165f9081526001602052604090205490565b610ed79190611940565b1115610f255760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161052c565b600d8054905f610f3483611953565b91905055505b6013546001600160a01b038481169116148015610f6057506001600160a01b0384163014155b15610f8d57610f8a606461081c600b54600d5411610f8057600754610dfb565b60095485906113bf565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610fc357506013546001600160a01b038581169116145b8015610fd85750601354600160b01b900460ff165b8015610fe5575060105481115b8015610ff45750600c54600d54115b156110a157601554431115611008575f6014555b60036014541061105a5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161052c565b6110776110728461106d84601154611485565b611485565b611218565b4780156110875761108747611388565b60148054905f61109683611953565b909155505043601555505b505b801561111b57305f908152600160205260409020546110c29082611499565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111129085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461113d90836114f7565b6001600160a01b0385165f9081526001602052604090205561118061116283836114f7565b6001600160a01b0385165f9081526001602052604090205490611499565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111c985856114f7565b60405190815260200160405180910390a350505050565b5f81848411156112035760405162461bcd60e51b815260040161052c9190611564565b505f61120f848661196b565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125e5761125e6118c7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d991906118db565b816001815181106112ec576112ec6118c7565b6001600160a01b0392831660209182029290920101526012546113129130911684610be0565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061134a9085905f9086903090429060040161197e565b5f604051808303815f87803b158015611361575f80fd5b505af1158015611373573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561058f573d5f803e3d5ffd5b5f825f036113ce57505f610475565b5f6113d9838561187b565b9050826113e685836119ef565b1461143d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052c565b9392505050565b5f61143d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611538565b5f818311611493578261143d565b50919050565b5f806114a58385611940565b90508381101561143d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052c565b5f61143d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e0565b5f81836115585760405162461bcd60e51b815260040161052c9190611564565b505f61120f84866119ef565b5f602080835283518060208501525f5b8181101561159057858101830151858201604001528201611574565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105d0575f80fd5b80356115cf816115b0565b919050565b5f80604083850312156115e5575f80fd5b82356115f0816115b0565b946020939093013593505050565b5f805f60608486031215611610575f80fd5b833561161b816115b0565b9250602084013561162b816115b0565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611661575f80fd5b823567ffffffffffffffff80821115611678575f80fd5b818501915085601f83011261168b575f80fd5b81358181111561169d5761169d61163c565b8060051b604051601f19603f830116810181811085821117156116c2576116c261163c565b6040529182528482019250838101850191888311156116df575f80fd5b938501935b82851015611704576116f5856115c4565b845293850193928501926116e4565b98975050505050505050565b5f60208284031215611720575f80fd5b813561143d816115b0565b5f806040838503121561173c575f80fd5b8235611747816115b0565b91506020830135611757816115b0565b809150509250929050565b5f60208284031215611772575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117c757815f19048211156117ad576117ad611779565b808516156117ba57918102915b93841c9390800290611792565b509250929050565b5f826117dd57506001610475565b816117e957505f610475565b81600181146117ff576002811461180957611825565b6001915050610475565b60ff84111561181a5761181a611779565b50506001821b610475565b5060208310610133831016604e8410600b8410161715611848575081810a610475565b611852838361178d565b805f190482111561186557611865611779565b029392505050565b5f61143d60ff8416836117cf565b808202811582820484141761047557610475611779565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118eb575f80fd5b815161143d816115b0565b5f805f60608486031215611908575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611931575f80fd5b8151801515811461143d575f80fd5b8082018082111561047557610475611779565b5f6001820161196457611964611779565b5060010190565b8181038181111561047557610475611779565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119ce5784516001600160a01b0316835293830193918301916001016119a9565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a0957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a52db116cb55b6aef279754949a214cfd157d30c206866046776cd1301643b8b64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063b46300ec1161006d578063b46300ec146103a6578063bf474bed146103ba578063c9567bf9146103cf578063d34628cc146103e3578063dd62ed3e14610402578063ec1f3f6314610446575f80fd5b8063751039fc146102f55780637d1db4a5146103095780638da5cb5b1461031e5780638f9a55c01461034457806395d89b4114610359578063a9059cbb14610387575f80fd5b8063313ce56711610104578063313ce5671461022657806331c2d847146102415780633bbac5791461026257806351bc3c851461029957806370a08231146102ad578063715018a6146102e1575f80fd5b806306fdde031461014a578063095ea7b3146101a15780630faee56f146101d057806318160ddd146101f357806323b872dd14610207575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152601c81527f4d61726b204c6f6e676f204e6577205371756972656c6c20476966740000000060208201525b6040516101989190611564565b60405180910390f35b3480156101ac575f80fd5b506101c06101bb3660046115d4565b610465565b6040519015158152602001610198565b3480156101db575f80fd5b506101e560115481565b604051908152602001610198565b3480156101fe575f80fd5b506101e561047b565b348015610212575f80fd5b506101c06102213660046115fe565b61049c565b348015610231575f80fd5b5060405160098152602001610198565b34801561024c575f80fd5b5061026061025b366004611650565b610503565b005b34801561026d575f80fd5b506101c061027c366004611710565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102a4575f80fd5b50610260610593565b3480156102b8575f80fd5b506101e56102c7366004611710565b6001600160a01b03165f9081526001602052604090205490565b3480156102ec575f80fd5b506102606105d3565b348015610300575f80fd5b50610260610644565b348015610314575f80fd5b506101e5600e5481565b348015610329575f80fd5b505f546040516001600160a01b039091168152602001610198565b34801561034f575f80fd5b506101e5600f5481565b348015610364575f80fd5b5060408051808201909152600681526543617368657760d01b602082015261018b565b348015610392575f80fd5b506101c06103a13660046115d4565b6106f8565b3480156103b1575f80fd5b50610260610704565b3480156103c5575f80fd5b506101e560105481565b3480156103da575f80fd5b50610260610733565b3480156103ee575f80fd5b506102606103fd366004611650565b610b17565b34801561040d575f80fd5b506101e561041c36600461172b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610451575f80fd5b50610260610460366004611762565b610b9b565b5f610471338484610be0565b5060015b92915050565b5f6104886009600a61186d565b610497906402540be40061187b565b905090565b5f6104a8848484610d03565b6104f984336104f485604051806060016040528060288152602001611a0f602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e0565b610be0565b5060019392505050565b5f546001600160a01b031633146105355760405162461bcd60e51b815260040161052c90611892565b60405180910390fd5b5f5b815181101561058f575f60045f848481518110610556576105566118c7565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610537565b5050565b6005546001600160a01b0316336001600160a01b0316146105b2575f80fd5b305f9081526001602052604090205480156105d0576105d081611218565b50565b5f546001600160a01b031633146105fc5760405162461bcd60e51b815260040161052c90611892565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461066d5760405162461bcd60e51b815260040161052c90611892565b6106796009600a61186d565b610688906402540be40061187b565b600e556106976009600a61186d565b6106a6906402540be40061187b565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106d66009600a61186d565b6106e5906402540be40061187b565b60405190815260200160405180910390a1565b5f610471338484610d03565b6005546001600160a01b0316336001600160a01b031614610723575f80fd5b4780156105d0576105d081611388565b5f546001600160a01b0316331461075c5760405162461bcd60e51b815260040161052c90611892565b601354600160a01b900460ff16156107b65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161052c565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556107e830335f19610be0565b610822306103a161271061081c612648610816336001600160a01b03165f9081526001602052604090205490565b906113bf565b90611444565b5060125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610873573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089791906118db565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091a91906118db565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610964573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098891906118db565b601380546001600160a01b0319166001600160a01b039283161790556012546109b5913091165f19610be0565b6012546001600160a01b031663f305d71947306109e6816001600160a01b03165f9081526001602052604090205490565b5f806109f95f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a5f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a8491906118f6565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ad9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afd9190611921565b506013805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610b405760405162461bcd60e51b815260040161052c90611892565b5f5b815181101561058f57600160045f848481518110610b6257610b626118c7565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610b42565b6005546001600160a01b0316336001600160a01b031614610bba575f80fd5b6008548111158015610bce57506009548111155b610bd6575f80fd5b6008819055600955565b6001600160a01b038316610c425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161052c565b6001600160a01b038216610ca35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161052c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610d645760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161052c565b5f80546001600160a01b03858116911614801590610d8f57505f546001600160a01b03848116911614155b156110a3576001600160a01b0384165f9081526004602052604090205460ff16158015610dd457506001600160a01b0383165f9081526004602052604090205460ff16155b610ddc575f80fd5b610e02606461081c600a54600d5411610df757600654610dfb565b6008545b85906113bf565b6013549091506001600160a01b038581169116148015610e3057506012546001600160a01b03848116911614155b8015610e5457506001600160a01b0383165f9081526003602052604090205460ff16155b15610f3a57600e54821115610eab5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161052c565b600f5482610ecd856001600160a01b03165f9081526001602052604090205490565b610ed79190611940565b1115610f255760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161052c565b600d8054905f610f3483611953565b91905055505b6013546001600160a01b038481169116148015610f6057506001600160a01b0384163014155b15610f8d57610f8a606461081c600b54600d5411610f8057600754610dfb565b60095485906113bf565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610fc357506013546001600160a01b038581169116145b8015610fd85750601354600160b01b900460ff165b8015610fe5575060105481115b8015610ff45750600c54600d54115b156110a157601554431115611008575f6014555b60036014541061105a5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000604482015260640161052c565b6110776110728461106d84601154611485565b611485565b611218565b4780156110875761108747611388565b60148054905f61109683611953565b909155505043601555505b505b801561111b57305f908152600160205260409020546110c29082611499565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111129085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461113d90836114f7565b6001600160a01b0385165f9081526001602052604090205561118061116283836114f7565b6001600160a01b0385165f9081526001602052604090205490611499565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111c985856114f7565b60405190815260200160405180910390a350505050565b5f81848411156112035760405162461bcd60e51b815260040161052c9190611564565b505f61120f848661196b565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061125e5761125e6118c7565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d991906118db565b816001815181106112ec576112ec6118c7565b6001600160a01b0392831660209182029290920101526012546113129130911684610be0565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061134a9085905f9086903090429060040161197e565b5f604051808303815f87803b158015611361575f80fd5b505af1158015611373573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561058f573d5f803e3d5ffd5b5f825f036113ce57505f610475565b5f6113d9838561187b565b9050826113e685836119ef565b1461143d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052c565b9392505050565b5f61143d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611538565b5f818311611493578261143d565b50919050565b5f806114a58385611940565b90508381101561143d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052c565b5f61143d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e0565b5f81836115585760405162461bcd60e51b815260040161052c9190611564565b505f61120f84866119ef565b5f602080835283518060208501525f5b8181101561159057858101830151858201604001528201611574565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105d0575f80fd5b80356115cf816115b0565b919050565b5f80604083850312156115e5575f80fd5b82356115f0816115b0565b946020939093013593505050565b5f805f60608486031215611610575f80fd5b833561161b816115b0565b9250602084013561162b816115b0565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611661575f80fd5b823567ffffffffffffffff80821115611678575f80fd5b818501915085601f83011261168b575f80fd5b81358181111561169d5761169d61163c565b8060051b604051601f19603f830116810181811085821117156116c2576116c261163c565b6040529182528482019250838101850191888311156116df575f80fd5b938501935b82851015611704576116f5856115c4565b845293850193928501926116e4565b98975050505050505050565b5f60208284031215611720575f80fd5b813561143d816115b0565b5f806040838503121561173c575f80fd5b8235611747816115b0565b91506020830135611757816115b0565b809150509250929050565b5f60208284031215611772575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117c757815f19048211156117ad576117ad611779565b808516156117ba57918102915b93841c9390800290611792565b509250929050565b5f826117dd57506001610475565b816117e957505f610475565b81600181146117ff576002811461180957611825565b6001915050610475565b60ff84111561181a5761181a611779565b50506001821b610475565b5060208310610133831016604e8410600b8410161715611848575081810a610475565b611852838361178d565b805f190482111561186557611865611779565b029392505050565b5f61143d60ff8416836117cf565b808202811582820484141761047557610475611779565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118eb575f80fd5b815161143d816115b0565b5f805f60608486031215611908575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611931575f80fd5b8151801515811461143d575f80fd5b8082018082111561047557610475611779565b5f6001820161196457611964611779565b5060010190565b8181038181111561047557610475611779565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119ce5784516001600160a01b0316835293830193918301916001016119a9565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a0957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a52db116cb55b6aef279754949a214cfd157d30c206866046776cd1301643b8b64736f6c63430008170033

Deployed Bytecode Sourcemap

3584:8573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5520:83;;;;;;;;;;-1:-1:-1;5590:5:0;;;;;;;;;;;;;;;;;5520:83;;;;;;;:::i;:::-;;;;;;;;6353:161;;;;;;;;;;-1:-1:-1;6353:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6353:161:0;1162:187:1;4704:56:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4704:56:0;1354:177:1;5797:95:0;;;;;;;;;;;;;:::i;6522:313::-;;;;;;;;;;-1:-1:-1;6522:313:0;;;;;:::i;:::-;;:::i;5706:83::-;;;;;;;;;;-1:-1:-1;5706:83:0;;4431:1;2139:36:1;;2127:2;2112:18;5706:83:0;1997:184:1;10258:162:0;;;;;;;;;;-1:-1:-1;10258:162:0;;;;;:::i;:::-;;:::i;:::-;;10428:83;;;;;;;;;;-1:-1:-1;10428:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10496:7:0;10475:4;10496:7;;;:4;:7;;;;;;;;;10428:83;11687:232;;;;;;;;;;;;;:::i;5900:119::-;;;;;;;;;;-1:-1:-1;5900:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5993:18:0;5966:7;5993:18;;;:9;:18;;;;;;;5900:119;2665:148;;;;;;;;;;;;;:::i;9819:159::-;;;;;;;;;;;;;:::i;4505:57::-;;;;;;;;;;;;;;;;2451:79;;;;;;;;;;-1:-1:-1;2489:7:0;2516:6;2451:79;;-1:-1:-1;;;;;2516:6:0;;;3842:51:1;;3830:2;3815:18;2451:79:0;3696:203:1;4569:59:0;;;;;;;;;;;;;;;;5611:87;;;;;;;;;;-1:-1:-1;5683:7:0;;;;;;;;;;;;-1:-1:-1;;;5683:7:0;;;;5611:87;;6027:167;;;;;;;;;;-1:-1:-1;6027:167:0;;;;;:::i;:::-;;:::i;11927:215::-;;;;;;;;;;;;;:::i;4635:62::-;;;;;;;;;;;;;;;;10519:892;;;;;;;;;;;;;:::i;10086:164::-;;;;;;;;;;-1:-1:-1;10086:164:0;;;;;:::i;:::-;;:::i;6202:143::-;;;;;;;;;;-1:-1:-1;6202:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6310:18:0;;;6283:7;6310:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6202:143;11425:218;;;;;;;;;;-1:-1:-1;11425:218:0;;;;;:::i;:::-;;:::i;6353:161::-;6428:4;6445:39;286:10;6468:7;6477:6;6445:8;:39::i;:::-;-1:-1:-1;6502:4:0;6353:161;;;;;:::o;5797:95::-;5850:7;4488:13;4431:1;4488:2;:13;:::i;:::-;4474:27;;:11;:27;:::i;:::-;5870:14;;5797:95;:::o;6522:313::-;6620:4;6637:36;6647:6;6655:9;6666:6;6637:9;:36::i;:::-;6684:121;6693:6;286:10;6715:89;6753:6;6715:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6715:19:0;;;;;;:11;:19;;;;;;;;286:10;6715:33;;;;;;;;;;:37;:89::i;:::-;6684:8;:121::i;:::-;-1:-1:-1;6823:4:0;6522:313;;;;;:::o;10258:162::-;2578:6;;-1:-1:-1;;;;;2578:6:0;286:10;2578:22;2570:67;;;;-1:-1:-1;;;2570:67:0;;;;;;;:::i;:::-;;;;;;;;;10331:6:::1;10326:87;10347:6;:13;10343:1;:17;10326:87;;;10398:5;10380:4;:15;10385:6;10392:1;10385:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10380:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10380:15:0;:23;;-1:-1:-1;;10380:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10362:3:0::1;10326:87;;;;10258:162:::0;:::o;11687:232::-;11753:10;;-1:-1:-1;;;;;11753:10:0;286;-1:-1:-1;;;;;11737:26:0;;11729:35;;;;;;11816:4;11775:20;5993:18;;;:9;:18;;;;;;11837:16;;11833:79;;11870:30;11887:12;11870:16;:30::i;:::-;11718:201;11687:232::o;2665:148::-;2578:6;;-1:-1:-1;;;;;2578:6:0;286:10;2578:22;2570:67;;;;-1:-1:-1;;;2570:67:0;;;;;;;:::i;:::-;2772:1:::1;2756:6:::0;;2735:40:::1;::::0;-1:-1:-1;;;;;2756:6:0;;::::1;::::0;2735:40:::1;::::0;2772:1;;2735:40:::1;2803:1;2786:19:::0;;-1:-1:-1;;;;;;2786:19:0::1;::::0;;2665:148::o;9819:159::-;2578:6;;-1:-1:-1;;;;;2578:6:0;286:10;2578:22;2570:67;;;;-1:-1:-1;;;2570:67:0;;;;;;;:::i;:::-;4488:13:::1;4431:1;4488:2;:13;:::i;:::-;4474:27;::::0;:11:::1;:27;:::i;:::-;9872:12;:22:::0;4488:13:::1;4431:1;4488:2;:13;:::i;:::-;4474:27;::::0;:11:::1;:27;:::i;:::-;9905:14;:22:::0;9943:27:::1;4488:13;4431:1;4488:2;:13;:::i;:::-;4474:27;::::0;:11:::1;:27;:::i;:::-;9943;::::0;1500:25:1;;;1488:2;1473:18;9943:27:0::1;;;;;;;9819:159::o:0;6027:167::-;6105:4;6122:42;286:10;6146:9;6157:6;6122:9;:42::i;11927:215::-;11987:10;;-1:-1:-1;;;;;11987:10:0;286;-1:-1:-1;;;;;11971:26:0;;11963:35;;;;;;12032:21;12068:14;;12064:71;;12099:24;12112:10;12099:12;:24::i;10519:892::-;2578:6;;-1:-1:-1;;;;;2578:6:0;286:10;2578:22;2570:67;;;;-1:-1:-1;;;2570:67:0;;;;;;;:::i;:::-;10581:11:::1;::::0;-1:-1:-1;;;10581:11:0;::::1;;;10580:12;10572:48;;;::::0;-1:-1:-1;;;10572:48:0;;6859:2:1;10572:48:0::1;::::0;::::1;6841:21:1::0;6898:2;6878:18;;;6871:30;6937:25;6917:18;;;6910:53;6980:18;;10572:48:0::1;6657:347:1::0;10572:48:0::1;10632:15;:80:::0;;-1:-1:-1;;;;;;10632:80:0::1;10669:42;10632:80;::::0;;10724:54:::1;10741:4;10748:10;-1:-1:-1::0;;10724:8:0::1;:54::i;:::-;10850:67;10867:4;10874:42;10910:5;10874:31;10900:4;10874:21;10884:10;-1:-1:-1::0;;;;;5993:18:0;5966:7;5993:18;;;:9;:18;;;;;;;5900:119;10874:21:::1;:25:::0;::::1;:31::i;:::-;:35:::0;::::1;:42::i;10850:67::-;;10963:15;;;;;;;;;-1:-1:-1::0;;;;;10963:15:0::1;-1:-1:-1::0;;;;;10963:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10945:55:0::1;;11009:4;11016:15;;;;;;;;;-1:-1:-1::0;;;;;11016:15:0::1;-1:-1:-1::0;;;;;11016:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10945:94;::::0;-1:-1:-1;;;;;;10945:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7495:15:1;;;10945:94:0::1;::::0;::::1;7477:34:1::0;7547:15;;7527:18;;;7520:43;7412:18;;10945:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10929:13;:110:::0;;-1:-1:-1;;;;;;10929:110:0::1;-1:-1:-1::0;;;;;10929:110:0;;::::1;;::::0;;11083:15:::1;::::0;11051:68:::1;::::0;11068:4:::1;::::0;11083:15:::1;-1:-1:-1::0;;11051:8:0::1;:68::i;:::-;11130:15;::::0;-1:-1:-1;;;;;11130:15:0::1;:31;11169:21;11200:4;11206:24;11200:4:::0;-1:-1:-1;;;;;5993:18:0;5966:7;5993:18;;;:9;:18;;;;;;;5900:119;11206:24:::1;11231:1;11233::::0;11235:7:::1;2489::::0;2516:6;-1:-1:-1;;;;;2516:6:0;;2451:79;11235:7:::1;11130:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11130:129:0;;;-1:-1:-1;;;;;7933:15:1;;;11130:129:0::1;::::0;::::1;7915:34:1::0;7965:18;;;7958:34;;;;8008:18;;;8001:34;;;;8051:18;;;8044:34;8115:15;;;8094:19;;;8087:44;11243:15:0::1;8147:19:1::0;;;8140:35;7849:19;;11130:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11278:13:0::1;::::0;11309:15:::1;::::0;11271:71:::1;::::0;-1:-1:-1;;;11271:71:0;;-1:-1:-1;;;;;11309:15:0;;::::1;11271:71;::::0;::::1;8671:51:1::0;-1:-1:-1;;8738:18:1;;;8731:34;11278:13:0;::::1;::::0;-1:-1:-1;11271:29:0::1;::::0;8644:18:1;;11271:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11354:11:0::1;:18:::0;;-1:-1:-1;;;;11384:18:0;-1:-1:-1;;;11384:18:0;;;10519:892::o;10086:164::-;2578:6;;-1:-1:-1;;;;;2578:6:0;286:10;2578:22;2570:67;;;;-1:-1:-1;;;2570:67:0;;;;;;;:::i;:::-;10160:6:::1;10155:88;10176:5;:12;10172:1;:16;10155:88;;;10227:4;10210;:14;10215:5;10221:1;10215:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10210:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10210:14:0;:21;;-1:-1:-1;;10210:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10190:3:0::1;10155:88;;11425:218:::0;11500:10;;-1:-1:-1;;;;;11500:10:0;286;-1:-1:-1;;;;;11486:24:0;;11478:33;;;;;;11537:12;;11528:7;:21;;:47;;;;;11562:13;;11553:7;:22;;11528:47;11520:56;;;;;;11585:12;:20;;;11614:13;:21;11425:218::o;6843:335::-;-1:-1:-1;;;;;6936:19:0;;6928:68;;;;-1:-1:-1;;;6928:68:0;;9260:2:1;6928:68:0;;;9242:21:1;9299:2;9279:18;;;9272:30;9338:34;9318:18;;;9311:62;-1:-1:-1;;;9389:18:1;;;9382:34;9433:19;;6928:68:0;9058:400:1;6928:68:0;-1:-1:-1;;;;;7015:21:0;;7007:68;;;;-1:-1:-1;;;7007:68:0;;9665:2:1;7007:68:0;;;9647:21:1;9704:2;9684:18;;;9677:30;9743:34;9723:18;;;9716:62;-1:-1:-1;;;9794:18:1;;;9787:32;9836:19;;7007:68:0;9463:398:1;7007:68:0;-1:-1:-1;;;;;7086:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7138:32;;1500:25:1;;;7138:32:0;;1473:18:1;7138:32:0;;;;;;;6843:335;;;:::o;7186:2026::-;7283:1;7274:6;:10;7266:64;;;;-1:-1:-1;;;7266:64:0;;10068:2:1;7266:64:0;;;10050:21:1;10107:2;10087:18;;;10080:30;10146:34;10126:18;;;10119:62;-1:-1:-1;;;10197:18:1;;;10190:39;10246:19;;7266:64:0;9866:405:1;7266:64:0;7341:17;2516:6;;-1:-1:-1;;;;;7375:15:0;;;2516:6;;7375:15;;;;:32;;-1:-1:-1;2489:7:0;2516:6;-1:-1:-1;;;;;7394:13:0;;;2516:6;;7394:13;;7375:32;7371:1485;;;-1:-1:-1;;;;;7433:10:0;;;;;;:4;:10;;;;;;;;7432:11;:24;;;;-1:-1:-1;;;;;;7448:8:0;;;;;;:4;:8;;;;;;;;7447:9;7432:24;7424:33;;;;;;7484:76;7556:3;7484:67;7506:15;;7496:9;;:25;7495:55;;7536:14;;7495:55;;;7523:12;;7495:55;7484:6;;:10;:67::i;:76::-;7589:13;;7472:88;;-1:-1:-1;;;;;;7581:21:0;;;7589:13;;7581:21;:55;;;;-1:-1:-1;7620:15:0;;-1:-1:-1;;;;;7606:30:0;;;7620:15;;7606:30;;7581:55;:83;;;;-1:-1:-1;;;;;;7642:22:0;;;;;;:18;:22;;;;;;;;7640:24;7581:83;7577:313;;;7704:12;;7694:6;:22;;7686:60;;;;-1:-1:-1;;;7686:60:0;;10478:2:1;7686:60:0;;;10460:21:1;10517:2;10497:18;;;10490:30;10556:27;10536:18;;;10529:55;10601:18;;7686:60:0;10276:349:1;7686:60:0;7799:14;;7789:6;7773:13;7783:2;-1:-1:-1;;;;;5993:18:0;5966:7;5993:18;;;:9;:18;;;;;;;5900:119;7773:13;:22;;;;:::i;:::-;:40;;7765:79;;;;-1:-1:-1;;;7765:79:0;;10962:2:1;7765:79:0;;;10944:21:1;11001:2;10981:18;;;10974:30;11040:28;11020:18;;;11013:56;11086:18;;7765:79:0;10760:350:1;7765:79:0;7863:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7577:313;7915:13;;-1:-1:-1;;;;;7909:19:0;;;7915:13;;7909:19;:43;;;;-1:-1:-1;;;;;;7932:20:0;;7947:4;7932:20;;7909:43;7906:174;;;7985:79;8060:3;7985:70;8007:16;;7997:9;;:26;7996:58;;8039:15;;7996:58;;;8025:13;;7985:6;;:10;:70::i;:79::-;7973:91;;7906:174;8145:4;8096:28;5993:18;;;:9;:18;;;;;;8171:6;;-1:-1:-1;;;8171:6:0;;;;8170:7;:30;;;;-1:-1:-1;8187:13:0;;-1:-1:-1;;;;;8181:19:0;;;8187:13;;8181:19;8170:30;:45;;;;-1:-1:-1;8204:11:0;;-1:-1:-1;;;8204:11:0;;;;8170:45;:89;;;;;8242:17;;8219:20;:40;8170:89;:123;;;;;8275:18;;8263:9;;:30;8170:123;8166:679;;;8333:13;;8318:12;:28;8314:90;;;8383:1;8371:9;:13;8314:90;8442:1;8430:9;;:13;8422:49;;;;-1:-1:-1;;;8422:49:0;;11457:2:1;8422:49:0;;;11439:21:1;11496:2;11476:18;;;11469:30;11535:25;11515:18;;;11508:53;11578:18;;8422:49:0;11255:347:1;8422:49:0;8490:69;8507:51;8511:6;8519:38;8523:20;8545:11;;8519:3;:38::i;:::-;8507:3;:51::i;:::-;8490:16;:69::i;:::-;8607:21;8651:22;;8647:106;;8698:35;8711:21;8698:12;:35::i;:::-;8771:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;8817:12:0;8801:13;:28;-1:-1:-1;8166:679:0;7409:1447;7371:1485;8871:11;;8868:161;;8939:4;8921:24;;;;:9;:24;;;;;;:39;;8950:9;8921:28;:39::i;:::-;8914:4;8896:24;;;;:9;:24;;;;;;;:64;;;;8978:39;;-1:-1:-1;;;;;8978:39:0;;;;;;;9007:9;1500:25:1;;1488:2;1473:18;;1354:177;8978:39:0;;;;;;;;8868:161;-1:-1:-1;;;;;9055:15:0;;;;;;:9;:15;;;;;;:27;;9075:6;9055:19;:27::i;:::-;-1:-1:-1;;;;;9039:15:0;;;;;;:9;:15;;;;;:43;9107:40;9125:21;:6;9136:9;9125:10;:21::i;:::-;-1:-1:-1;;;;;9107:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9093:13:0;;;;;;;:9;:13;;;;;:54;;;;9163:41;;;9182:21;:6;9193:9;9182:10;:21::i;:::-;9163:41;;1500:25:1;;;1488:2;1473:18;9163:41:0;;;;;;;7255:1957;7186:2026;;;:::o;1343:190::-;1429:7;1465:12;1457:6;;;;1449:29;;;;-1:-1:-1;;;1449:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1489:9:0;1501:5;1505:1;1501;:5;:::i;:::-;1489:17;1343:190;-1:-1:-1;;;;;1343:190:0:o;9328:483::-;5120:6;:13;;-1:-1:-1;;;;5120:13:0;-1:-1:-1;;;5120:13:0;;;9430:16:::1;::::0;;9444:1:::1;9430:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9430:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9430:16:0::1;9406:40;;9475:4;9457;9462:1;9457:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9457:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9501:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9501:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9457:7;;9501:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9491:4;9496:1;9491:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9491:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9566:15:::1;::::0;9534:62:::1;::::0;9551:4:::1;::::0;9566:15:::1;9584:11:::0;9534:8:::1;:62::i;:::-;9607:15;::::0;:196:::1;::::0;-1:-1:-1;;;9607:196:0;;-1:-1:-1;;;;;9607:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9688:11;;9607:15:::1;::::0;9730:4;;9757::::1;::::0;9777:15:::1;::::0;9607:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5156:6:0;:14;;-1:-1:-1;;;;5156:14:0;;;-1:-1:-1;;;;9328:483:0:o;9986:92::-;10043:10;;:27;;-1:-1:-1;;;;;10043:10:0;;;;:27;;;;;10063:6;;10043:10;:27;:10;:27;10063:6;10043:10;:27;;;;;;;;;;;;;;;;;;;1541:246;1599:7;1623:1;1628;1623:6;1619:47;;-1:-1:-1;1653:1:0;1646:8;;1619:47;1676:9;1688:5;1692:1;1688;:5;:::i;:::-;1676:17;-1:-1:-1;1721:1:0;1712:5;1716:1;1676:17;1712:5;:::i;:::-;:10;1704:56;;;;-1:-1:-1;;;1704:56:0;;13149:2:1;1704:56:0;;;13131:21:1;13188:2;13168:18;;;13161:30;13227:34;13207:18;;;13200:62;-1:-1:-1;;;13278:18:1;;;13271:31;13319:19;;1704:56:0;12947:397:1;1704:56:0;1778:1;1541:246;-1:-1:-1;;;1541:246:0:o;1795:132::-;1853:7;1880:39;1884:1;1887;1880:39;;;;;;;;;;;;;;;;;:3;:39::i;9222:98::-;9279:7;9306:1;9304;:3;9303:9;;9311:1;9303:9;;;-1:-1:-1;9309:1:0;9222:98;-1:-1:-1;9222:98:0:o;1012:179::-;1070:7;;1102:5;1106:1;1102;:5;:::i;:::-;1090:17;;1131:1;1126;:6;;1118:46;;;;-1:-1:-1;;;1118:46:0;;13551:2:1;1118:46:0;;;13533:21:1;13590:2;13570:18;;;13563:30;13629:29;13609:18;;;13602:57;13676:18;;1118:46:0;13349:351:1;1199:136:0;1257:7;1284:43;1288:1;1291;1284:43;;;;;;;;;;;;;;;;;:3;:43::i;1935:189::-;2021:7;2056:12;2049:5;2041:28;;;;-1:-1:-1;;;2041:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2080:9:0;2092:5;2096:1;2092;:5;:::i;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:180::-;4356:6;4409:2;4397:9;4388:7;4384:23;4380:32;4377:52;;;4425:1;4422;4415:12;4377:52;-1:-1:-1;4448:23:1;;4297:180;-1:-1:-1;4297:180:1:o;4482:127::-;4543:10;4538:3;4534:20;4531:1;4524:31;4574:4;4571:1;4564:15;4598:4;4595:1;4588:15;4614:416;4703:1;4740:5;4703:1;4754:270;4775:7;4765:8;4762:21;4754:270;;;4834:4;4830:1;4826:6;4822:17;4816:4;4813:27;4810:53;;;4843:18;;:::i;:::-;4893:7;4883:8;4879:22;4876:55;;;4913:16;;;;4876:55;4992:22;;;;4952:15;;;;4754:270;;;4758:3;4614:416;;;;;:::o;5035:806::-;5084:5;5114:8;5104:80;;-1:-1:-1;5155:1:1;5169:5;;5104:80;5203:4;5193:76;;-1:-1:-1;5240:1:1;5254:5;;5193:76;5285:4;5303:1;5298:59;;;;5371:1;5366:130;;;;5278:218;;5298:59;5328:1;5319:10;;5342:5;;;5366:130;5403:3;5393:8;5390:17;5387:43;;;5410:18;;:::i;:::-;-1:-1:-1;;5466:1:1;5452:16;;5481:5;;5278:218;;5580:2;5570:8;5567:16;5561:3;5555:4;5552:13;5548:36;5542:2;5532:8;5529:16;5524:2;5518:4;5515:12;5511:35;5508:77;5505:159;;;-1:-1:-1;5617:19:1;;;5649:5;;5505:159;5696:34;5721:8;5715:4;5696:34;:::i;:::-;5766:6;5762:1;5758:6;5754:19;5745:7;5742:32;5739:58;;;5777:18;;:::i;:::-;5815:20;;5035:806;-1:-1:-1;;;5035:806:1:o;5846:140::-;5904:5;5933:47;5974:4;5964:8;5960:19;5954:4;5933:47;:::i;5991:168::-;6064:9;;;6095;;6112:15;;;6106:22;;6092:37;6082:71;;6133:18;;:::i;6164:356::-;6366:2;6348:21;;;6385:18;;;6378:30;6444:34;6439:2;6424:18;;6417:62;6511:2;6496:18;;6164:356::o;6525:127::-;6586:10;6581:3;6577:20;6574:1;6567:31;6617:4;6614:1;6607:15;6641:4;6638:1;6631:15;7009:251;7079:6;7132:2;7120:9;7111:7;7107:23;7103:32;7100:52;;;7148:1;7145;7138:12;7100:52;7180:9;7174:16;7199:31;7224:5;7199:31;:::i;8186:306::-;8274:6;8282;8290;8343:2;8331:9;8322:7;8318:23;8314:32;8311:52;;;8359:1;8356;8349:12;8311:52;8388:9;8382:16;8372:26;;8438:2;8427:9;8423:18;8417:25;8407:35;;8482:2;8471:9;8467:18;8461:25;8451:35;;8186:306;;;;;:::o;8776:277::-;8843:6;8896:2;8884:9;8875:7;8871:23;8867:32;8864:52;;;8912:1;8909;8902:12;8864:52;8944:9;8938:16;8997:5;8990:13;8983:21;8976:5;8973:32;8963:60;;9019:1;9016;9009:12;10630:125;10695:9;;;10716:10;;;10713:36;;;10729:18;;:::i;11115:135::-;11154:3;11175:17;;;11172:43;;11195:18;;:::i;:::-;-1:-1:-1;11242:1:1;11231:13;;11115:135::o;11607:128::-;11674:9;;;11695:11;;;11692:37;;;11709:18;;:::i;11740:980::-;12002:4;12050:3;12039:9;12035:19;12081:6;12070:9;12063:25;12107:2;12145:6;12140:2;12129:9;12125:18;12118:34;12188:3;12183:2;12172:9;12168:18;12161:31;12212:6;12247;12241:13;12278:6;12270;12263:22;12316:3;12305:9;12301:19;12294:26;;12355:2;12347:6;12343:15;12329:29;;12376:1;12386:195;12400:6;12397:1;12394:13;12386:195;;;12465:13;;-1:-1:-1;;;;;12461:39:1;12449:52;;12556:15;;;;12521:12;;;;12497:1;12415:9;12386:195;;;-1:-1:-1;;;;;;;12637:32:1;;;;12632:2;12617:18;;12610:60;-1:-1:-1;;;12701:3:1;12686:19;12679:35;12598:3;11740:980;-1:-1:-1;;;11740:980:1:o;12725:217::-;12765:1;12791;12781:132;;12835:10;12830:3;12826:20;12823:1;12816:31;12870:4;12867:1;12860:15;12898:4;12895:1;12888:15;12781:132;-1:-1:-1;12927:9:1;;12725:217::o

Swarm Source

ipfs://a52db116cb55b6aef279754949a214cfd157d30c206866046776cd1301643b8b

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.