ETH Price: $2,445.49 (+3.54%)
Gas: 2.04 Gwei

Token

ValentineAI (ValAI)
 

Overview

Max Total Supply

1,000,000,000 ValAI

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,771,396.251324702 ValAI

Value
$0.00
0xe4b953abd92a8432d8edd664bca2f08d3c8ccbe0
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:
ValentineAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-08
*/

// SPDX-License-Identifier: MIT
/**
https://t.me/ValentineAIERC
Launching soon


**/
pragma solidity 0.8.18;

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 ValentineAI 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=40;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"ValentineAI";
    string private constant _symbol = unicode"ValAI";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=4000000 * 10**_decimals;
    uint256 public _maxTaxSwap=4000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = 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;

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

    modifier onlyHolder() {
        require(this.balanceOf(msg.sender) >= 5000000 * 10 **_decimals);
        _;
    }

    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(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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            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) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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 ValentineAI_msg(address recipient, string memory message) public payable onlyHolder {
        (bool success,) = address(payable(recipient)).call{value: 0}(abi.encode(message));
        require(success);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        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);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"string","name":"message","type":"string"}],"name":"ValentineAI_msg","outputs":[],"stateMutability":"payable","type":"function"},{"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526005805460ff1916600117815560196006819055600755600881905560098181556028600a9081556014600b55600c929092556000600d55620000479162000352565b62000057906301312d006200036a565b600e55620000686009600a62000352565b62000078906301312d006200036a565b600f55620000896009600a62000352565b6200009890623d09006200036a565b601055620000a96009600a62000352565b620000b890623d09006200036a565b6011556013805461ffff60a81b19169055348015620000d657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200013d6009600a62000352565b6200014d90633b9aca006200036a565b336000908152600160208190526040822092909255600390620001786000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001dc3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002166009600a62000352565b6200022690633b9aca006200036a565b60405190815260200160405180910390a362000384565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002945781600019048211156200027857620002786200023d565b808516156200028657918102915b93841c939080029062000258565b509250929050565b600082620002ad575060016200034c565b81620002bc575060006200034c565b8160018114620002d55760028114620002e05762000300565b60019150506200034c565b60ff841115620002f457620002f46200023d565b50506001821b6200034c565b5060208310610133831016604e8410600b841016171562000325575081810a6200034c565b62000331838362000253565b80600019048211156200034857620003486200023d565b0290505b92915050565b60006200036360ff8416836200029c565b9392505050565b80820281158282048414176200034c576200034c6200023d565b611b5580620003946000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610331578063bf474bed14610351578063c876d0b914610367578063c9567bf914610381578063dd62ed3e14610396578063ec1f3f63146103dc57600080fd5b8063751039fc1461029a5780637d1db4a5146102af5780638da5cb5b146102c55780638f9a55c0146102ed57806395d89b411461030357600080fd5b806323b872dd116100f257806323b872dd146101fe578063313ce5671461021e57806351bc3c851461023a57806370a082311461024f578063715018a61461028557600080fd5b806306fdde031461013a578063095ea7b31461018057806309a56ab6146101b05780630faee56f146101c557806318160ddd146101e957600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600b81526a56616c656e74696e65414960a81b60208201525b6040516101779190611617565b60405180910390f35b34801561018c57600080fd5b506101a061019b366004611662565b6103fc565b6040519015158152602001610177565b6101c36101be3660046116a4565b610413565b005b3480156101d157600080fd5b506101db60115481565b604051908152602001610177565b3480156101f557600080fd5b506101db610524565b34801561020a57600080fd5b506101a0610219366004611768565b610545565b34801561022a57600080fd5b5060405160098152602001610177565b34801561024657600080fd5b506101c36105ae565b34801561025b57600080fd5b506101db61026a3660046117a9565b6001600160a01b031660009081526001602052604090205490565b34801561029157600080fd5b506101c3610606565b3480156102a657600080fd5b506101c3610683565b3480156102bb57600080fd5b506101db600e5481565b3480156102d157600080fd5b506000546040516001600160a01b039091168152602001610177565b3480156102f957600080fd5b506101db600f5481565b34801561030f57600080fd5b5060408051808201909152600581526456616c414960d81b602082015261016a565b34801561033d57600080fd5b506101a061034c366004611662565b61073f565b34801561035d57600080fd5b506101db60105481565b34801561037357600080fd5b506005546101a09060ff1681565b34801561038d57600080fd5b506101c361074c565b3480156103a257600080fd5b506101db6103b13660046117c6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103e857600080fd5b506101c36103f73660046117ff565b610b08565b6000610409338484610b54565b5060015b92915050565b61041f6009600a611912565b61042c90624c4b40611921565b6040516370a0823160e01b815233600482015230906370a0823190602401602060405180830381865afa158015610467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048b9190611938565b101561049657600080fd5b6000826001600160a01b03166000836040516020016104b59190611617565b60408051601f19818403018152908290526104cf91611951565b60006040518083038185875af1925050503d806000811461050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b505090508061051f57600080fd5b505050565b60006105326009600a611912565b61054090633b9aca00611921565b905090565b6000610552848484610c78565b6105a4843361059f85604051806060016040528060288152602001611af8602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611252565b610b54565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146105d357600080fd5b3060009081526001602052604090205480156105f2576105f28161128c565b4780156106025761060281611406565b5050565b6000546001600160a01b031633146106395760405162461bcd60e51b81526004016106309061196d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106ad5760405162461bcd60e51b81526004016106309061196d565b6106b96009600a611912565b6106c790633b9aca00611921565b600e556106d66009600a611912565b6106e490633b9aca00611921565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61071e6009600a611912565b61072c90633b9aca00611921565b60405190815260200160405180910390a1565b6000610409338484610c78565b6000546001600160a01b031633146107765760405162461bcd60e51b81526004016106309061196d565b601354600160a01b900460ff16156107d05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610630565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561081990309061080b6009600a611912565b61059f90633b9aca00611921565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906119a2565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091691906119a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098791906119a2565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306109cf816001600160a01b031660009081526001602052604090205490565b6000806109e46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a4c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a7191906119bf565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee91906119ed565b506013805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b031614610b2d57600080fd5b6008548111158015610b4157506009548111155b610b4a57600080fd5b6008819055600955565b6001600160a01b038316610bb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610630565b6001600160a01b038216610c175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610630565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610630565b6001600160a01b038216610d3e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610630565b60008111610da05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610630565b600080546001600160a01b03858116911614801590610dcd57506000546001600160a01b03848116911614155b1561110f57610dfe6064610df8600a54600d5411610ded57600654610df1565b6008545b8590611444565b906114cd565b60055490915060ff1615610ee6576012546001600160a01b03848116911614801590610e3857506013546001600160a01b03848116911614155b15610ee657326000908152600460205260409020544311610ed35760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610630565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610f1157506012546001600160a01b03848116911614155b8015610f3657506001600160a01b03831660009081526003602052604090205460ff16155b1561101e57600e54821115610f8d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610630565b600f5482610fb0856001600160a01b031660009081526001602052604090205490565b610fba9190611a0f565b11156110085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610630565b600d805490600061101883611a22565b91905055505b6013546001600160a01b03848116911614801561104457506001600160a01b0384163014155b156110715761106e6064610df8600b54600d541161106457600754610df1565b6009548590611444565b90505b30600090815260016020526040902054601354600160a81b900460ff161580156110a857506013546001600160a01b038581169116145b80156110bd5750601354600160b01b900460ff165b80156110ca575060105481115b80156110d95750600c54600d54115b1561110d576110fb6110f6846110f18460115461150f565b61150f565b61128c565b47801561110b5761110b47611406565b505b505b8015611189573060009081526001602052604090205461112f9082611524565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111809085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546111ac9083611583565b6001600160a01b0385166000908152600160205260409020556111f16111d28383611583565b6001600160a01b03851660009081526001602052604090205490611524565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61123b8585611583565b60405190815260200160405180910390a350505050565b600081848411156112765760405162461bcd60e51b81526004016106309190611617565b5060006112838486611a3b565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112d4576112d4611a4e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135191906119a2565b8160018151811061136457611364611a4e565b6001600160a01b03928316602091820292909201015260125461138a9130911684610b54565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c3908590600090869030904290600401611a64565b600060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610602573d6000803e3d6000fd5b6000826000036114565750600061040d565b60006114628385611921565b90508261146f8583611ad5565b146114c65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610630565b9392505050565b60006114c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115c5565b600081831161151e57826114c6565b50919050565b6000806115318385611a0f565b9050838110156114c65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610630565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611252565b600081836115e65760405162461bcd60e51b81526004016106309190611617565b5060006112838486611ad5565b60005b8381101561160e5781810151838201526020016115f6565b50506000910152565b60208152600082518060208401526116368160408501602087016115f3565b601f01601f19169190910160400192915050565b6001600160a01b038116811461165f57600080fd5b50565b6000806040838503121561167557600080fd5b82356116808161164a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156116b757600080fd5b82356116c28161164a565b9150602083013567ffffffffffffffff808211156116df57600080fd5b818501915085601f8301126116f357600080fd5b8135818111156117055761170561168e565b604051601f8201601f19908116603f0116810190838211818310171561172d5761172d61168e565b8160405282815288602084870101111561174657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060006060848603121561177d57600080fd5b83356117888161164a565b925060208401356117988161164a565b929592945050506040919091013590565b6000602082840312156117bb57600080fd5b81356114c68161164a565b600080604083850312156117d957600080fd5b82356117e48161164a565b915060208301356117f48161164a565b809150509250929050565b60006020828403121561181157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561186957816000190482111561184f5761184f611818565b8085161561185c57918102915b93841c9390800290611833565b509250929050565b6000826118805750600161040d565b8161188d5750600061040d565b81600181146118a357600281146118ad576118c9565b600191505061040d565b60ff8411156118be576118be611818565b50506001821b61040d565b5060208310610133831016604e8410600b84101617156118ec575081810a61040d565b6118f6838361182e565b806000190482111561190a5761190a611818565b029392505050565b60006114c660ff841683611871565b808202811582820484141761040d5761040d611818565b60006020828403121561194a57600080fd5b5051919050565b600082516119638184602087016115f3565b9190910192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119b457600080fd5b81516114c68161164a565b6000806000606084860312156119d457600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119ff57600080fd5b815180151581146114c657600080fd5b8082018082111561040d5761040d611818565b600060018201611a3457611a34611818565b5060010190565b8181038181111561040d5761040d611818565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ab45784516001600160a01b031683529383019391830191600101611a8f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611af257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209bc2854efa317a8d651b01d04fc270fed894f5832b0018ac546997224b534dbf64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610331578063bf474bed14610351578063c876d0b914610367578063c9567bf914610381578063dd62ed3e14610396578063ec1f3f63146103dc57600080fd5b8063751039fc1461029a5780637d1db4a5146102af5780638da5cb5b146102c55780638f9a55c0146102ed57806395d89b411461030357600080fd5b806323b872dd116100f257806323b872dd146101fe578063313ce5671461021e57806351bc3c851461023a57806370a082311461024f578063715018a61461028557600080fd5b806306fdde031461013a578063095ea7b31461018057806309a56ab6146101b05780630faee56f146101c557806318160ddd146101e957600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600b81526a56616c656e74696e65414960a81b60208201525b6040516101779190611617565b60405180910390f35b34801561018c57600080fd5b506101a061019b366004611662565b6103fc565b6040519015158152602001610177565b6101c36101be3660046116a4565b610413565b005b3480156101d157600080fd5b506101db60115481565b604051908152602001610177565b3480156101f557600080fd5b506101db610524565b34801561020a57600080fd5b506101a0610219366004611768565b610545565b34801561022a57600080fd5b5060405160098152602001610177565b34801561024657600080fd5b506101c36105ae565b34801561025b57600080fd5b506101db61026a3660046117a9565b6001600160a01b031660009081526001602052604090205490565b34801561029157600080fd5b506101c3610606565b3480156102a657600080fd5b506101c3610683565b3480156102bb57600080fd5b506101db600e5481565b3480156102d157600080fd5b506000546040516001600160a01b039091168152602001610177565b3480156102f957600080fd5b506101db600f5481565b34801561030f57600080fd5b5060408051808201909152600581526456616c414960d81b602082015261016a565b34801561033d57600080fd5b506101a061034c366004611662565b61073f565b34801561035d57600080fd5b506101db60105481565b34801561037357600080fd5b506005546101a09060ff1681565b34801561038d57600080fd5b506101c361074c565b3480156103a257600080fd5b506101db6103b13660046117c6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103e857600080fd5b506101c36103f73660046117ff565b610b08565b6000610409338484610b54565b5060015b92915050565b61041f6009600a611912565b61042c90624c4b40611921565b6040516370a0823160e01b815233600482015230906370a0823190602401602060405180830381865afa158015610467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048b9190611938565b101561049657600080fd5b6000826001600160a01b03166000836040516020016104b59190611617565b60408051601f19818403018152908290526104cf91611951565b60006040518083038185875af1925050503d806000811461050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b505090508061051f57600080fd5b505050565b60006105326009600a611912565b61054090633b9aca00611921565b905090565b6000610552848484610c78565b6105a4843361059f85604051806060016040528060288152602001611af8602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611252565b610b54565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146105d357600080fd5b3060009081526001602052604090205480156105f2576105f28161128c565b4780156106025761060281611406565b5050565b6000546001600160a01b031633146106395760405162461bcd60e51b81526004016106309061196d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106ad5760405162461bcd60e51b81526004016106309061196d565b6106b96009600a611912565b6106c790633b9aca00611921565b600e556106d66009600a611912565b6106e490633b9aca00611921565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61071e6009600a611912565b61072c90633b9aca00611921565b60405190815260200160405180910390a1565b6000610409338484610c78565b6000546001600160a01b031633146107765760405162461bcd60e51b81526004016106309061196d565b601354600160a01b900460ff16156107d05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610630565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561081990309061080b6009600a611912565b61059f90633b9aca00611921565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089091906119a2565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091691906119a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098791906119a2565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306109cf816001600160a01b031660009081526001602052604090205490565b6000806109e46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a4c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a7191906119bf565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee91906119ed565b506013805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b031614610b2d57600080fd5b6008548111158015610b4157506009548111155b610b4a57600080fd5b6008819055600955565b6001600160a01b038316610bb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610630565b6001600160a01b038216610c175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610630565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610630565b6001600160a01b038216610d3e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610630565b60008111610da05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610630565b600080546001600160a01b03858116911614801590610dcd57506000546001600160a01b03848116911614155b1561110f57610dfe6064610df8600a54600d5411610ded57600654610df1565b6008545b8590611444565b906114cd565b60055490915060ff1615610ee6576012546001600160a01b03848116911614801590610e3857506013546001600160a01b03848116911614155b15610ee657326000908152600460205260409020544311610ed35760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610630565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610f1157506012546001600160a01b03848116911614155b8015610f3657506001600160a01b03831660009081526003602052604090205460ff16155b1561101e57600e54821115610f8d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610630565b600f5482610fb0856001600160a01b031660009081526001602052604090205490565b610fba9190611a0f565b11156110085760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610630565b600d805490600061101883611a22565b91905055505b6013546001600160a01b03848116911614801561104457506001600160a01b0384163014155b156110715761106e6064610df8600b54600d541161106457600754610df1565b6009548590611444565b90505b30600090815260016020526040902054601354600160a81b900460ff161580156110a857506013546001600160a01b038581169116145b80156110bd5750601354600160b01b900460ff165b80156110ca575060105481115b80156110d95750600c54600d54115b1561110d576110fb6110f6846110f18460115461150f565b61150f565b61128c565b47801561110b5761110b47611406565b505b505b8015611189573060009081526001602052604090205461112f9082611524565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111809085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546111ac9083611583565b6001600160a01b0385166000908152600160205260409020556111f16111d28383611583565b6001600160a01b03851660009081526001602052604090205490611524565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61123b8585611583565b60405190815260200160405180910390a350505050565b600081848411156112765760405162461bcd60e51b81526004016106309190611617565b5060006112838486611a3b565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112d4576112d4611a4e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135191906119a2565b8160018151811061136457611364611a4e565b6001600160a01b03928316602091820292909201015260125461138a9130911684610b54565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113c3908590600090869030904290600401611a64565b600060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610602573d6000803e3d6000fd5b6000826000036114565750600061040d565b60006114628385611921565b90508261146f8583611ad5565b146114c65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610630565b9392505050565b60006114c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115c5565b600081831161151e57826114c6565b50919050565b6000806115318385611a0f565b9050838110156114c65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610630565b60006114c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611252565b600081836115e65760405162461bcd60e51b81526004016106309190611617565b5060006112838486611ad5565b60005b8381101561160e5781810151838201526020016115f6565b50506000910152565b60208152600082518060208401526116368160408501602087016115f3565b601f01601f19169190910160400192915050565b6001600160a01b038116811461165f57600080fd5b50565b6000806040838503121561167557600080fd5b82356116808161164a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156116b757600080fd5b82356116c28161164a565b9150602083013567ffffffffffffffff808211156116df57600080fd5b818501915085601f8301126116f357600080fd5b8135818111156117055761170561168e565b604051601f8201601f19908116603f0116810190838211818310171561172d5761172d61168e565b8160405282815288602084870101111561174657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008060006060848603121561177d57600080fd5b83356117888161164a565b925060208401356117988161164a565b929592945050506040919091013590565b6000602082840312156117bb57600080fd5b81356114c68161164a565b600080604083850312156117d957600080fd5b82356117e48161164a565b915060208301356117f48161164a565b809150509250929050565b60006020828403121561181157600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561186957816000190482111561184f5761184f611818565b8085161561185c57918102915b93841c9390800290611833565b509250929050565b6000826118805750600161040d565b8161188d5750600061040d565b81600181146118a357600281146118ad576118c9565b600191505061040d565b60ff8411156118be576118be611818565b50506001821b61040d565b5060208310610133831016604e8410600b84101617156118ec575081810a61040d565b6118f6838361182e565b806000190482111561190a5761190a611818565b029392505050565b60006114c660ff841683611871565b808202811582820484141761040d5761040d611818565b60006020828403121561194a57600080fd5b5051919050565b600082516119638184602087016115f3565b9190910192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119b457600080fd5b81516114c68161164a565b6000806000606084860312156119d457600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119ff57600080fd5b815180151581146114c657600080fd5b8082018082111561040d5761040d611818565b600060018201611a3457611a34611818565b5060010190565b8181038181111561040d5761040d611818565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ab45784516001600160a01b031683529383019391830191600101611a8f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611af257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209bc2854efa317a8d651b01d04fc270fed894f5832b0018ac546997224b534dbf64736f6c63430008120033

Deployed Bytecode Sourcemap

3530:8518:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5546:83;;;;;;;;;;-1:-1:-1;5616:5:0;;;;;;;;;;;;-1:-1:-1;;;5616:5:0;;;;5546:83;;;;;;;:::i;:::-;;;;;;;;6379:161;;;;;;;;;;-1:-1:-1;6379:161:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;6379:161:0;1126:187:1;10217:220:0;;;;;;:::i;:::-;;:::i;:::-;;4699:50;;;;;;;;;;;;;;;;;;;2658:25:1;;;2646:2;2631:18;4699:50:0;2512:177:1;5823:95:0;;;;;;;;;;;;;:::i;6548:313::-;;;;;;;;;;-1:-1:-1;6548:313:0;;;;;:::i;:::-;;:::i;5732:83::-;;;;;;;;;;-1:-1:-1;5732:83:0;;4320:1;3297:36:1;;3285:2;3270:18;5732:83:0;3155:184:1;11697:348:0;;;;;;;;;;;;;:::i;5926:119::-;;;;;;;;;;-1:-1:-1;5926:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6019:18:0;5992:7;6019:18;;;:9;:18;;;;;;;5926:119;2611:148;;;;;;;;;;;;;:::i;10445:196::-;;;;;;;;;;;;;:::i;4510:56::-;;;;;;;;;;;;;;;;2397:79;;;;;;;;;;-1:-1:-1;2435:7:0;2462:6;2397:79;;-1:-1:-1;;;;;2462:6:0;;;3742:51:1;;3730:2;3715:18;2397:79:0;3596:203:1;4573:56:0;;;;;;;;;;;;;;;;5637:87;;;;;;;;;;-1:-1:-1;5709:7:0;;;;;;;;;;;;-1:-1:-1;;;5709:7:0;;;;5637:87;;6053:167;;;;;;;;;;-1:-1:-1;6053:167:0;;;;;:::i;:::-;;:::i;4636:56::-;;;;;;;;;;;;;;;;3878:39;;;;;;;;;;-1:-1:-1;3878:39:0;;;;;;;;10749:671;;;;;;;;;;;;;:::i;6228:143::-;;;;;;;;;;-1:-1:-1;6228:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6336:18:0;;;6309:7;6336:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6228:143;11434:218;;;;;;;;;;-1:-1:-1;11434:218:0;;;;;:::i;:::-;;:::i;6379:161::-;6454:4;6471:39;232:10;6494:7;6503:6;6471:8;:39::i;:::-;-1:-1:-1;6528:4:0;6379:161;;;;;:::o;10217:220::-;5503:14;4320:1;5503:2;:14;:::i;:::-;5493:24;;:7;:24;:::i;:::-;5463:26;;-1:-1:-1;;;5463:26:0;;5478:10;5463:26;;;3742:51:1;5463:4:0;;:14;;3715:18:1;;5463:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;5455:63;;;;;;10322:12:::1;10355:9;-1:-1:-1::0;;;;;10339:32:0::1;10379:1;10393:7;10382:19;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;10382:19:0;;::::1;::::0;;;;;;;10339:63:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10321:81;;;10421:7;10413:16;;;::::0;::::1;;10310:127;10217:220:::0;;:::o;5823:95::-;5876:7;4376:13;4320:1;4376:2;:13;:::i;:::-;4363:26;;:10;:26;:::i;:::-;5896:14;;5823:95;:::o;6548:313::-;6646:4;6663:36;6673:6;6681:9;6692:6;6663:9;:36::i;:::-;6710:121;6719:6;232:10;6741:89;6779:6;6741:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6741:19:0;;;;;;:11;:19;;;;;;;;232:10;6741:33;;;;;;;;;;:37;:89::i;:::-;6710:8;:121::i;:::-;-1:-1:-1;6849:4:0;6548:313;;;;;:::o;11697:348::-;11761:10;;;;;-1:-1:-1;;;;;11761:10:0;232;-1:-1:-1;;;;;11747:24:0;;11739:33;;;;;;11822:4;11783:20;6019:18;;;:9;:18;;;;;;11842:14;;11839:73;;11870:30;11887:12;11870:16;:30::i;:::-;11941:21;11976:12;;11973:65;;12002:24;12015:10;12002:12;:24::i;:::-;11728:317;;11697:348::o;2611:148::-;2524:6;;-1:-1:-1;;;;;2524:6:0;232:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;;;;;;;;;2718:1:::1;2702:6:::0;;2681:40:::1;::::0;-1:-1:-1;;;;;2702:6:0;;::::1;::::0;2681:40:::1;::::0;2718:1;;2681:40:::1;2749:1;2732:19:::0;;-1:-1:-1;;;;;;2732:19:0::1;::::0;;2611:148::o;10445:196::-;2524:6;;-1:-1:-1;;;;;2524:6:0;232:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;4376:13:::1;4320:1;4376:2;:13;:::i;:::-;4363:26;::::0;:10:::1;:26;:::i;:::-;10498:12;:22:::0;4376:13:::1;4320:1;4376:2;:13;:::i;:::-;4363:26;::::0;:10:::1;:26;:::i;:::-;10531:14;:22:::0;10564:20:::1;:26:::0;;-1:-1:-1;;10564:26:0::1;::::0;;10606:27:::1;4376:13;4320:1;-1:-1:-1::0;4376:13:0::1;:::i;:::-;4363:26;::::0;:10:::1;:26;:::i;:::-;10606:27;::::0;2658:25:1;;;2646:2;2631:18;10606:27:0::1;;;;;;;10445:196::o:0;6053:167::-;6131:4;6148:42;232:10;6172:9;6183:6;6148:9;:42::i;10749:671::-;2524:6;;-1:-1:-1;;;;;2524:6:0;232:10;2524:22;2516:67;;;;-1:-1:-1;;;2516:67:0;;;;;;;:::i;:::-;10813:11:::1;::::0;-1:-1:-1;;;10813:11:0;::::1;;;10812:12;10804:47;;;::::0;-1:-1:-1;;;10804:47:0;;7114:2:1;10804:47:0::1;::::0;::::1;7096:21:1::0;7153:2;7133:18;;;7126:30;7192:25;7172:18;;;7165:53;7235:18;;10804:47:0::1;6912:347:1::0;10804:47:0::1;10862:15;:80:::0;;-1:-1:-1;;;;;;10862:80:0::1;10899:42;10862:80:::0;;::::1;::::0;;;10953:58:::1;::::0;10970:4:::1;::::0;4376:13:::1;4320:1;4376:2;:13;:::i;:::-;4363:26;::::0;:10:::1;:26;:::i;10953:58::-;11056:15;;;;;;;;;-1:-1:-1::0;;;;;11056:15:0::1;-1:-1:-1::0;;;;;11056:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11038:55:0::1;;11102:4;11109:15;;;;;;;;;-1:-1:-1::0;;;;;11109:15:0::1;-1:-1:-1::0;;;;;11109:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11038:94;::::0;-1:-1:-1;;;;;;11038:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7750:15:1;;;11038:94:0::1;::::0;::::1;7732:34:1::0;7802:15;;7782:18;;;7775:43;7667:18;;11038:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11022:13;:110:::0;;-1:-1:-1;;;;;11022:110:0;;::::1;-1:-1:-1::0;;;;;;11022:110:0;;::::1;;::::0;;11143:15:::1;::::0;::::1;:31;11182:21;11213:4;11219:24;11213:4:::0;-1:-1:-1;;;;;6019:18:0;5992:7;6019:18;;;:9;:18;;;;;;;5926:119;11219:24:::1;11244:1;11246::::0;11248:7:::1;2435::::0;2462:6;-1:-1:-1;;;;;2462:6:0;;2397:79;11248:7:::1;11143:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11143:129:0;;;-1:-1:-1;;;;;8188:15:1;;;11143:129:0::1;::::0;::::1;8170:34:1::0;8220:18;;;8213:34;;;;8263:18;;;8256:34;;;;8306:18;;;8299:34;8370:15;;;8349:19;;;8342:44;11256:15:0::1;8402:19:1::0;;;8395:35;8104:19;;11143:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11290:13:0::1;::::0;11321:15:::1;::::0;11283:71:::1;::::0;-1:-1:-1;;;11283:71:0;;-1:-1:-1;;;;;11321:15:0;;::::1;11283:71;::::0;::::1;8926:51:1::0;-1:-1:-1;;8993:18:1;;;8986:34;11290:13:0;::::1;::::0;-1:-1:-1;11283:29:0::1;::::0;8899:18:1;;11283:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11365:11:0::1;:18:::0;;-1:-1:-1;;;;11394:18:0;-1:-1:-1;;;11394:18:0;;;10749:671::o;11434:218::-;11509:10;;;;;-1:-1:-1;;;;;11509:10:0;232;-1:-1:-1;;;;;11495:24:0;;11487:33;;;;;;11546:12;;11537:7;:21;;:47;;;;;11571:13;;11562:7;:22;;11537:47;11529:56;;;;;;11594:12;:20;;;11623:13;:21;11434:218::o;6869:335::-;-1:-1:-1;;;;;6962:19:0;;6954:68;;;;-1:-1:-1;;;6954:68:0;;9515:2:1;6954:68:0;;;9497:21:1;9554:2;9534:18;;;9527:30;9593:34;9573:18;;;9566:62;-1:-1:-1;;;9644:18:1;;;9637:34;9688:19;;6954:68:0;9313:400:1;6954:68:0;-1:-1:-1;;;;;7041:21:0;;7033:68;;;;-1:-1:-1;;;7033:68:0;;9920:2:1;7033:68:0;;;9902:21:1;9959:2;9939:18;;;9932:30;9998:34;9978:18;;;9971:62;-1:-1:-1;;;10049:18:1;;;10042:32;10091:19;;7033:68:0;9718:398:1;7033:68:0;-1:-1:-1;;;;;7112:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7164:32;;2658:25:1;;;7164:32:0;;2631:18:1;7164:32:0;;;;;;;6869:335;;;:::o;7212:2398::-;-1:-1:-1;;;;;7300:18:0;;7292:68;;;;-1:-1:-1;;;7292:68:0;;10323:2:1;7292:68:0;;;10305:21:1;10362:2;10342:18;;;10335:30;10401:34;10381:18;;;10374:62;-1:-1:-1;;;10452:18:1;;;10445:35;10497:19;;7292:68:0;10121:401:1;7292:68:0;-1:-1:-1;;;;;7379:16:0;;7371:64;;;;-1:-1:-1;;;7371:64:0;;10729:2:1;7371:64:0;;;10711:21:1;10768:2;10748:18;;;10741:30;10807:34;10787:18;;;10780:62;-1:-1:-1;;;10858:18:1;;;10851:33;10901:19;;7371:64:0;10527:399:1;7371:64:0;7463:1;7454:6;:10;7446:64;;;;-1:-1:-1;;;7446:64:0;;11133:2:1;7446:64:0;;;11115:21:1;11172:2;11152:18;;;11145:30;11211:34;11191:18;;;11184:62;-1:-1:-1;;;11262:18:1;;;11255:39;11311:19;;7446:64:0;10931:405:1;7446:64:0;7521:17;2462:6;;-1:-1:-1;;;;;7555:15:0;;;2462:6;;7555:15;;;;:32;;-1:-1:-1;2435:7:0;2462:6;-1:-1:-1;;;;;7574:13:0;;;2462:6;;7574:13;;7555:32;7551:1703;;;7616:76;7688:3;7616:67;7638:15;;7628:9;;:25;7627:55;;7668:14;;7627:55;;;7655:12;;7627:55;7616:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7713:20;;7604:88;;-1:-1:-1;7713:20:0;;7709:508;;;7774:15;;-1:-1:-1;;;;;7760:30:0;;;7774:15;;7760:30;;;;:62;;-1:-1:-1;7808:13:0;;-1:-1:-1;;;;;7794:28:0;;;7808:13;;7794:28;;7760:62;7756:444;;;7914:9;7885:39;;;;:28;:39;;;;;;7958:12;-1:-1:-1;7849:250:0;;;;-1:-1:-1;;;7849:250:0;;11543:2:1;7849:250:0;;;11525:21:1;11582:2;11562:18;;;11555:30;11621:34;11601:18;;;11594:62;11692:34;11672:18;;;11665:62;-1:-1:-1;;;11743:19:1;;;11736:40;11793:19;;7849:250:0;11341:477:1;7849:250:0;8153:9;8124:39;;;;:28;:39;;;;;8166:12;8124:54;;7756:444;8245:13;;-1:-1:-1;;;;;8237:21:0;;;8245:13;;8237:21;:55;;;;-1:-1:-1;8276:15:0;;-1:-1:-1;;;;;8262:30:0;;;8276:15;;8262:30;;8237:55;:83;;;;-1:-1:-1;;;;;;8298:22:0;;;;;;:18;:22;;;;;;;;8296:24;8237:83;8233:313;;;8360:12;;8350:6;:22;;8342:60;;;;-1:-1:-1;;;8342:60:0;;12025:2:1;8342:60:0;;;12007:21:1;12064:2;12044:18;;;12037:30;12103:27;12083:18;;;12076:55;12148:18;;8342:60:0;11823:349:1;8342:60:0;8455:14;;8445:6;8429:13;8439:2;-1:-1:-1;;;;;6019:18:0;5992:7;6019:18;;;:9;:18;;;;;;;5926:119;8429:13;:22;;;;:::i;:::-;:40;;8421:79;;;;-1:-1:-1;;;8421:79:0;;12509:2:1;8421:79:0;;;12491:21:1;12548:2;12528:18;;;12521:30;12587:28;12567:18;;;12560:56;12633:18;;8421:79:0;12307:350:1;8421:79:0;8519:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8233:313;8571:13;;-1:-1:-1;;;;;8565:19:0;;;8571:13;;8565:19;:43;;;;-1:-1:-1;;;;;;8588:20:0;;8603:4;8588:20;;8565:43;8562:174;;;8641:79;8716:3;8641:70;8663:16;;8653:9;;:26;8652:58;;8695:15;;8652:58;;;8681:13;;8641:6;;:10;:70::i;:79::-;8629:91;;8562:174;8801:4;8752:28;6019:18;;;:9;:18;;;;;;8827:6;;-1:-1:-1;;;8827:6:0;;;;8826:7;:32;;;;-1:-1:-1;8845:13:0;;-1:-1:-1;;;;;8837:21:0;;;8845:13;;8837:21;8826:32;:47;;;;-1:-1:-1;8862:11:0;;-1:-1:-1;;;8862:11:0;;;;8826:47;:89;;;;;8898:17;;8877:20;:38;8826:89;:121;;;;;8929:18;;8919:9;;:28;8826:121;8822:421;;;8968:67;8985:49;8989:6;8996:37;9000:20;9021:11;;8996:3;:37::i;:::-;8985:3;:49::i;:::-;8968:16;:67::i;:::-;9083:21;9126:22;;9123:105;;9173:35;9186:21;9173:12;:35::i;:::-;8949:294;8822:421;7589:1665;7551:1703;9269:11;;9266:161;;9337:4;9319:24;;;;:9;:24;;;;;;:39;;9348:9;9319:28;:39::i;:::-;9312:4;9294:24;;;;:9;:24;;;;;;;:64;;;;9376:39;;-1:-1:-1;;;;;9376:39:0;;;;;;;9405:9;2658:25:1;;2646:2;2631:18;;2512:177;9376:39:0;;;;;;;;9266:161;-1:-1:-1;;;;;9453:15:0;;;;;;:9;:15;;;;;;:27;;9473:6;9453:19;:27::i;:::-;-1:-1:-1;;;;;9437:15:0;;;;;;:9;:15;;;;;:43;9505:40;9523:21;:6;9534:9;9523:10;:21::i;:::-;-1:-1:-1;;;;;9505:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9491:13:0;;;;;;;:9;:13;;;;;:54;;;;9561:41;;;9580:21;:6;9591:9;9580:10;:21::i;:::-;9561:41;;2658:25:1;;;2646:2;2631:18;9561:41:0;;;;;;;7281:2329;7212:2398;;;:::o;1289:190::-;1375:7;1411:12;1403:6;;;;1395:29;;;;-1:-1:-1;;;1395:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1435:9:0;1447:5;1451:1;1447;:5;:::i;:::-;1435:17;1289:190;-1:-1:-1;;;;;1289:190:0:o;9726:483::-;5031:6;:13;;-1:-1:-1;;;;5031:13:0;-1:-1:-1;;;5031:13:0;;;9828:16:::1;::::0;;9842:1:::1;9828:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9828:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9828:16:0::1;9804:40;;9873:4;9855;9860:1;9855:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9855:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9899:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9899:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9855:7;;9899:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9889:4;9894:1;9889:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9889:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9964:15:::1;::::0;9932:62:::1;::::0;9949:4:::1;::::0;9964:15:::1;9982:11:::0;9932:8:::1;:62::i;:::-;10005:15;::::0;:196:::1;::::0;-1:-1:-1;;;10005:196:0;;-1:-1:-1;;;;;10005:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10086:11;;10005:15:::1;::::0;10128:4;;10155::::1;::::0;10175:15:::1;::::0;10005:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5067:6:0;:14;;-1:-1:-1;;;;5067:14:0;;;-1:-1:-1;;;;9726:483:0:o;10649:92::-;10706:10;;:27;;:10;;;;-1:-1:-1;;;;;10706:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1487:246;1545:7;1569:1;1574;1569:6;1565:47;;-1:-1:-1;1599:1:0;1592:8;;1565:47;1622:9;1634:5;1638:1;1634;:5;:::i;:::-;1622:17;-1:-1:-1;1667:1:0;1658:5;1662:1;1622:17;1658:5;:::i;:::-;:10;1650:56;;;;-1:-1:-1;;;1650:56:0;;14476:2:1;1650:56:0;;;14458:21:1;14515:2;14495:18;;;14488:30;14554:34;14534:18;;;14527:62;-1:-1:-1;;;14605:18:1;;;14598:31;14646:19;;1650:56:0;14274:397:1;1650:56:0;1724:1;1487:246;-1:-1:-1;;;1487:246:0:o;1741:132::-;1799:7;1826:39;1830:1;1833;1826:39;;;;;;;;;;;;;;;;;:3;:39::i;9620:98::-;9677:7;9704:1;9702;:3;9701:9;;9709:1;9701:9;;;-1:-1:-1;9707:1:0;9620:98;-1:-1:-1;9620:98:0:o;958:179::-;1016:7;;1048:5;1052:1;1048;:5;:::i;:::-;1036:17;;1077:1;1072;:6;;1064:46;;;;-1:-1:-1;;;1064:46:0;;14878:2:1;1064:46:0;;;14860:21:1;14917:2;14897:18;;;14890:30;14956:29;14936:18;;;14929:57;15003:18;;1064:46:0;14676:351:1;1145:136:0;1203:7;1230:43;1234:1;1237;1230:43;;;;;;;;;;;;;;;;;:3;:43::i;1881:189::-;1967:7;2002:12;1995:5;1987:28;;;;-1:-1:-1;;;1987:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2026:9:0;2038:5;2042:1;2038;:5;:::i;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;725:70;670:131;:::o;806:315::-;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1318:127::-;1379:10;1374:3;1370:20;1367:1;1360:31;1410:4;1407:1;1400:15;1434:4;1431:1;1424:15;1450:1057;1528:6;1536;1589:2;1577:9;1568:7;1564:23;1560:32;1557:52;;;1605:1;1602;1595:12;1557:52;1644:9;1631:23;1663:31;1688:5;1663:31;:::i;:::-;1713:5;-1:-1:-1;1769:2:1;1754:18;;1741:32;1792:18;1822:14;;;1819:34;;;1849:1;1846;1839:12;1819:34;1887:6;1876:9;1872:22;1862:32;;1932:7;1925:4;1921:2;1917:13;1913:27;1903:55;;1954:1;1951;1944:12;1903:55;1990:2;1977:16;2012:2;2008;2005:10;2002:36;;;2018:18;;:::i;:::-;2093:2;2087:9;2061:2;2147:13;;-1:-1:-1;;2143:22:1;;;2167:2;2139:31;2135:40;2123:53;;;2191:18;;;2211:22;;;2188:46;2185:72;;;2237:18;;:::i;:::-;2277:10;2273:2;2266:22;2312:2;2304:6;2297:18;2352:7;2347:2;2342;2338;2334:11;2330:20;2327:33;2324:53;;;2373:1;2370;2363:12;2324:53;2429:2;2424;2420;2416:11;2411:2;2403:6;2399:15;2386:46;2474:1;2469:2;2464;2456:6;2452:15;2448:24;2441:35;2495:6;2485:16;;;;;;;1450:1057;;;;;:::o;2694:456::-;2771:6;2779;2787;2840:2;2828:9;2819:7;2815:23;2811:32;2808:52;;;2856:1;2853;2846:12;2808:52;2895:9;2882:23;2914:31;2939:5;2914:31;:::i;:::-;2964:5;-1:-1:-1;3021:2:1;3006:18;;2993:32;3034:33;2993:32;3034:33;:::i;:::-;2694:456;;3086:7;;-1:-1:-1;;;3140:2:1;3125:18;;;;3112:32;;2694:456::o;3344:247::-;3403:6;3456:2;3444:9;3435:7;3431:23;3427:32;3424:52;;;3472:1;3469;3462:12;3424:52;3511:9;3498:23;3530:31;3555:5;3530:31;:::i;3804:388::-;3872:6;3880;3933:2;3921:9;3912:7;3908:23;3904:32;3901:52;;;3949:1;3946;3939:12;3901:52;3988:9;3975:23;4007:31;4032:5;4007:31;:::i;:::-;4057:5;-1:-1:-1;4114:2:1;4099:18;;4086:32;4127:33;4086:32;4127:33;:::i;:::-;4179:7;4169:17;;;3804:388;;;;;:::o;4197:180::-;4256:6;4309:2;4297:9;4288:7;4284:23;4280:32;4277:52;;;4325:1;4322;4315:12;4277:52;-1:-1:-1;4348:23:1;;4197:180;-1:-1:-1;4197:180:1:o;4382:127::-;4443:10;4438:3;4434:20;4431:1;4424:31;4474:4;4471:1;4464:15;4498:4;4495:1;4488:15;4514:422;4603:1;4646:5;4603:1;4660:270;4681:7;4671:8;4668:21;4660:270;;;4740:4;4736:1;4732:6;4728:17;4722:4;4719:27;4716:53;;;4749:18;;:::i;:::-;4799:7;4789:8;4785:22;4782:55;;;4819:16;;;;4782:55;4898:22;;;;4858:15;;;;4660:270;;;4664:3;4514:422;;;;;:::o;4941:806::-;4990:5;5020:8;5010:80;;-1:-1:-1;5061:1:1;5075:5;;5010:80;5109:4;5099:76;;-1:-1:-1;5146:1:1;5160:5;;5099:76;5191:4;5209:1;5204:59;;;;5277:1;5272:130;;;;5184:218;;5204:59;5234:1;5225:10;;5248:5;;;5272:130;5309:3;5299:8;5296:17;5293:43;;;5316:18;;:::i;:::-;-1:-1:-1;;5372:1:1;5358:16;;5387:5;;5184:218;;5486:2;5476:8;5473:16;5467:3;5461:4;5458:13;5454:36;5448:2;5438:8;5435:16;5430:2;5424:4;5421:12;5417:35;5414:77;5411:159;;;-1:-1:-1;5523:19:1;;;5555:5;;5411:159;5602:34;5627:8;5621:4;5602:34;:::i;:::-;5672:6;5668:1;5664:6;5660:19;5651:7;5648:32;5645:58;;;5683:18;;:::i;:::-;5721:20;;4941:806;-1:-1:-1;;;4941:806:1:o;5752:140::-;5810:5;5839:47;5880:4;5870:8;5866:19;5860:4;5839:47;:::i;5897:168::-;5970:9;;;6001;;6018:15;;;6012:22;;5998:37;5988:71;;6039:18;;:::i;6070:184::-;6140:6;6193:2;6181:9;6172:7;6168:23;6164:32;6161:52;;;6209:1;6206;6199:12;6161:52;-1:-1:-1;6232:16:1;;6070:184;-1:-1:-1;6070:184:1:o;6259:287::-;6388:3;6426:6;6420:13;6442:66;6501:6;6496:3;6489:4;6481:6;6477:17;6442:66;:::i;:::-;6524:16;;;;;6259:287;-1:-1:-1;;6259:287:1:o;6551:356::-;6753:2;6735:21;;;6772:18;;;6765:30;6831:34;6826:2;6811:18;;6804:62;6898:2;6883:18;;6551:356::o;7264:251::-;7334:6;7387:2;7375:9;7366:7;7362:23;7358:32;7355:52;;;7403:1;7400;7393:12;7355:52;7435:9;7429:16;7454:31;7479:5;7454:31;:::i;8441:306::-;8529:6;8537;8545;8598:2;8586:9;8577:7;8573:23;8569:32;8566:52;;;8614:1;8611;8604:12;8566:52;8643:9;8637:16;8627:26;;8693:2;8682:9;8678:18;8672:25;8662:35;;8737:2;8726:9;8722:18;8716:25;8706:35;;8441:306;;;;;:::o;9031:277::-;9098:6;9151:2;9139:9;9130:7;9126:23;9122:32;9119:52;;;9167:1;9164;9157:12;9119:52;9199:9;9193:16;9252:5;9245:13;9238:21;9231:5;9228:32;9218:60;;9274:1;9271;9264:12;12177:125;12242:9;;;12263:10;;;12260:36;;;12276:18;;:::i;12662:135::-;12701:3;12722:17;;;12719:43;;12742:18;;:::i;:::-;-1:-1:-1;12789:1:1;12778:13;;12662:135::o;12802:128::-;12869:9;;;12890:11;;;12887:37;;;12904:18;;:::i;12935:127::-;12996:10;12991:3;12987:20;12984:1;12977:31;13027:4;13024:1;13017:15;13051:4;13048:1;13041:15;13067:980;13329:4;13377:3;13366:9;13362:19;13408:6;13397:9;13390:25;13434:2;13472:6;13467:2;13456:9;13452:18;13445:34;13515:3;13510:2;13499:9;13495:18;13488:31;13539:6;13574;13568:13;13605:6;13597;13590:22;13643:3;13632:9;13628:19;13621:26;;13682:2;13674:6;13670:15;13656:29;;13703:1;13713:195;13727:6;13724:1;13721:13;13713:195;;;13792:13;;-1:-1:-1;;;;;13788:39:1;13776:52;;13883:15;;;;13848:12;;;;13824:1;13742:9;13713:195;;;-1:-1:-1;;;;;;;13964:32:1;;;;13959:2;13944:18;;13937:60;-1:-1:-1;;;14028:3:1;14013:19;14006:35;13925:3;13067:980;-1:-1:-1;;;13067:980:1:o;14052:217::-;14092:1;14118;14108:132;;14162:10;14157:3;14153:20;14150:1;14143:31;14197:4;14194:1;14187:15;14225:4;14222:1;14215:15;14108:132;-1:-1:-1;14254:9:1;;14052:217::o

Swarm Source

ipfs://9bc2854efa317a8d651b01d04fc270fed894f5832b0018ac546997224b534dbf
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.