ETH Price: $3,202.28 (+0.62%)
Gas: 3.74 Gwei
 

Overview

Max Total Supply

10,000,000 VADER

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap V2: VADER 10
Balance
204,615.676806361110072425 VADER

Value
$0.00
0x65d0c8cd9104dda137c475e77c5eccff9fa5f4af
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:
VADER

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.19;

// Let's help Lord Vader finish his Death Star project
// Death Star funding wallet address (our burn address): 0x0000000000000000000000000000000DeAtHsTaR
// 0 tax after 60000 block
// 6.9% is reserved for providing liquidity for CEX listings, seeding other DEXs, or bridges.
// twitter: @vader_pr

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    )
        external payable;
}

interface IUniswapV2Pair {
    function sync() external;
}

contract VADER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;

    address public uniswapV2Pair;

    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWallet;

    string private constant _name = "VADER";
    string private constant _symbol = "VADER";
    uint256 private _feeRateVADER = 50;
    uint8 private constant _decimals = 18;
    uint256 private _tTotalVADER =  10000000  * 10**_decimals;
    uint256 private _mWalletVADER = 200000  * 10**_decimals;

    address payable public marketingAddress = payable(0x78E7BcE7a5946FE719906848dd55c19Dedac8e1c);

    struct BuyFees{
        uint256 marketing;
    }

    struct SellFees{
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private marketingFee;

    bool private swapping;

    bool _warmUp;
    mapping(address => bool) public _warmuplist;

    uint256 private _taxTill;

    constructor () {
        buyFee.marketing = 30;

        sellFee.marketing = 30;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(0x00)] = true;
        _isExcludedFromFee[address(0xdead)] = true;

        _isExcludedFromMaxWallet[msg.sender] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[uniswapV2Pair] = true;
        _isExcludedFromMaxWallet[marketingAddress] = true;

        _warmUp = true;

        _taxTill = block.number + 60000;

        balances[_msgSender()] = _tTotalVADER;
        emit Transfer(address(0), _msgSender(), _tTotalVADER);
    }

    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 view override returns (uint256) {
        return _tTotalVADER;
    }

    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()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFee[address(account)] = excluded;
    }

    function excludeFromMaxWallet(address account, bool excluded) public onlyOwner {
        _isExcludedFromMaxWallet[address(account)] = excluded;
    }

    function setMarketingFee(uint256 amountBuy, uint256 amountSell) public onlyOwner {
        buyFee.marketing = amountBuy;
        sellFee.marketing = amountSell;
    }

    function setMarketingAddress(address payable newMarketingAddress) external onlyOwner {
        marketingAddress = newMarketingAddress;
    }

    function getMarketingBuyFee() public view returns (uint256) {
        return buyFee.marketing;
    }

    function getMarketingSellFee() public view returns (uint256) {
        return sellFee.marketing;
    }

    receive() external payable {}

    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100;

        balances[address(this)] += marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens);
        return (amount -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100;

        balances[address(this)] += marketingFeeTokens;
        emit Transfer (from, address(this), marketingFeeTokens );
        return (amount -marketingFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function isExcludedFromMaxWallet(address account) public view returns(bool) {
        return _isExcludedFromMaxWallet[account];
    }

    function setFeeRate(uint256 maxFee) external onlyOwner() {
        _feeRateVADER = maxFee;
    }

    function disableWarmUp() external onlyOwner() {
        require(_warmUp == true, "warmUp function already disabled");
        _warmUp = false;
        _taxTill = block.number + 60000;
    }

    function setZeroFees() external {
        uint256 currentBlock = block.number;
        require(_taxTill < currentBlock, "please try again later");
        buyFee.marketing = 0;
        sellFee.marketing = 0;
    }

    function getTaxTill() public view returns(uint256) {
        return _taxTill;
    }

    function setWarmuplist(address account, bool value) external onlyOwner() {
        _warmuplist[account] = value;
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if(from != owner() && to != owner() && !_isExcludedFromMaxWallet[to]){
            require(balanceOf(to).add(amount) <= _mWalletVADER, "Max Balance is reached.");
        }

        balances[from] -= amount;
        uint256 transferAmount = amount;

        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && buyFee.marketing > 0 && sellFee.marketing > 0){
            takeFee = true;
        }

        if(_warmUp == true && from != owner()){
            require(_warmuplist[to], "not allowed yet");
            takeFee = false;
        }

        if(takeFee){
            if(to != uniswapV2Pair){
                transferAmount = takeBuyFees(amount, to);
            } else {
                transferAmount = takeSellFees(amount, from);
                uint256 swapTokenAtAmount = balanceOf(uniswapV2Pair).mul(_feeRateVADER).div(1000);

                if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack(swapTokenAtAmount);
                    swapping = false;
                }

                if (!swapping) {
                    swapping = true;
                    swapBack(balanceOf(address(this)));
                    swapping = false;
                }
            }
        }

        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function manualSwapBack() external onlyOwner() {
      uint256 amount = balanceOf(address(this));
      swapTokensForEth(amount);
      payable(marketingAddress).transfer(address(this).balance);
    }

    function swapBack(uint256 amount) private {
        swapTokensForEth(amount);
        payable(marketingAddress).transfer(address(this).balance);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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
        );
    }
}

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":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":"","type":"address"}],"name":"_warmuplist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyFee","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWarmUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMarketingBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxTill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxFee","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setWarmuplist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setZeroFees","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":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600755620000176012600a620004a9565b620000269062989680620004c1565b600855620000376012600a620004a9565b620000469062030d40620004c1565b600955600a80546001600160a01b0319167378e7bce7a5946fe719906848dd55c19dedac8e1c1790553480156200007c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601e600b819055600c556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91600091839163c45a01559160048083019260209291908290030181865afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001449190620004db565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000192573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b89190620004db565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c9190620004db565b600180546001600160a01b038086166001600160a01b0319928316178355600280548286169316929092178255336000818152600560209081526040808320805460ff19908116891790915530808552828520805483168a1790557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc805483168a1790557f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805483168a1790559484526006909252808320805483168817905592825282822080548216871790559354831681528181208054851686179055600a549092168252902080549091169091179055600e805461ff00191661010017905590506200033e4361ea6062000506565b60105560085433600081815260036020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200051c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003eb578160001904821115620003cf57620003cf62000394565b80851615620003dd57918102915b93841c9390800290620003af565b509250929050565b6000826200040457506001620004a3565b816200041357506000620004a3565b81600181146200042c5760028114620004375762000457565b6001915050620004a3565b60ff8411156200044b576200044b62000394565b50506001821b620004a3565b5060208310610133831016604e8410600b84101617156200047c575081810a620004a3565b620004888383620003aa565b80600019048211156200049f576200049f62000394565b0290505b92915050565b6000620004ba60ff841683620003f3565b9392505050565b8082028115828204841417620004a357620004a362000394565b600060208284031215620004ee57600080fd5b81516001600160a01b0381168114620004ba57600080fd5b80820180821115620004a357620004a362000394565b611855806200052c6000396000f3fe6080604052600436106101fd5760003560e01c806366eb37851161010d578063a1959218116100a0578063c02466681161006f578063c0246668146105b2578063d2fcc001146105d2578063dd62ed3e146105f2578063f2fde38b14610638578063ff67af631461065857600080fd5b8063a19592181461053d578063a457c2d714610552578063a5ece94114610572578063a9059cbb1461059257600080fd5b80638d876440116100dc5780638d876440146104ea5780638da5cb5b146104ff578063906e9dd01461051d57806395d89b411461020957600080fd5b806366eb3785146104515780636dd3d39f1461046657806370a082311461049f578063715018a6146104d557600080fd5b8063313ce5671161019057806345596e2e1161015f57806345596e2e146103ac57806347062402146103cc57806349bd5a5e146103e35780635342acb41461040357806356b0899f1461043c57600080fd5b8063313ce5671461032e578063395093511461034a5780633bb2c67b1461036a5780633f3018931461038c57600080fd5b80631694505e116101cc5780631694505e146102aa57806318160ddd146102e257806323b872dd146102f75780632b14ca561461031757600080fd5b806306fdde0314610209578063095ea7b3146102465780630e155a82146102765780631299aec41461029557600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201825260058152642b20a222a960d91b6020820152905161023d919061153a565b60405180910390f35b34801561025257600080fd5b506102666102613660046115a0565b610688565b604051901515815260200161023d565b34801561028257600080fd5b50600c545b60405190815260200161023d565b3480156102a157600080fd5b50600b54610287565b3480156102b657600080fd5b506001546102ca906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156102ee57600080fd5b50600854610287565b34801561030357600080fd5b506102666103123660046115cc565b61069f565b34801561032357600080fd5b50600c546102879081565b34801561033a57600080fd5b506040516012815260200161023d565b34801561035657600080fd5b506102666103653660046115a0565b6106f1565b34801561037657600080fd5b5061038a61038536600461160d565b610728565b005b34801561039857600080fd5b5061038a6103a736600461164b565b610786565b3480156103b857600080fd5b5061038a6103c736600461166d565b6107bb565b3480156103d857600080fd5b50600b546102879081565b3480156103ef57600080fd5b506002546102ca906001600160a01b031681565b34801561040f57600080fd5b5061026661041e366004611686565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561044857600080fd5b50601054610287565b34801561045d57600080fd5b5061038a6107ea565b34801561047257600080fd5b50610266610481366004611686565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104ab57600080fd5b506102876104ba366004611686565b6001600160a01b031660009081526003602052604090205490565b3480156104e157600080fd5b5061038a61086a565b3480156104f657600080fd5b5061038a6108de565b34801561050b57600080fd5b506000546001600160a01b03166102ca565b34801561052957600080fd5b5061038a610538366004611686565b610981565b34801561054957600080fd5b5061038a6109cd565b34801561055e57600080fd5b5061026661056d3660046115a0565b610a26565b34801561057e57600080fd5b50600a546102ca906001600160a01b031681565b34801561059e57600080fd5b506102666105ad3660046115a0565b610a5d565b3480156105be57600080fd5b5061038a6105cd36600461160d565b610a6a565b3480156105de57600080fd5b5061038a6105ed36600461160d565b610abf565b3480156105fe57600080fd5b5061028761060d3660046116a3565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561064457600080fd5b5061038a610653366004611686565b610b14565b34801561066457600080fd5b50610266610673366004611686565b600f6020526000908152604090205460ff1681565b6000610695338484610bfe565b5060015b92915050565b60006106ac848484610d22565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546106e79186916106e29086906116e7565b610bfe565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106959185906106e29086906116fa565b6000546001600160a01b0316331461075b5760405162461bcd60e51b81526004016107529061170d565b60405180910390fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107b05760405162461bcd60e51b81526004016107529061170d565b600b91909155600c55565b6000546001600160a01b031633146107e55760405162461bcd60e51b81526004016107529061170d565b600755565b6000546001600160a01b031633146108145760405162461bcd60e51b81526004016107529061170d565b3060009081526003602052604090205461082d816111c5565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610866573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146108945760405162461bcd60e51b81526004016107529061170d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109085760405162461bcd60e51b81526004016107529061170d565b600e5460ff6101009091041615156001146109655760405162461bcd60e51b815260206004820181905260248201527f7761726d55702066756e6374696f6e20616c72656164792064697361626c65646044820152606401610752565b600e805461ff001916905561097c4361ea606116fa565b601055565b6000546001600160a01b031633146109ab5760405162461bcd60e51b81526004016107529061170d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60105443908111610a195760405162461bcd60e51b8152602060048201526016602482015275383632b0b9b2903a393c9030b3b0b4b7103630ba32b960511b6044820152606401610752565b506000600b819055600c55565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106959185906106e29086906116e7565b6000610695338484610d22565b6000546001600160a01b03163314610a945760405162461bcd60e51b81526004016107529061170d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae95760405162461bcd60e51b81526004016107529061170d565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b81526004016107529061170d565b6001600160a01b038116610ba35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610752565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610752565b6001600160a01b038216610cc15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610752565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610752565b6001600160a01b038216610de85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610752565b60008111610e4a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610752565b6000546001600160a01b03848116911614801590610e7657506000546001600160a01b03838116911614155b8015610e9b57506001600160a01b03821660009081526006602052604090205460ff16155b15610f1a57600954610ecc82610ec6856001600160a01b031660009081526003602052604090205490565b9061131f565b1115610f1a5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e0000000000000000006044820152606401610752565b6001600160a01b03831660009081526003602052604081208054839290610f429084906116e7565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610f8c57506001600160a01b03841660009081526005602052604090205460ff16155b8015610f995750600b5415155b8015610fa65750600c5415155b15610faf575060015b600e5460ff6101009091041615156001148015610fda57506000546001600160a01b03868116911614155b1561103d576001600160a01b0384166000908152600f602052604090205460ff166110395760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08185b1b1bddd959081e595d608a1b6044820152606401610752565b5060005b8015611142576002546001600160a01b03858116911614611069576110628385611385565b9150611142565b6110738386611420565b6007546002546001600160a01b0316600090815260036020526040812054929450916110ac916103e8916110a691611436565b906114b8565b3060009081526003602052604090205490915081111580156110d15750600e5460ff16155b156110f757600e805460ff191660011790556110ec816114fa565b600e805460ff191690555b600e5460ff1661114057600e805460ff19166001179055611135611130306001600160a01b031660009081526003602052604090205490565b6114fa565b600e805460ff191690555b505b6001600160a01b0384166000908152600360205260408120805484929061116a9084906116fa565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111b691815260200190565b60405180910390a35050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111fa576111fa611742565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112779190611758565b8160018151811061128a5761128a611742565b6001600160a01b0392831660209182029290920101526001546112b09130911684610bfe565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906112e9908590600090869030904290600401611775565b600060405180830381600087803b15801561130357600080fd5b505af1158015611317573d6000803e3d6000fd5b505050505050565b60008061132c83856116fa565b90508381101561137e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610752565b9392505050565b6000806064600b600001548561139b91906117e6565b6113a591906117fd565b306000908152600360205260408120805492935083929091906113c99084906116fa565b909155505060405181815230906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361141881856116e7565b949350505050565b6000806064600c600001548561139b91906117e6565b60008260000361144857506000610699565b600061145483856117e6565b90508261146185836117fd565b1461137e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610752565b600061137e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611503565b61082d816111c5565b600081836115245760405162461bcd60e51b8152600401610752919061153a565b50600061153184866117fd565b95945050505050565b600060208083528351808285015260005b818110156115675785810183015185820160400152820161154b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461159d57600080fd5b50565b600080604083850312156115b357600080fd5b82356115be81611588565b946020939093013593505050565b6000806000606084860312156115e157600080fd5b83356115ec81611588565b925060208401356115fc81611588565b929592945050506040919091013590565b6000806040838503121561162057600080fd5b823561162b81611588565b91506020830135801515811461164057600080fd5b809150509250929050565b6000806040838503121561165e57600080fd5b50508035926020909101359150565b60006020828403121561167f57600080fd5b5035919050565b60006020828403121561169857600080fd5b813561137e81611588565b600080604083850312156116b657600080fd5b82356116c181611588565b9150602083013561164081611588565b634e487b7160e01b600052601160045260246000fd5b81810381811115610699576106996116d1565b80820180821115610699576106996116d1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561176a57600080fd5b815161137e81611588565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117c55784516001600160a01b0316835293830193918301916001016117a0565b50506001600160a01b03969096166060850152505050608001529392505050565b8082028115828204841417610699576106996116d1565b60008261181a57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220529790478897ac09754ee11284a36a315048182a3a0571d83593c2a84879e16864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806366eb37851161010d578063a1959218116100a0578063c02466681161006f578063c0246668146105b2578063d2fcc001146105d2578063dd62ed3e146105f2578063f2fde38b14610638578063ff67af631461065857600080fd5b8063a19592181461053d578063a457c2d714610552578063a5ece94114610572578063a9059cbb1461059257600080fd5b80638d876440116100dc5780638d876440146104ea5780638da5cb5b146104ff578063906e9dd01461051d57806395d89b411461020957600080fd5b806366eb3785146104515780636dd3d39f1461046657806370a082311461049f578063715018a6146104d557600080fd5b8063313ce5671161019057806345596e2e1161015f57806345596e2e146103ac57806347062402146103cc57806349bd5a5e146103e35780635342acb41461040357806356b0899f1461043c57600080fd5b8063313ce5671461032e578063395093511461034a5780633bb2c67b1461036a5780633f3018931461038c57600080fd5b80631694505e116101cc5780631694505e146102aa57806318160ddd146102e257806323b872dd146102f75780632b14ca561461031757600080fd5b806306fdde0314610209578063095ea7b3146102465780630e155a82146102765780631299aec41461029557600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201825260058152642b20a222a960d91b6020820152905161023d919061153a565b60405180910390f35b34801561025257600080fd5b506102666102613660046115a0565b610688565b604051901515815260200161023d565b34801561028257600080fd5b50600c545b60405190815260200161023d565b3480156102a157600080fd5b50600b54610287565b3480156102b657600080fd5b506001546102ca906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156102ee57600080fd5b50600854610287565b34801561030357600080fd5b506102666103123660046115cc565b61069f565b34801561032357600080fd5b50600c546102879081565b34801561033a57600080fd5b506040516012815260200161023d565b34801561035657600080fd5b506102666103653660046115a0565b6106f1565b34801561037657600080fd5b5061038a61038536600461160d565b610728565b005b34801561039857600080fd5b5061038a6103a736600461164b565b610786565b3480156103b857600080fd5b5061038a6103c736600461166d565b6107bb565b3480156103d857600080fd5b50600b546102879081565b3480156103ef57600080fd5b506002546102ca906001600160a01b031681565b34801561040f57600080fd5b5061026661041e366004611686565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561044857600080fd5b50601054610287565b34801561045d57600080fd5b5061038a6107ea565b34801561047257600080fd5b50610266610481366004611686565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104ab57600080fd5b506102876104ba366004611686565b6001600160a01b031660009081526003602052604090205490565b3480156104e157600080fd5b5061038a61086a565b3480156104f657600080fd5b5061038a6108de565b34801561050b57600080fd5b506000546001600160a01b03166102ca565b34801561052957600080fd5b5061038a610538366004611686565b610981565b34801561054957600080fd5b5061038a6109cd565b34801561055e57600080fd5b5061026661056d3660046115a0565b610a26565b34801561057e57600080fd5b50600a546102ca906001600160a01b031681565b34801561059e57600080fd5b506102666105ad3660046115a0565b610a5d565b3480156105be57600080fd5b5061038a6105cd36600461160d565b610a6a565b3480156105de57600080fd5b5061038a6105ed36600461160d565b610abf565b3480156105fe57600080fd5b5061028761060d3660046116a3565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561064457600080fd5b5061038a610653366004611686565b610b14565b34801561066457600080fd5b50610266610673366004611686565b600f6020526000908152604090205460ff1681565b6000610695338484610bfe565b5060015b92915050565b60006106ac848484610d22565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546106e79186916106e29086906116e7565b610bfe565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106959185906106e29086906116fa565b6000546001600160a01b0316331461075b5760405162461bcd60e51b81526004016107529061170d565b60405180910390fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107b05760405162461bcd60e51b81526004016107529061170d565b600b91909155600c55565b6000546001600160a01b031633146107e55760405162461bcd60e51b81526004016107529061170d565b600755565b6000546001600160a01b031633146108145760405162461bcd60e51b81526004016107529061170d565b3060009081526003602052604090205461082d816111c5565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610866573d6000803e3d6000fd5b5050565b6000546001600160a01b031633146108945760405162461bcd60e51b81526004016107529061170d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109085760405162461bcd60e51b81526004016107529061170d565b600e5460ff6101009091041615156001146109655760405162461bcd60e51b815260206004820181905260248201527f7761726d55702066756e6374696f6e20616c72656164792064697361626c65646044820152606401610752565b600e805461ff001916905561097c4361ea606116fa565b601055565b6000546001600160a01b031633146109ab5760405162461bcd60e51b81526004016107529061170d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60105443908111610a195760405162461bcd60e51b8152602060048201526016602482015275383632b0b9b2903a393c9030b3b0b4b7103630ba32b960511b6044820152606401610752565b506000600b819055600c55565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106959185906106e29086906116e7565b6000610695338484610d22565b6000546001600160a01b03163314610a945760405162461bcd60e51b81526004016107529061170d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae95760405162461bcd60e51b81526004016107529061170d565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b3e5760405162461bcd60e51b81526004016107529061170d565b6001600160a01b038116610ba35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610752565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610752565b6001600160a01b038216610cc15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610752565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d865760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610752565b6001600160a01b038216610de85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610752565b60008111610e4a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610752565b6000546001600160a01b03848116911614801590610e7657506000546001600160a01b03838116911614155b8015610e9b57506001600160a01b03821660009081526006602052604090205460ff16155b15610f1a57600954610ecc82610ec6856001600160a01b031660009081526003602052604090205490565b9061131f565b1115610f1a5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e0000000000000000006044820152606401610752565b6001600160a01b03831660009081526003602052604081208054839290610f429084906116e7565b90915550506001600160a01b03831660009081526005602052604081205482919060ff16158015610f8c57506001600160a01b03841660009081526005602052604090205460ff16155b8015610f995750600b5415155b8015610fa65750600c5415155b15610faf575060015b600e5460ff6101009091041615156001148015610fda57506000546001600160a01b03868116911614155b1561103d576001600160a01b0384166000908152600f602052604090205460ff166110395760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08185b1b1bddd959081e595d608a1b6044820152606401610752565b5060005b8015611142576002546001600160a01b03858116911614611069576110628385611385565b9150611142565b6110738386611420565b6007546002546001600160a01b0316600090815260036020526040812054929450916110ac916103e8916110a691611436565b906114b8565b3060009081526003602052604090205490915081111580156110d15750600e5460ff16155b156110f757600e805460ff191660011790556110ec816114fa565b600e805460ff191690555b600e5460ff1661114057600e805460ff19166001179055611135611130306001600160a01b031660009081526003602052604090205490565b6114fa565b600e805460ff191690555b505b6001600160a01b0384166000908152600360205260408120805484929061116a9084906116fa565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111b691815260200190565b60405180910390a35050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111fa576111fa611742565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112779190611758565b8160018151811061128a5761128a611742565b6001600160a01b0392831660209182029290920101526001546112b09130911684610bfe565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906112e9908590600090869030904290600401611775565b600060405180830381600087803b15801561130357600080fd5b505af1158015611317573d6000803e3d6000fd5b505050505050565b60008061132c83856116fa565b90508381101561137e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610752565b9392505050565b6000806064600b600001548561139b91906117e6565b6113a591906117fd565b306000908152600360205260408120805492935083929091906113c99084906116fa565b909155505060405181815230906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a361141881856116e7565b949350505050565b6000806064600c600001548561139b91906117e6565b60008260000361144857506000610699565b600061145483856117e6565b90508261146185836117fd565b1461137e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610752565b600061137e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611503565b61082d816111c5565b600081836115245760405162461bcd60e51b8152600401610752919061153a565b50600061153184866117fd565b95945050505050565b600060208083528351808285015260005b818110156115675785810183015185820160400152820161154b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461159d57600080fd5b50565b600080604083850312156115b357600080fd5b82356115be81611588565b946020939093013593505050565b6000806000606084860312156115e157600080fd5b83356115ec81611588565b925060208401356115fc81611588565b929592945050506040919091013590565b6000806040838503121561162057600080fd5b823561162b81611588565b91506020830135801515811461164057600080fd5b809150509250929050565b6000806040838503121561165e57600080fd5b50508035926020909101359150565b60006020828403121561167f57600080fd5b5035919050565b60006020828403121561169857600080fd5b813561137e81611588565b600080604083850312156116b657600080fd5b82356116c181611588565b9150602083013561164081611588565b634e487b7160e01b600052601160045260246000fd5b81810381811115610699576106996116d1565b80820180821115610699576106996116d1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561176a57600080fd5b815161137e81611588565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117c55784516001600160a01b0316835293830193918301916001016117a0565b50506001600160a01b03969096166060850152505050608001529392505050565b8082028115828204841417610699576106996116d1565b60008261181a57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220529790478897ac09754ee11284a36a315048182a3a0571d83593c2a84879e16864736f6c63430008130033

Deployed Bytecode Sourcemap

4783:9546:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7015:83;;;;;;;;;;-1:-1:-1;7085:5:0;;;;;;;;;;;-1:-1:-1;;;7085:5:0;;;;7015:83;;;;7085:5;7015:83;:::i;:::-;;;;;;;;7852:161;;;;;;;;;;-1:-1:-1;7852:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7852:161:0;1023:187:1;9495:104:0;;;;;;;;;;-1:-1:-1;9574:7:0;:17;9495:104;;;1361:25:1;;;1349:2;1334:18;9495:104:0;1215:177:1;9385:102:0;;;;;;;;;;-1:-1:-1;9463:6:0;:16;9385:102;;4866:41;;;;;;;;;;-1:-1:-1;4866:41:0;;;;-1:-1:-1;;;;;4866:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4866:41:0;1397:229:1;7292:100:0;;;;;;;;;;-1:-1:-1;7372:12:0;;7292:100;;8021:266;;;;;;;;;;-1:-1:-1;8021:266:0;;;;;:::i;:::-;;:::i;5761:23::-;;;;;;;;;;-1:-1:-1;5761:23:0;;;;;;7201:83;;;;;;;;;;-1:-1:-1;7201:83:0;;5377:2;2234:36:1;;2222:2;2207:18;7201:83:0;2092:184:1;8295:215:0;;;;;;;;;;-1:-1:-1;8295:215:0;;;;;:::i;:::-;;:::i;11215:120::-;;;;;;;;;;-1:-1:-1;11215:120:0;;;;;:::i;:::-;;:::i;:::-;;9058:169;;;;;;;;;;-1:-1:-1;9058:169:0;;;;;:::i;:::-;;:::i;10589:98::-;;;;;;;;;;-1:-1:-1;10589:98:0;;;;;:::i;:::-;;:::i;5733:21::-;;;;;;;;;;-1:-1:-1;5733:21:0;;;;;;4916:28;;;;;;;;;;-1:-1:-1;4916:28:0;;;;-1:-1:-1;;;;;4916:28:0;;;10315:123;;;;;;;;;;-1:-1:-1;10315:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10403:27:0;10379:4;10403:27;;;:18;:27;;;;;;;;;10315:123;11122:85;;;;;;;;;;-1:-1:-1;11191:8:0;;11122:85;;13478:204;;;;;;;;;;;;;:::i;10446:135::-;;;;;;;;;;-1:-1:-1;10446:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;10540:33:0;10516:4;10540:33;;;:24;:33;;;;;;;;;10446:135;7400:118;;;;;;;;;;-1:-1:-1;7400:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7493:17:0;7466:7;7493:17;;;:8;:17;;;;;;;7400:118;3521:148;;;;;;;;;;;;;:::i;10695:193::-;;;;;;;;;;;;;:::i;3307:79::-;;;;;;;;;;-1:-1:-1;3345:7:0;3372:6;-1:-1:-1;;;;;3372:6:0;3307:79;;9235:142;;;;;;;;;;-1:-1:-1;9235:142:0;;;;;:::i;:::-;;:::i;10896:218::-;;;;;;;;;;;;;:::i;8518:225::-;;;;;;;;;;-1:-1:-1;8518:225:0;;;;;:::i;:::-;;:::i;5514:93::-;;;;;;;;;;-1:-1:-1;5514:93:0;;;;-1:-1:-1;;;;;5514:93:0;;;7526:167;;;;;;;;;;-1:-1:-1;7526:167:0;;;;;:::i;:::-;;:::i;8751:140::-;;;;;;;;;;-1:-1:-1;8751:140:0;;;;;:::i;:::-;;:::i;8899:151::-;;;;;;;;;;-1:-1:-1;8899:151:0;;;;;:::i;:::-;;:::i;7701:143::-;;;;;;;;;;-1:-1:-1;7701:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7809:18:0;;;7782:7;7809:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7701:143;3677:244;;;;;;;;;;-1:-1:-1;3677:244:0;;;;;:::i;:::-;;:::i;5879:43::-;;;;;;;;;;-1:-1:-1;5879:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7852:161;7927:4;7944:39;2719:10;7967:7;7976:6;7944:8;:39::i;:::-;-1:-1:-1;8001:4:0;7852:161;;;;;:::o;8021:266::-;8119:4;8136:36;8146:6;8154:9;8165:6;8136:9;:36::i;:::-;-1:-1:-1;;;;;8214:19:0;;;;;;:11;:19;;;;;;;;2719:10;8214:33;;;;;;;;;8183:74;;8192:6;;8214:42;;8250:6;;8214:42;:::i;:::-;8183:8;:74::i;:::-;-1:-1:-1;8275:4:0;8021:266;;;;;:::o;8295:215::-;2719:10;8383:4;8432:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8432:34:0;;;;;;;;;;8383:4;;8400:80;;8423:7;;8432:47;;8469:10;;8432:47;:::i;11215:120::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11299:20:0;;;::::1;;::::0;;;:11:::1;:20;::::0;;;;:28;;-1:-1:-1;;11299:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11215:120::o;9058:169::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;9150:6:::1;:28:::0;;;;9189:7:::1;:30:::0;9058:169::o;10589:98::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;10657:13:::1;:22:::0;10589:98::o;13478:204::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;13569:4:::1;13534:14;7493:17:::0;;;:8;:17;;;;;;13584:24:::1;7493:17:::0;13584:16:::1;:24::i;:::-;13625:16;::::0;13617:57:::1;::::0;-1:-1:-1;;;;;13625:16:0;;::::1;::::0;13652:21:::1;13617:57:::0;::::1;;;::::0;13625:16:::1;13617:57:::0;13625:16;13617:57;13652:21;13625:16;13617:57;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13525:157;13478:204::o:0;3521:148::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;3628:1:::1;3612:6:::0;;3591:40:::1;::::0;-1:-1:-1;;;;;3612:6:0;;::::1;::::0;3591:40:::1;::::0;3628:1;;3591:40:::1;3659:1;3642:19:::0;;-1:-1:-1;;;;;;3642:19:0::1;::::0;;3521:148::o;10695:193::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;10760:7:::1;::::0;::::1;;::::0;;::::1;;:15;;:7;:15;10752:60;;;::::0;-1:-1:-1;;;10752:60:0;;5435:2:1;10752:60:0::1;::::0;::::1;5417:21:1::0;;;5454:18;;;5447:30;5513:34;5493:18;;;5486:62;5565:18;;10752:60:0::1;5233:356:1::0;10752:60:0::1;10823:7;:15:::0;;-1:-1:-1;;10823:15:0::1;::::0;;10860:20:::1;:12;10875:5;10860:20;:::i;:::-;10849:8;:31:::0;10695:193::o;9235:142::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;9331:16:::1;:38:::0;;-1:-1:-1;;;;;;9331:38:0::1;-1:-1:-1::0;;;;;9331:38:0;;;::::1;::::0;;;::::1;::::0;;9235:142::o;10896:218::-;10993:8;;10962:12;;10993:23;-1:-1:-1;10985:58:0;;;;-1:-1:-1;;;10985:58:0;;5796:2:1;10985:58:0;;;5778:21:1;5835:2;5815:18;;;5808:30;-1:-1:-1;;;5854:18:1;;;5847:52;5916:18;;10985:58:0;5594:346:1;10985:58:0;-1:-1:-1;11073:1:0;11054:6;:20;;;11085:7;:21;10896:218::o;8518:225::-;2719:10;8611:4;8660:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8660:34:0;;;;;;;;;;8611:4;;8628:85;;8651:7;;8660:52;;8697:15;;8660:52;:::i;7526:167::-;7604:4;7621:42;2719:10;7645:9;7656:6;7621:9;:42::i;8751:140::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8836:36:0;;;::::1;;::::0;;;:18:::1;:36;::::0;;;;:47;;-1:-1:-1;;8836:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8751:140::o;8899:151::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8989:42:0;;;::::1;;::::0;;;:24:::1;:42;::::0;;;;:53;;-1:-1:-1;;8989:53:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8899:151::o;3677:244::-;3434:6;;-1:-1:-1;;;;;3434:6:0;2719:10;3434:22;3426:67;;;;-1:-1:-1;;;3426:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3766:22:0;::::1;3758:73;;;::::0;-1:-1:-1;;;3758:73:0;;6147:2:1;3758:73:0::1;::::0;::::1;6129:21:1::0;6186:2;6166:18;;;6159:30;6225:34;6205:18;;;6198:62;-1:-1:-1;;;6276:18:1;;;6269:36;6322:19;;3758:73:0::1;5945:402:1::0;3758:73:0::1;3868:6;::::0;;3847:38:::1;::::0;-1:-1:-1;;;;;3847:38:0;;::::1;::::0;3868:6;::::1;::::0;3847:38:::1;::::0;::::1;3896:6;:17:::0;;-1:-1:-1;;;;;;3896:17:0::1;-1:-1:-1::0;;;;;3896:17:0;;;::::1;::::0;;;::::1;::::0;;3677:244::o;11343:337::-;-1:-1:-1;;;;;11436:19:0;;11428:68;;;;-1:-1:-1;;;11428:68:0;;6554:2:1;11428:68:0;;;6536:21:1;6593:2;6573:18;;;6566:30;6632:34;6612:18;;;6605:62;-1:-1:-1;;;6683:18:1;;;6676:34;6727:19;;11428:68:0;6352:400:1;11428:68:0;-1:-1:-1;;;;;11515:21:0;;11507:68;;;;-1:-1:-1;;;11507:68:0;;6959:2:1;11507:68:0;;;6941:21:1;6998:2;6978:18;;;6971:30;7037:34;7017:18;;;7010:62;-1:-1:-1;;;7088:18:1;;;7081:32;7130:19;;11507:68:0;6757:398:1;11507:68:0;-1:-1:-1;;;;;11588:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11640:32;;1361:25:1;;;11640:32:0;;1334:18:1;11640:32:0;;;;;;;11343:337;;;:::o;11688:1782::-;-1:-1:-1;;;;;11810:18:0;;11802:68;;;;-1:-1:-1;;;11802:68:0;;7362:2:1;11802:68:0;;;7344:21:1;7401:2;7381:18;;;7374:30;7440:34;7420:18;;;7413:62;-1:-1:-1;;;7491:18:1;;;7484:35;7536:19;;11802:68:0;7160:401:1;11802:68:0;-1:-1:-1;;;;;11889:16:0;;11881:64;;;;-1:-1:-1;;;11881:64:0;;7768:2:1;11881:64:0;;;7750:21:1;7807:2;7787:18;;;7780:30;7846:34;7826:18;;;7819:62;-1:-1:-1;;;7897:18:1;;;7890:33;7940:19;;11881:64:0;7566:399:1;11881:64:0;11973:1;11964:6;:10;11956:64;;;;-1:-1:-1;;;11956:64:0;;8172:2:1;11956:64:0;;;8154:21:1;8211:2;8191:18;;;8184:30;8250:34;8230:18;;;8223:62;-1:-1:-1;;;8301:18:1;;;8294:39;8350:19;;11956:64:0;7970:405:1;11956:64:0;3345:7;3372:6;-1:-1:-1;;;;;12036:15:0;;;3372:6;;12036:15;;;;:32;;-1:-1:-1;3345:7:0;3372:6;-1:-1:-1;;;;;12055:13:0;;;3372:6;;12055:13;;12036:32;:65;;;;-1:-1:-1;;;;;;12073:28:0;;;;;;:24;:28;;;;;;;;12072:29;12036:65;12033:174;;;12154:13;;12125:25;12143:6;12125:13;12135:2;-1:-1:-1;;;;;7493:17:0;7466:7;7493:17;;;:8;:17;;;;;;;7400:118;12125:13;:17;;:25::i;:::-;:42;;12117:78;;;;-1:-1:-1;;;12117:78:0;;8582:2:1;12117:78:0;;;8564:21:1;8621:2;8601:18;;;8594:30;8660:25;8640:18;;;8633:53;8703:18;;12117:78:0;8380:347:1;12117:78:0;-1:-1:-1;;;;;12219:14:0;;;;;;:8;:14;;;;;:24;;12237:6;;12219:14;:24;;12237:6;;12219:24;:::i;:::-;;;;-1:-1:-1;;;;;;;12327:24:0;;12254:22;12327:24;;;:18;:24;;;;;;12279:6;;12254:22;12327:24;;12326:25;:52;;;;-1:-1:-1;;;;;;12356:22:0;;;;;;:18;:22;;;;;;;;12355:23;12326:52;:76;;;;-1:-1:-1;12382:6:0;:16;:20;;12326:76;:101;;;;-1:-1:-1;12406:7:0;:17;:21;;12326:101;12323:146;;;-1:-1:-1;12453:4:0;12323:146;12484:7;;;;;;;;:15;;:7;:15;:34;;;;-1:-1:-1;3345:7:0;3372:6;-1:-1:-1;;;;;12503:15:0;;;3372:6;;12503:15;;12484:34;12481:138;;;-1:-1:-1;;;;;12542:15:0;;;;;;:11;:15;;;;;;;;12534:43;;;;-1:-1:-1;;;12534:43:0;;8934:2:1;12534:43:0;;;8916:21:1;8973:2;8953:18;;;8946:30;-1:-1:-1;;;8992:18:1;;;8985:45;9047:18;;12534:43:0;8732:339:1;12534:43:0;-1:-1:-1;12602:5:0;12481:138;12634:7;12631:739;;;12666:13;;-1:-1:-1;;;;;12660:19:0;;;12666:13;;12660:19;12657:702;;12716:23;12728:6;12736:2;12716:11;:23::i;:::-;12699:40;;12657:702;;;12797:26;12810:6;12818:4;12797:12;:26::i;:::-;12899:13;;12880;;-1:-1:-1;;;;;12880:13:0;12842:25;7493:17;;;:8;:17;;;;;;12780:43;;-1:-1:-1;12842:25:0;12870:53;;12918:4;;12870:43;;:28;:43::i;:::-;:47;;:53::i;:::-;12966:4;7466:7;7493:17;;;:8;:17;;;;;;12842:81;;-1:-1:-1;12842:81:0;-1:-1:-1;12948:45:0;:58;;;;-1:-1:-1;12998:8:0;;;;12997:9;12948:58;12944:211;;;13031:8;:15;;-1:-1:-1;;13031:15:0;13042:4;13031:15;;;13069:27;13078:17;13069:8;:27::i;:::-;13119:8;:16;;-1:-1:-1;;13119:16:0;;;12944:211;13180:8;;;;13175:169;;13213:8;:15;;-1:-1:-1;;13213:15:0;13224:4;13213:15;;;13251:34;13260:24;13278:4;-1:-1:-1;;;;;7493:17:0;7466:7;7493:17;;;:8;:17;;;;;;;7400:118;13260:24;13251:8;:34::i;:::-;13308:8;:16;;-1:-1:-1;;13308:16:0;;;13175:169;12761:598;12657:702;-1:-1:-1;;;;;13382:12:0;;;;;;:8;:12;;;;;:30;;13398:14;;13382:12;:30;;13398:14;;13382:30;:::i;:::-;;;;;;;;13443:2;-1:-1:-1;;;;;13428:34:0;13437:4;-1:-1:-1;;;;;13428:34:0;;13447:14;13428:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;13428:34:0;;;;;;;;11791:1679;;11688:1782;;;:::o;13851:475::-;13941:16;;;13955:1;13941:16;;;;;;;;13917:21;;13941:16;;;;;;;;;;-1:-1:-1;13941:16:0;13917:40;;13986:4;13968;13973:1;13968:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13968:23:0;;;:7;;;;;;;;;;:23;;;;14012:15;;:22;;;-1:-1:-1;;;14012:22:0;;;;:15;;;;;:20;;:22;;;;;13968:7;;14012:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14002:4;14007:1;14002:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14002:32:0;;;:7;;;;;;;;;:32;14079:15;;14047:62;;14064:4;;14079:15;14097:11;14047:8;:62::i;:::-;14122:15;;:196;;-1:-1:-1;;;14122:196:0;;-1:-1:-1;;;;;14122:15:0;;;;:66;;:196;;14203:11;;14122:15;;14245:4;;14272;;14292:15;;14122:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13906:420;13851:475;:::o;1078:181::-;1136:7;;1168:5;1172:1;1168;:5;:::i;:::-;1156:17;;1197:1;1192;:6;;1184:46;;;;-1:-1:-1;;;1184:46:0;;10783:2:1;1184:46:0;;;10765:21:1;10822:2;10802:18;;;10795:30;10861:29;10841:18;;;10834:57;10908:18;;1184:46:0;10581:351:1;1184:46:0;1250:1;1078:181;-1:-1:-1;;;1078:181:0:o;9644:326::-;9712:7;9732:26;9789:3;9770:6;:16;;;9761:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9822:4;9805:23;;;;:8;:23;;;;;:45;;9732:60;;-1:-1:-1;9732:60:0;;9805:23;;;:45;;9732:60;;9805:45;:::i;:::-;;;;-1:-1:-1;;9866:50:0;;1361:25:1;;;9890:4:0;;-1:-1:-1;;;;;9866:50:0;;;;;1349:2:1;1334:18;9866:50:0;;;;;;;9935:26;9943:18;9935:6;:26;:::i;:::-;9927:35;9644:326;-1:-1:-1;;;;9644:326:0:o;9978:329::-;10047:7;10067:26;10125:3;10105:7;:17;;;10096:6;:26;;;;:::i;1611:250::-;1669:7;1693:1;1698;1693:6;1689:47;;-1:-1:-1;1723:1:0;1716:8;;1689:47;1748:9;1760:5;1764:1;1760;:5;:::i;:::-;1748:17;-1:-1:-1;1793:1:0;1784:5;1788:1;1748:17;1784:5;:::i;:::-;:10;1776:56;;;;-1:-1:-1;;;1776:56:0;;11534:2:1;1776:56:0;;;11516:21:1;11573:2;11553:18;;;11546:30;11612:34;11592:18;;;11585:62;-1:-1:-1;;;11663:18:1;;;11656:31;11704:19;;1776:56:0;11332:397:1;1869:132:0;1927:7;1954:39;1958:1;1961;1954:39;;;;;;;;;;;;;;;;;:3;:39::i;13690:153::-;13743:24;13760:6;13743:16;:24::i;2009:278::-;2095:7;2130:12;2123:5;2115:28;;;;-1:-1:-1;;;2115:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2154:9:0;2166:5;2170:1;2166;:5;:::i;:::-;2154:17;2009:278;-1:-1:-1;;;;;2009:278:0:o;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;622:70;567:131;:::o;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:416::-;2346:6;2354;2407:2;2395:9;2386:7;2382:23;2378:32;2375:52;;;2423:1;2420;2413:12;2375:52;2462:9;2449:23;2481:31;2506:5;2481:31;:::i;:::-;2531:5;-1:-1:-1;2588:2:1;2573:18;;2560:32;2630:15;;2623:23;2611:36;;2601:64;;2661:1;2658;2651:12;2601:64;2684:7;2674:17;;;2281:416;;;;;:::o;2702:248::-;2770:6;2778;2831:2;2819:9;2810:7;2806:23;2802:32;2799:52;;;2847:1;2844;2837:12;2799:52;-1:-1:-1;;2870:23:1;;;2940:2;2925:18;;;2912:32;;-1:-1:-1;2702:248:1:o;2955:180::-;3014:6;3067:2;3055:9;3046:7;3042:23;3038:32;3035:52;;;3083:1;3080;3073:12;3035:52;-1:-1:-1;3106:23:1;;2955:180;-1:-1:-1;2955:180:1:o;3348:247::-;3407:6;3460:2;3448:9;3439:7;3435:23;3431:32;3428:52;;;3476:1;3473;3466:12;3428:52;3515:9;3502:23;3534:31;3559:5;3534:31;:::i;4084:388::-;4152:6;4160;4213:2;4201:9;4192:7;4188:23;4184:32;4181:52;;;4229:1;4226;4219:12;4181:52;4268:9;4255:23;4287:31;4312:5;4287:31;:::i;:::-;4337:5;-1:-1:-1;4394:2:1;4379:18;;4366:32;4407:33;4366:32;4407:33;:::i;4477:127::-;4538:10;4533:3;4529:20;4526:1;4519:31;4569:4;4566:1;4559:15;4593:4;4590:1;4583:15;4609:128;4676:9;;;4697:11;;;4694:37;;;4711:18;;:::i;4742:125::-;4807:9;;;4828:10;;;4825:36;;;4841:18;;:::i;4872:356::-;5074:2;5056:21;;;5093:18;;;5086:30;5152:34;5147:2;5132:18;;5125:62;5219:2;5204:18;;4872:356::o;9208:127::-;9269:10;9264:3;9260:20;9257:1;9250:31;9300:4;9297:1;9290:15;9324:4;9321:1;9314:15;9340:251;9410:6;9463:2;9451:9;9442:7;9438:23;9434:32;9431:52;;;9479:1;9476;9469:12;9431:52;9511:9;9505:16;9530:31;9555:5;9530:31;:::i;9596:980::-;9858:4;9906:3;9895:9;9891:19;9937:6;9926:9;9919:25;9963:2;10001:6;9996:2;9985:9;9981:18;9974:34;10044:3;10039:2;10028:9;10024:18;10017:31;10068:6;10103;10097:13;10134:6;10126;10119:22;10172:3;10161:9;10157:19;10150:26;;10211:2;10203:6;10199:15;10185:29;;10232:1;10242:195;10256:6;10253:1;10250:13;10242:195;;;10321:13;;-1:-1:-1;;;;;10317:39:1;10305:52;;10412:15;;;;10377:12;;;;10353:1;10271:9;10242:195;;;-1:-1:-1;;;;;;;10493:32:1;;;;10488:2;10473:18;;10466:60;-1:-1:-1;;;10557:3:1;10542:19;10535:35;10454:3;9596:980;-1:-1:-1;;;9596:980:1:o;10937:168::-;11010:9;;;11041;;11058:15;;;11052:22;;11038:37;11028:71;;11079:18;;:::i;11110:217::-;11150:1;11176;11166:132;;11220:10;11215:3;11211:20;11208:1;11201:31;11255:4;11252:1;11245:15;11283:4;11280:1;11273:15;11166:132;-1:-1:-1;11312:9:1;;11110:217::o

Swarm Source

ipfs://529790478897ac09754ee11284a36a315048182a3a0571d83593c2a84879e168
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.