ETH Price: $2,293.70 (+1.30%)

Token

Orange Chicken (橙色鸡)
 

Overview

Max Total Supply

1,000,000 橙色鸡

Holders

7

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
11,654.160826201602716991 橙色鸡

Value
$0.00
0x8531c0f3256b5bf301fd26a6b13f7b13abc5baee
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:
OrangeChicken

Compiler Version
v0.8.17+commit.8df45f5f

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-29
*/

//Twitter: https://twitter.com/Orangechick_erc

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.17;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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;
    }
 
}
 
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;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract OrangeChicken is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = unicode"Orange Chicken";
    string private constant _symbol = unicode"橙色鸡";
    uint8 private constant _decimals = 18;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 5;   
    uint256 private _redisFeeOnSell = 0; 
    uint256 private _taxFeeOnSell = 25;  
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    address payable private _development = payable(0xb224e734210D12260BA3867018dfCC9acD526582); 
    address payable private _marketing = payable(0xb224e734210D12260BA3867018dfCC9acD526582); 
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 15000000 * 10**_decimals; 
    uint256 public _maxWalletSize = 15000000 * 10**_decimals; 
    uint256 public _swapTokensAtAmount = 10000 * 10**_decimals;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_development] = true;
        _isExcludedFromFee[_marketing] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketing.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _development || _msgSender() == _marketing);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _development || _msgSender() == _marketing);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 99, "Buy tax must be between 0% and 99%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "Sell tax must be between 0% and 99%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;
        
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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"}]

6080604052620000126012600a620004d8565b6200002190620f4240620004f0565b6200002f906000196200050a565b6200003d906000196200052d565b600655600060088190556005600955600a8181556019600b819055600c839055600d819055600e92909255600f91909155601080546001600160a01b031990811673b224e734210d12260ba3867018dfcc9acd5265829081179092556011805490911690911790556013805461ffff60a81b1916600160b01b179055620000c790601290620004d8565b620000d69062e4e1c0620004f0565b601455620000e76012600a620004d8565b620000f69062e4e1c0620004f0565b601555620001076012600a620004d8565b6200011590612710620004f0565b6016553480156200012557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000209919062000543565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027d919062000543565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f1919062000543565b601380546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601054851684528284208054821683179055601154909416835291208054909216179055336001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200039c6012600a620004d8565b620003ab90620f4240620004f0565b60405190815260200160405180910390a3506200056e565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200041a578160001904821115620003fe57620003fe620003c3565b808516156200040c57918102915b93841c9390800290620003de565b509250929050565b6000826200043357506001620004d2565b816200044257506000620004d2565b81600181146200045b5760028114620004665762000486565b6001915050620004d2565b60ff8411156200047a576200047a620003c3565b50506001821b620004d2565b5060208310610133831016604e8410600b8410161715620004ab575081810a620004d2565b620004b78383620003d9565b8060001904821115620004ce57620004ce620003c3565b0290505b92915050565b6000620004e960ff84168362000422565b9392505050565b8082028115828204841417620004d257620004d2620003c3565b6000826200052857634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620004d257620004d2620003c3565b6000602082840312156200055657600080fd5b81516001600160a01b0381168114620004e957600080fd5b611d74806200057e6000396000f3fe6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610474578063dd62ed3e14610494578063ea1644d5146104da578063f2fde38b146104fa57600080fd5b8063a2a957bb1461041f578063a9059cbb1461043f578063c3c8cd801461045f57600080fd5b80637d1db4a5146103635780638da5cb5b146103795780638f70ccf7146103975780638f9a55c0146103b757806395d89b41146103cd57806398a5c315146103ff57600080fd5b8063313ce5671161013e5780636fc3eaec116101185780636fc3eaec146102f957806370a082311461030e578063715018a61461032e57806374010ece1461034357600080fd5b8063313ce5671461029b57806349bd5a5e146102b75780636d8aa8f8146102d757600080fd5b806306fdde0314610191578063095ea7b3146101da5780631694505e1461020a57806318160ddd1461024257806323b872dd146102655780632fd689e31461028557600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600e81526d27b930b733b29021b434b1b5b2b760911b60208201525b6040516101d19190611897565b60405180910390f35b3480156101e657600080fd5b506101fa6101f53660046118fa565b61051a565b60405190151581526020016101d1565b34801561021657600080fd5b5060125461022a906001600160a01b031681565b6040516001600160a01b0390911681526020016101d1565b34801561024e57600080fd5b50610257610531565b6040519081526020016101d1565b34801561027157600080fd5b506101fa610280366004611926565b610551565b34801561029157600080fd5b5061025760165481565b3480156102a757600080fd5b50604051601281526020016101d1565b3480156102c357600080fd5b5060135461022a906001600160a01b031681565b3480156102e357600080fd5b506102f76102f236600461197c565b6105ba565b005b34801561030557600080fd5b506102f761060b565b34801561031a57600080fd5b50610257610329366004611997565b610656565b34801561033a57600080fd5b506102f7610678565b34801561034f57600080fd5b506102f761035e3660046119b4565b6106ec565b34801561036f57600080fd5b5061025760145481565b34801561038557600080fd5b506000546001600160a01b031661022a565b3480156103a357600080fd5b506102f76103b236600461197c565b61071b565b3480156103c357600080fd5b5061025760155481565b3480156103d957600080fd5b50604080518082019091526009815268e6a999e889b2e9b8a160b81b60208201526101c4565b34801561040b57600080fd5b506102f761041a3660046119b4565b610763565b34801561042b57600080fd5b506102f761043a3660046119cd565b610792565b34801561044b57600080fd5b506101fa61045a3660046118fa565b610948565b34801561046b57600080fd5b506102f7610955565b34801561048057600080fd5b506102f761048f3660046119ff565b6109a9565b3480156104a057600080fd5b506102576104af366004611a83565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104e657600080fd5b506102f76104f53660046119b4565b610a4a565b34801561050657600080fd5b506102f7610515366004611997565b610a79565b6000610527338484610b63565b5060015b92915050565b600061053f6012600a611bb6565b61054c90620f4240611bc5565b905090565b600061055e848484610c87565b6105b084336105ab85604051806060016040528060288152602001611d17602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611129565b610b63565b5060019392505050565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016105e490611bdc565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061064057506011546001600160a01b0316336001600160a01b0316145b61064957600080fd5b4761065381611163565b50565b6001600160a01b03811660009081526002602052604081205461052b906111a1565b6000546001600160a01b031633146106a25760405162461bcd60e51b81526004016105e490611bdc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107165760405162461bcd60e51b81526004016105e490611bdc565b601455565b6000546001600160a01b031633146107455760405162461bcd60e51b81526004016105e490611bdc565b60138054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461078d5760405162461bcd60e51b81526004016105e490611bdc565b601655565b6000546001600160a01b031633146107bc5760405162461bcd60e51b81526004016105e490611bdc565b600484111561081b5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b60648201526084016105e4565b60638211156108775760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642039604482015261392560f01b60648201526084016105e4565b60048311156108d75760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b60648201526084016105e4565b60638111156109345760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239392560e81b60648201526084016105e4565b600893909355600a91909155600955600b55565b6000610527338484610c87565b6010546001600160a01b0316336001600160a01b0316148061098a57506011546001600160a01b0316336001600160a01b0316145b61099357600080fd5b600061099e30610656565b905061065381611225565b6000546001600160a01b031633146109d35760405162461bcd60e51b81526004016105e490611bdc565b60005b82811015610a445781600560008686858181106109f5576109f5611c11565b9050602002016020810190610a0a9190611997565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a3c81611c27565b9150506109d6565b50505050565b6000546001600160a01b03163314610a745760405162461bcd60e51b81526004016105e490611bdc565b601555565b6000546001600160a01b03163314610aa35760405162461bcd60e51b81526004016105e490611bdc565b6001600160a01b038116610b085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e4565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ceb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e4565b6001600160a01b038216610d4d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e4565b60008111610daf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e4565b6000546001600160a01b03848116911614801590610ddb57506000546001600160a01b03838116911614155b1561102257601354600160a01b900460ff16610e74576000546001600160a01b03848116911614610e745760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105e4565b601454811115610ec65760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105e4565b6013546001600160a01b03838116911614610f4b5760155481610ee884610656565b610ef29190611c40565b10610f4b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105e4565b6000610f5630610656565b601654601454919250821015908210610f6f5760145491505b808015610f865750601354600160a81b900460ff16155b8015610fa057506013546001600160a01b03868116911614155b8015610fb55750601354600160b01b900460ff165b8015610fda57506001600160a01b03851660009081526005602052604090205460ff16155b8015610fff57506001600160a01b03841660009081526005602052604090205460ff16155b1561101f5761100d82611225565b47801561101d5761101d47611163565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061106457506001600160a01b03831660009081526005602052604090205460ff165b8061109657506013546001600160a01b0385811691161480159061109657506013546001600160a01b03848116911614155b156110a35750600061111d565b6013546001600160a01b0385811691161480156110ce57506012546001600160a01b03848116911614155b156110e057600854600c55600954600d555b6013546001600160a01b03848116911614801561110b57506012546001600160a01b03858116911614155b1561111d57600a54600c55600b54600d555b610a448484848461139f565b6000818484111561114d5760405162461bcd60e51b81526004016105e49190611897565b50600061115a8486611c53565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561119d573d6000803e3d6000fd5b5050565b60006006548211156112085760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105e4565b60006112126113cd565b905061121e83826113f0565b9392505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061126d5761126d611c11565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ea9190611c66565b816001815181106112fd576112fd611c11565b6001600160a01b0392831660209182029290920101526012546113239130911684610b63565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135c908590600090869030904290600401611c83565b600060405180830381600087803b15801561137657600080fd5b505af115801561138a573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b806113ac576113ac611432565b6113b7848484611460565b80610a4457610a44600e54600c55600f54600d55565b60008060006113da611557565b90925090506113e982826113f0565b9250505090565b600061121e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d6565b600c541580156114425750600d54155b1561144957565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061147287611604565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114a49087611661565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114d390866116a3565b6001600160a01b0389166000908152600260205260409020556114f581611702565b6114ff848361174c565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161154491815260200190565b60405180910390a3505050505050505050565b60065460009081908161156c6012600a611bb6565b61157990620f4240611bc5565b90506115a061158a6012600a611bb6565b61159790620f4240611bc5565b600654906113f0565b8210156115cd576006546115b66012600a611bb6565b6115c390620f4240611bc5565b9350935050509091565b90939092509050565b600081836115f75760405162461bcd60e51b81526004016105e49190611897565b50600061115a8486611cf4565b60008060008060008060008060006116218a600c54600d54611770565b92509250925060006116316113cd565b905060008060006116448e8787876117c5565b919e509c509a509598509396509194505050505091939550919395565b600061121e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611129565b6000806116b08385611c40565b90508381101561121e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e4565b600061170c6113cd565b9050600061171a8383611815565b3060009081526002602052604090205490915061173790826116a3565b30600090815260026020526040902055505050565b6006546117599083611661565b60065560075461176990826116a3565b6007555050565b600080808061178a60646117848989611815565b906113f0565b9050600061179d60646117848a89611815565b905060006117b5826117af8b86611661565b90611661565b9992985090965090945050505050565b60008080806117d48886611815565b905060006117e28887611815565b905060006117f08888611815565b90506000611802826117af8686611661565b939b939a50919850919650505050505050565b6000826000036118275750600061052b565b60006118338385611bc5565b9050826118408583611cf4565b1461121e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e4565b600060208083528351808285015260005b818110156118c4578581018301518582016040015282016118a8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461065357600080fd5b6000806040838503121561190d57600080fd5b8235611918816118e5565b946020939093013593505050565b60008060006060848603121561193b57600080fd5b8335611946816118e5565b92506020840135611956816118e5565b929592945050506040919091013590565b8035801515811461197757600080fd5b919050565b60006020828403121561198e57600080fd5b61121e82611967565b6000602082840312156119a957600080fd5b813561121e816118e5565b6000602082840312156119c657600080fd5b5035919050565b600080600080608085870312156119e357600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611a1457600080fd5b833567ffffffffffffffff80821115611a2c57600080fd5b818601915086601f830112611a4057600080fd5b813581811115611a4f57600080fd5b8760208260051b8501011115611a6457600080fd5b602092830195509350611a7a9186019050611967565b90509250925092565b60008060408385031215611a9657600080fd5b8235611aa1816118e5565b91506020830135611ab1816118e5565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b0d578160001904821115611af357611af3611abc565b80851615611b0057918102915b93841c9390800290611ad7565b509250929050565b600082611b245750600161052b565b81611b315750600061052b565b8160018114611b475760028114611b5157611b6d565b600191505061052b565b60ff841115611b6257611b62611abc565b50506001821b61052b565b5060208310610133831016604e8410600b8410161715611b90575081810a61052b565b611b9a8383611ad2565b8060001904821115611bae57611bae611abc565b029392505050565b600061121e60ff841683611b15565b808202811582820484141761052b5761052b611abc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611c3957611c39611abc565b5060010190565b8082018082111561052b5761052b611abc565b8181038181111561052b5761052b611abc565b600060208284031215611c7857600080fd5b815161121e816118e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cd35784516001600160a01b031683529383019391830191600101611cae565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d1157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220656c4feb6bd61e72536b906697dc883c05d837424d3a784430fb9fcbe650f29c64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610474578063dd62ed3e14610494578063ea1644d5146104da578063f2fde38b146104fa57600080fd5b8063a2a957bb1461041f578063a9059cbb1461043f578063c3c8cd801461045f57600080fd5b80637d1db4a5146103635780638da5cb5b146103795780638f70ccf7146103975780638f9a55c0146103b757806395d89b41146103cd57806398a5c315146103ff57600080fd5b8063313ce5671161013e5780636fc3eaec116101185780636fc3eaec146102f957806370a082311461030e578063715018a61461032e57806374010ece1461034357600080fd5b8063313ce5671461029b57806349bd5a5e146102b75780636d8aa8f8146102d757600080fd5b806306fdde0314610191578063095ea7b3146101da5780631694505e1461020a57806318160ddd1461024257806323b872dd146102655780632fd689e31461028557600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600e81526d27b930b733b29021b434b1b5b2b760911b60208201525b6040516101d19190611897565b60405180910390f35b3480156101e657600080fd5b506101fa6101f53660046118fa565b61051a565b60405190151581526020016101d1565b34801561021657600080fd5b5060125461022a906001600160a01b031681565b6040516001600160a01b0390911681526020016101d1565b34801561024e57600080fd5b50610257610531565b6040519081526020016101d1565b34801561027157600080fd5b506101fa610280366004611926565b610551565b34801561029157600080fd5b5061025760165481565b3480156102a757600080fd5b50604051601281526020016101d1565b3480156102c357600080fd5b5060135461022a906001600160a01b031681565b3480156102e357600080fd5b506102f76102f236600461197c565b6105ba565b005b34801561030557600080fd5b506102f761060b565b34801561031a57600080fd5b50610257610329366004611997565b610656565b34801561033a57600080fd5b506102f7610678565b34801561034f57600080fd5b506102f761035e3660046119b4565b6106ec565b34801561036f57600080fd5b5061025760145481565b34801561038557600080fd5b506000546001600160a01b031661022a565b3480156103a357600080fd5b506102f76103b236600461197c565b61071b565b3480156103c357600080fd5b5061025760155481565b3480156103d957600080fd5b50604080518082019091526009815268e6a999e889b2e9b8a160b81b60208201526101c4565b34801561040b57600080fd5b506102f761041a3660046119b4565b610763565b34801561042b57600080fd5b506102f761043a3660046119cd565b610792565b34801561044b57600080fd5b506101fa61045a3660046118fa565b610948565b34801561046b57600080fd5b506102f7610955565b34801561048057600080fd5b506102f761048f3660046119ff565b6109a9565b3480156104a057600080fd5b506102576104af366004611a83565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104e657600080fd5b506102f76104f53660046119b4565b610a4a565b34801561050657600080fd5b506102f7610515366004611997565b610a79565b6000610527338484610b63565b5060015b92915050565b600061053f6012600a611bb6565b61054c90620f4240611bc5565b905090565b600061055e848484610c87565b6105b084336105ab85604051806060016040528060288152602001611d17602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611129565b610b63565b5060019392505050565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016105e490611bdc565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061064057506011546001600160a01b0316336001600160a01b0316145b61064957600080fd5b4761065381611163565b50565b6001600160a01b03811660009081526002602052604081205461052b906111a1565b6000546001600160a01b031633146106a25760405162461bcd60e51b81526004016105e490611bdc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107165760405162461bcd60e51b81526004016105e490611bdc565b601455565b6000546001600160a01b031633146107455760405162461bcd60e51b81526004016105e490611bdc565b60138054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b0316331461078d5760405162461bcd60e51b81526004016105e490611bdc565b601655565b6000546001600160a01b031633146107bc5760405162461bcd60e51b81526004016105e490611bdc565b600484111561081b5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b60648201526084016105e4565b60638211156108775760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642039604482015261392560f01b60648201526084016105e4565b60048311156108d75760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b60648201526084016105e4565b60638111156109345760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239392560e81b60648201526084016105e4565b600893909355600a91909155600955600b55565b6000610527338484610c87565b6010546001600160a01b0316336001600160a01b0316148061098a57506011546001600160a01b0316336001600160a01b0316145b61099357600080fd5b600061099e30610656565b905061065381611225565b6000546001600160a01b031633146109d35760405162461bcd60e51b81526004016105e490611bdc565b60005b82811015610a445781600560008686858181106109f5576109f5611c11565b9050602002016020810190610a0a9190611997565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a3c81611c27565b9150506109d6565b50505050565b6000546001600160a01b03163314610a745760405162461bcd60e51b81526004016105e490611bdc565b601555565b6000546001600160a01b03163314610aa35760405162461bcd60e51b81526004016105e490611bdc565b6001600160a01b038116610b085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e4565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e4565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ceb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e4565b6001600160a01b038216610d4d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e4565b60008111610daf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e4565b6000546001600160a01b03848116911614801590610ddb57506000546001600160a01b03838116911614155b1561102257601354600160a01b900460ff16610e74576000546001600160a01b03848116911614610e745760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105e4565b601454811115610ec65760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105e4565b6013546001600160a01b03838116911614610f4b5760155481610ee884610656565b610ef29190611c40565b10610f4b5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105e4565b6000610f5630610656565b601654601454919250821015908210610f6f5760145491505b808015610f865750601354600160a81b900460ff16155b8015610fa057506013546001600160a01b03868116911614155b8015610fb55750601354600160b01b900460ff165b8015610fda57506001600160a01b03851660009081526005602052604090205460ff16155b8015610fff57506001600160a01b03841660009081526005602052604090205460ff16155b1561101f5761100d82611225565b47801561101d5761101d47611163565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061106457506001600160a01b03831660009081526005602052604090205460ff165b8061109657506013546001600160a01b0385811691161480159061109657506013546001600160a01b03848116911614155b156110a35750600061111d565b6013546001600160a01b0385811691161480156110ce57506012546001600160a01b03848116911614155b156110e057600854600c55600954600d555b6013546001600160a01b03848116911614801561110b57506012546001600160a01b03858116911614155b1561111d57600a54600c55600b54600d555b610a448484848461139f565b6000818484111561114d5760405162461bcd60e51b81526004016105e49190611897565b50600061115a8486611c53565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561119d573d6000803e3d6000fd5b5050565b60006006548211156112085760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105e4565b60006112126113cd565b905061121e83826113f0565b9392505050565b6013805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061126d5761126d611c11565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ea9190611c66565b816001815181106112fd576112fd611c11565b6001600160a01b0392831660209182029290920101526012546113239130911684610b63565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061135c908590600090869030904290600401611c83565b600060405180830381600087803b15801561137657600080fd5b505af115801561138a573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b806113ac576113ac611432565b6113b7848484611460565b80610a4457610a44600e54600c55600f54600d55565b60008060006113da611557565b90925090506113e982826113f0565b9250505090565b600061121e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d6565b600c541580156114425750600d54155b1561144957565b600c8054600e55600d8054600f5560009182905555565b60008060008060008061147287611604565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506114a49087611661565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546114d390866116a3565b6001600160a01b0389166000908152600260205260409020556114f581611702565b6114ff848361174c565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161154491815260200190565b60405180910390a3505050505050505050565b60065460009081908161156c6012600a611bb6565b61157990620f4240611bc5565b90506115a061158a6012600a611bb6565b61159790620f4240611bc5565b600654906113f0565b8210156115cd576006546115b66012600a611bb6565b6115c390620f4240611bc5565b9350935050509091565b90939092509050565b600081836115f75760405162461bcd60e51b81526004016105e49190611897565b50600061115a8486611cf4565b60008060008060008060008060006116218a600c54600d54611770565b92509250925060006116316113cd565b905060008060006116448e8787876117c5565b919e509c509a509598509396509194505050505091939550919395565b600061121e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611129565b6000806116b08385611c40565b90508381101561121e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e4565b600061170c6113cd565b9050600061171a8383611815565b3060009081526002602052604090205490915061173790826116a3565b30600090815260026020526040902055505050565b6006546117599083611661565b60065560075461176990826116a3565b6007555050565b600080808061178a60646117848989611815565b906113f0565b9050600061179d60646117848a89611815565b905060006117b5826117af8b86611661565b90611661565b9992985090965090945050505050565b60008080806117d48886611815565b905060006117e28887611815565b905060006117f08888611815565b90506000611802826117af8686611661565b939b939a50919850919650505050505050565b6000826000036118275750600061052b565b60006118338385611bc5565b9050826118408583611cf4565b1461121e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e4565b600060208083528351808285015260005b818110156118c4578581018301518582016040015282016118a8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461065357600080fd5b6000806040838503121561190d57600080fd5b8235611918816118e5565b946020939093013593505050565b60008060006060848603121561193b57600080fd5b8335611946816118e5565b92506020840135611956816118e5565b929592945050506040919091013590565b8035801515811461197757600080fd5b919050565b60006020828403121561198e57600080fd5b61121e82611967565b6000602082840312156119a957600080fd5b813561121e816118e5565b6000602082840312156119c657600080fd5b5035919050565b600080600080608085870312156119e357600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611a1457600080fd5b833567ffffffffffffffff80821115611a2c57600080fd5b818601915086601f830112611a4057600080fd5b813581811115611a4f57600080fd5b8760208260051b8501011115611a6457600080fd5b602092830195509350611a7a9186019050611967565b90509250925092565b60008060408385031215611a9657600080fd5b8235611aa1816118e5565b91506020830135611ab1816118e5565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611b0d578160001904821115611af357611af3611abc565b80851615611b0057918102915b93841c9390800290611ad7565b509250929050565b600082611b245750600161052b565b81611b315750600061052b565b8160018114611b475760028114611b5157611b6d565b600191505061052b565b60ff841115611b6257611b62611abc565b50506001821b61052b565b5060208310610133831016604e8410600b8410161715611b90575081810a61052b565b611b9a8383611ad2565b8060001904821115611bae57611bae611abc565b029392505050565b600061121e60ff841683611b15565b808202811582820484141761052b5761052b611abc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611c3957611c39611abc565b5060010190565b8082018082111561052b5761052b611abc565b8181038181111561052b5761052b611abc565b600060208284031215611c7857600080fd5b815161121e816118e5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cd35784516001600160a01b031683529383019391830191600101611cae565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611d1157634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220656c4feb6bd61e72536b906697dc883c05d837424d3a784430fb9fcbe650f29c64736f6c63430008110033

Deployed Bytecode Sourcemap

4146:13396:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6604:83;;;;;;;;;;-1:-1:-1;6674:5:0;;;;;;;;;;;;-1:-1:-1;;;6674:5:0;;;;6604:83;;;;;;;:::i;:::-;;;;;;;;7536:193;;;;;;;;;;-1:-1:-1;7536:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7536:193:0;1023:187:1;5436:41:0;;;;;;;;;;-1:-1:-1;5436:41:0;;;;-1:-1:-1;;;;;5436:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5436:41:0;1215:229:1;6884:95:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;6884:95:0;1449:177:1;7738:446:0;;;;;;;;;;-1:-1:-1;7738:446:0;;;;;:::i;:::-;;:::i;5754:58::-;;;;;;;;;;;;;;;;6792:83;;;;;;;;;;-1:-1:-1;6792:83:0;;4399:2;2234:36:1;;2222:2;2207:18;6792:83:0;2092:184:1;5484:28:0;;;;;;;;;;-1:-1:-1;5484:28:0;;;;-1:-1:-1;;;;;5484:28:0;;;16941:101;;;;;;;;;;-1:-1:-1;16941:101:0;;;;;:::i;:::-;;:::i;:::-;;12455:221;;;;;;;;;;;;;:::i;6988:138::-;;;;;;;;;;-1:-1:-1;6988:138:0;;;;;:::i;:::-;;:::i;1619:148::-;;;;;;;;;;;;;:::i;17051:121::-;;;;;;;;;;-1:-1:-1;17051:121:0;;;;;:::i;:::-;;:::i;5628:54::-;;;;;;;;;;;;;;;;1403:79;;;;;;;;;;-1:-1:-1;1441:7:0;1468:6;-1:-1:-1;;;;;1468:6:0;1403:79;;12116:101;;;;;;;;;;-1:-1:-1;12116:101:0;;;;;:::i;:::-;;:::i;5690:56::-;;;;;;;;;;;;;;;;6696:87;;;;;;;;;;-1:-1:-1;6768:7:0;;;;;;;;;;;;-1:-1:-1;;;6768:7:0;;;;6696:87;;16793:139;;;;;;;;;;-1:-1:-1;16793:139:0;;;;;:::i;:::-;;:::i;16091:693::-;;;;;;;;;;-1:-1:-1;16091:693:0;;;;;:::i;:::-;;:::i;7135:199::-;;;;;;;;;;-1:-1:-1;7135:199:0;;;;;:::i;:::-;;:::i;12225:222::-;;;;;;;;;;;;;:::i;17303:234::-;;;;;;;;;;-1:-1:-1;17303:234:0;;;;;:::i;:::-;;:::i;7343:184::-;;;;;;;;;;-1:-1:-1;7343:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7492:18:0;;;7460:7;7492:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7343:184;17180:115;;;;;;;;;;-1:-1:-1;17180:115:0;;;;;:::i;:::-;;:::i;1776:244::-;;;;;;;;;;-1:-1:-1;1776:244:0;;;;;:::i;:::-;;:::i;7536:193::-;7638:4;7660:39;232:10;7683:7;7692:6;7660:8;:39::i;:::-;-1:-1:-1;7717:4:0;7536:193;;;;;:::o;6884:95::-;6937:7;4737:13;4399:2;4737;:13;:::i;:::-;4727:23;;:7;:23;:::i;:::-;6957:14;;6884:95;:::o;7738:446::-;7870:4;7887:36;7897:6;7905:9;7916:6;7887:9;:36::i;:::-;7934:220;7957:6;232:10;8005:138;8061:6;8005:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8005:19:0;;;;;;:11;:19;;;;;;;;232:10;8005:33;;;;;;;;;;:37;:138::i;:::-;7934:8;:220::i;:::-;-1:-1:-1;8172:4:0;7738:446;;;;;:::o;16941:101::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;;;;;;;;;17008:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17008:26:0::1;-1:-1:-1::0;;;;17008:26:0;;::::1;::::0;;;::::1;::::0;;16941:101::o;12455:221::-;12521:12;;-1:-1:-1;;;;;12521:12:0;232:10;-1:-1:-1;;;;;12505:28:0;;:58;;;-1:-1:-1;12553:10:0;;-1:-1:-1;;;;;12553:10:0;232;-1:-1:-1;;;;;12537:26:0;;12505:58;12497:67;;;;;;12604:21;12636:32;12604:21;12636:12;:32::i;:::-;12486:190;12455:221::o;6988:138::-;-1:-1:-1;;;;;7101:16:0;;7054:7;7101:16;;;:7;:16;;;;;;7081:37;;:19;:37::i;1619:148::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;1726:1:::1;1710:6:::0;;1689:40:::1;::::0;-1:-1:-1;;;;;1710:6:0;;::::1;::::0;1689:40:::1;::::0;1726:1;;1689:40:::1;1757:1;1740:19:::0;;-1:-1:-1;;;;;;1740:19:0::1;::::0;;1619:148::o;17051:121::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;17128:12:::1;:26:::0;17051:121::o;12116:101::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;12183:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12183:26:0::1;-1:-1:-1::0;;;;12183:26:0;;::::1;::::0;;;::::1;::::0;;12116:101::o;16793:139::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;16884:19:::1;:40:::0;16793:139::o;16091:693::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;16272:1:::1;16255:13;:18;;16225:90;;;::::0;-1:-1:-1;;;16225:90:0;;7004:2:1;16225:90:0::1;::::0;::::1;6986:21:1::0;7043:2;7023:18;;;7016:30;7082:34;7062:18;;;7055:62;-1:-1:-1;;;7133:18:1;;;7126:35;7178:19;;16225:90:0::1;6802:401:1::0;16225:90:0::1;16369:2;16354:11;:17;;16326:84;;;::::0;-1:-1:-1;;;16326:84:0;;7410:2:1;16326:84:0::1;::::0;::::1;7392:21:1::0;7449:2;7429:18;;;7422:30;7488:34;7468:18;;;7461:62;-1:-1:-1;;;7539:18:1;;;7532:32;7581:19;;16326:84:0::1;7208:398:1::0;16326:84:0::1;16470:1;16452:14;:19;;16421:93;;;::::0;-1:-1:-1;;;16421:93:0;;7813:2:1;16421:93:0::1;::::0;::::1;7795:21:1::0;7852:2;7832:18;;;7825:30;7891:34;7871:18;;;7864:62;-1:-1:-1;;;7942:18:1;;;7935:36;7988:19;;16421:93:0::1;7611:402:1::0;16421:93:0::1;16570:2;16554:12;:18;;16525:87;;;::::0;-1:-1:-1;;;16525:87:0;;8220:2:1;16525:87:0::1;::::0;::::1;8202:21:1::0;8259:2;8239:18;;;8232:30;8298:34;8278:18;;;8271:62;-1:-1:-1;;;8349:18:1;;;8342:33;8392:19;;16525:87:0::1;8018:399:1::0;16525:87:0::1;16625:14;:30:::0;;;;16666:15:::1;:32:::0;;;;16709:12:::1;:26:::0;16746:13:::1;:28:::0;16091:693::o;7135:199::-;7240:4;7262:42;232:10;7286:9;7297:6;7262:9;:42::i;12225:222::-;12291:12;;-1:-1:-1;;;;;12291:12:0;232:10;-1:-1:-1;;;;;12275:28:0;;:58;;;-1:-1:-1;12323:10:0;;-1:-1:-1;;;;;12323:10:0;232;-1:-1:-1;;;;;12307:26:0;;12275:58;12267:67;;;;;;12345:23;12371:24;12389:4;12371:9;:24::i;:::-;12345:50;;12406:33;12423:15;12406:16;:33::i;17303:234::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;17420:9:::1;17416:114;17435:19:::0;;::::1;17416:114;;;17510:8;17476:18;:31;17495:8;;17504:1;17495:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17476:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17476:31:0;:42;;-1:-1:-1;;17476:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17456:3;::::1;::::0;::::1;:::i;:::-;;;;17416:114;;;;17303:234:::0;;;:::o;17180:115::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;17257:14:::1;:30:::0;17180:115::o;1776:244::-;1531:6;;-1:-1:-1;;;;;1531:6:0;232:10;1531:22;1523:67;;;;-1:-1:-1;;;1523:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1865:22:0;::::1;1857:73;;;::::0;-1:-1:-1;;;1857:73:0;;8896:2:1;1857:73:0::1;::::0;::::1;8878:21:1::0;8935:2;8915:18;;;8908:30;8974:34;8954:18;;;8947:62;-1:-1:-1;;;9025:18:1;;;9018:36;9071:19;;1857:73:0::1;8694:402:1::0;1857:73:0::1;1967:6;::::0;;1946:38:::1;::::0;-1:-1:-1;;;;;1946:38:0;;::::1;::::0;1967:6;::::1;::::0;1946:38:::1;::::0;::::1;1995:6;:17:::0;;-1:-1:-1;;;;;;1995:17:0::1;-1:-1:-1::0;;;;;1995:17:0;;;::::1;::::0;;;::::1;::::0;;1776:244::o;8881:369::-;-1:-1:-1;;;;;9008:19:0;;9000:68;;;;-1:-1:-1;;;9000:68:0;;9303:2:1;9000:68:0;;;9285:21:1;9342:2;9322:18;;;9315:30;9381:34;9361:18;;;9354:62;-1:-1:-1;;;9432:18:1;;;9425:34;9476:19;;9000:68:0;9101:400:1;9000:68:0;-1:-1:-1;;;;;9087:21:0;;9079:68;;;;-1:-1:-1;;;9079:68:0;;9708:2:1;9079:68:0;;;9690:21:1;9747:2;9727:18;;;9720:30;9786:34;9766:18;;;9759:62;-1:-1:-1;;;9837:18:1;;;9830:32;9879:19;;9079:68:0;9506:398:1;9079:68:0;-1:-1:-1;;;;;9158:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9210:32;;1595:25:1;;;9210:32:0;;1568:18:1;9210:32:0;;;;;;;8881:369;;;:::o;9259:2256::-;-1:-1:-1;;;;;9381:18:0;;9373:68;;;;-1:-1:-1;;;9373:68:0;;10111:2:1;9373:68:0;;;10093:21:1;10150:2;10130:18;;;10123:30;10189:34;10169:18;;;10162:62;-1:-1:-1;;;10240:18:1;;;10233:35;10285:19;;9373:68:0;9909:401:1;9373:68:0;-1:-1:-1;;;;;9460:16:0;;9452:64;;;;-1:-1:-1;;;9452:64:0;;10517:2:1;9452:64:0;;;10499:21:1;10556:2;10536:18;;;10529:30;10595:34;10575:18;;;10568:62;-1:-1:-1;;;10646:18:1;;;10639:33;10689:19;;9452:64:0;10315:399:1;9452:64:0;9544:1;9535:6;:10;9527:64;;;;-1:-1:-1;;;9527:64:0;;10921:2:1;9527:64:0;;;10903:21:1;10960:2;10940:18;;;10933:30;10999:34;10979:18;;;10972:62;-1:-1:-1;;;11050:18:1;;;11043:39;11099:19;;9527:64:0;10719:405:1;9527:64:0;1441:7;1468:6;-1:-1:-1;;;;;9609:15:0;;;1468:6;;9609:15;;;;:32;;-1:-1:-1;1441:7:0;1468:6;-1:-1:-1;;;;;9628:13:0;;;1468:6;;9628:13;;9609:32;9605:1178;;;9699:11;;-1:-1:-1;;;9699:11:0;;;;9694:144;;1441:7;1468:6;-1:-1:-1;;;;;9739:15:0;;;1468:6;;9739:15;9731:91;;;;-1:-1:-1;;;9731:91:0;;11331:2:1;9731:91:0;;;11313:21:1;11370:2;11350:18;;;11343:30;11409:34;11389:18;;;11382:62;11480:33;11460:18;;;11453:61;11531:19;;9731:91:0;11129:427:1;9731:91:0;9873:12;;9863:6;:22;;9855:63;;;;-1:-1:-1;;;9855:63:0;;11763:2:1;9855:63:0;;;11745:21:1;11802:2;11782:18;;;11775:30;11841;11821:18;;;11814:58;11889:18;;9855:63:0;11561:352:1;9855:63:0;9945:13;;-1:-1:-1;;;;;9939:19:0;;;9945:13;;9939:19;9936:146;;10012:14;;10003:6;9987:13;9997:2;9987:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9979:87;;;;-1:-1:-1;;;9979:87:0;;12250:2:1;9979:87:0;;;12232:21:1;12289:2;12269:18;;;12262:30;12328:34;12308:18;;;12301:62;-1:-1:-1;;;12379:18:1;;;12372:33;12422:19;;9979:87:0;12048:399:1;9979:87:0;10099:28;10130:24;10148:4;10130:9;:24::i;:::-;10208:19;;10272:12;;10099:55;;-1:-1:-1;10184:43:0;;;;10248:36;;10245:124;;10341:12;;10318:35;;10245:124;10390:7;:18;;;;-1:-1:-1;10402:6:0;;-1:-1:-1;;;10402:6:0;;;;10401:7;10390:18;:43;;;;-1:-1:-1;10420:13:0;;-1:-1:-1;;;;;10412:21:0;;;10420:13;;10412:21;;10390:43;:58;;;;-1:-1:-1;10437:11:0;;-1:-1:-1;;;10437:11:0;;;;10390:58;:87;;;;-1:-1:-1;;;;;;10453:24:0;;;;;;:18;:24;;;;;;;;10452:25;10390:87;:114;;;;-1:-1:-1;;;;;;10482:22:0;;;;;;:18;:22;;;;;;;;10481:23;10390:114;10386:386;;;10525:38;10542:20;10525:16;:38::i;:::-;10611:21;10655:22;;10651:106;;10702:35;10715:21;10702:12;:35::i;:::-;10506:266;10386:386;9643:1140;;9605:1178;-1:-1:-1;;;;;10861:24:0;;10796:12;10861:24;;;:18;:24;;;;;;10811:4;;10861:24;;;:50;;-1:-1:-1;;;;;;10889:22:0;;;;;;:18;:22;;;;;;;;10861:50;10860:102;;;-1:-1:-1;10925:13:0;;-1:-1:-1;;;;;10917:21:0;;;10925:13;;10917:21;;;;:44;;-1:-1:-1;10948:13:0;;-1:-1:-1;;;;;10942:19:0;;;10948:13;;10942:19;;10917:44;10856:597;;;-1:-1:-1;10989:5:0;10856:597;;;11073:13;;-1:-1:-1;;;;;11065:21:0;;;11073:13;;11065:21;:55;;;;-1:-1:-1;11104:15:0;;-1:-1:-1;;;;;11090:30:0;;;11104:15;;11090:30;;11065:55;11062:162;;;11153:14;;11141:9;:26;11196:12;;11186:7;:22;11062:162;11284:13;;-1:-1:-1;;;;;11278:19:0;;;11284:13;;11278:19;:55;;;;-1:-1:-1;11317:15:0;;-1:-1:-1;;;;;11301:32:0;;;11317:15;;11301:32;;11278:55;11274:165;;;11366:15;;11354:9;:27;11410:13;;11400:7;:23;11274:165;11466:41;11481:4;11487:2;11491:6;11499:7;11466:14;:41::i;2388:224::-;2508:7;2544:12;2536:6;;;;2528:29;;;;-1:-1:-1;;;2528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2568:9:0;2580:5;2584:1;2580;:5;:::i;:::-;2568:17;2388:224;-1:-1:-1;;;;;2388:224:0:o;12016:92::-;12073:10;;:27;;-1:-1:-1;;;;;12073:10:0;;;;:27;;;;;12093:6;;12073:10;:27;:10;:27;12093:6;12073:10;:27;;;;;;;;;;;;;;;;;;;;;12016:92;:::o;8193:323::-;8288:7;8346;;8335;:18;;8313:110;;;;-1:-1:-1;;;8313:110:0;;12787:2:1;8313:110:0;;;12769:21:1;12826:2;12806:18;;;12799:30;12865:34;12845:18;;;12838:62;-1:-1:-1;;;12916:18:1;;;12909:40;12966:19;;8313:110:0;12585:406:1;8313:110:0;8434:19;8456:10;:8;:10::i;:::-;8434:32;-1:-1:-1;8484:24:0;:7;8434:32;8484:11;:24::i;:::-;8477:31;8193:323;-1:-1:-1;;;8193:323:0:o;11524:483::-;5907:6;:13;;-1:-1:-1;;;;5907:13:0;-1:-1:-1;;;5907:13:0;;;11626:16:::1;::::0;;11640:1:::1;11626:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11626:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11626:16:0::1;11602:40;;11671:4;11653;11658:1;11653:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11653:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11697:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11697:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11653:7;;11697:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11687:4;11692:1;11687:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11687:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11762:15:::1;::::0;11730:62:::1;::::0;11747:4:::1;::::0;11762:15:::1;11780:11:::0;11730:8:::1;:62::i;:::-;11803:15;::::0;:196:::1;::::0;-1:-1:-1;;;11803:196:0;;-1:-1:-1;;;;;11803:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11884:11;;11803:15:::1;::::0;11926:4;;11953::::1;::::0;11973:15:::1;::::0;11803:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5943:6:0;:14;;-1:-1:-1;;;;5943:14:0;;;-1:-1:-1;;;;11524:483:0:o;12684:282::-;12840:7;12835:28;;12849:14;:12;:14::i;:::-;12874:44;12892:6;12900:9;12911:6;12874:17;:44::i;:::-;12934:7;12929:29;;12943:15;8811:17;;8799:9;:29;8849:15;;8839:7;:25;8755:117;15653:164;15695:7;15716:15;15733;15752:19;:17;:19::i;:::-;15715:56;;-1:-1:-1;15715:56:0;-1:-1:-1;15789:20:0;15715:56;;15789:11;:20::i;:::-;15782:27;;;;15653:164;:::o;2876:132::-;2934:7;2961:39;2965:1;2968;2961:39;;;;;;;;;;;;;;;;;:3;:39::i;8525:221::-;8572:9;;:14;:30;;;;-1:-1:-1;8590:7:0;;:12;8572:30;8568:43;;;8525:221::o;8568:43::-;8644:9;;;8624:17;:29;8682:7;;;8664:15;:25;-1:-1:-1;8703:13:0;;;;8727:11;8525:221::o;12975:610::-;13122:15;13152:23;13190:12;13217:23;13255:12;13282:13;13309:19;13320:7;13309:10;:19::i;:::-;-1:-1:-1;;;;;13357:15:0;;;;;;:7;:15;;;;;;13107:221;;-1:-1:-1;13107:221:0;;-1:-1:-1;13107:221:0;;-1:-1:-1;13107:221:0;-1:-1:-1;13107:221:0;-1:-1:-1;13107:221:0;-1:-1:-1;13357:28:0;;13107:221;13357:19;:28::i;:::-;-1:-1:-1;;;;;13339:15:0;;;;;;;:7;:15;;;;;;:46;;;;13417:18;;;;;;;:39;;13440:15;13417:22;:39::i;:::-;-1:-1:-1;;;;;13396:18:0;;;;;;:7;:18;;;;;:60;13467:16;13477:5;13467:9;:16::i;:::-;13494:23;13506:4;13512;13494:11;:23::i;:::-;13550:9;-1:-1:-1;;;;;13533:44:0;13542:6;-1:-1:-1;;;;;13533:44:0;;13561:15;13533:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13533:44:0;;;;;;;;13096:489;;;;;;12975:610;;;:::o;15826:257::-;15924:7;;15877;;;;;4737:13;4399:2;4737;:13;:::i;:::-;4727:23;;:7;:23;:::i;:::-;15942:25;-1:-1:-1;15992:20:0;4737:13;4399:2;4737;:13;:::i;:::-;4727:23;;:7;:23;:::i;:::-;15992:7;;;:11;:20::i;:::-;15982:7;:30;15978:61;;;16022:7;;4737:13;4399:2;4737;:13;:::i;:::-;4727:23;;:7;:23;:::i;:::-;16014:25;;;;;;15826:257;;:::o;15978:61::-;16058:7;;16067;;-1:-1:-1;15826:257:0;-1:-1:-1;15826:257:0:o;3017:223::-;3137:7;3172:12;3165:5;3157:28;;;;-1:-1:-1;;;3157:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3196:9:0;3208:5;3212:1;3208;:5;:::i;14008:615::-;14108:7;14130;14152;14174;14196;14218;14254:23;14279:12;14293:13;14323:40;14335:7;14344:9;;14355:7;;14323:11;:40::i;:::-;14253:110;;;;;;14374:19;14396:10;:8;:10::i;:::-;14374:32;;14418:15;14435:23;14460:12;14489:46;14501:7;14510:4;14516:5;14523:11;14489;:46::i;:::-;14417:118;;-1:-1:-1;14417:118:0;-1:-1:-1;14417:118:0;-1:-1:-1;14586:15:0;;-1:-1:-1;14603:4:0;;-1:-1:-1;14609:5:0;;-1:-1:-1;;;;;14008:615:0;;;;;;;:::o;2243:136::-;2301:7;2328:43;2332:1;2335;2328:43;;;;;;;;;;;;;;;;;:3;:43::i;2055:179::-;2113:7;;2145:5;2149:1;2145;:5;:::i;:::-;2133:17;;2174:1;2169;:6;;2161:46;;;;-1:-1:-1;;;2161:46:0;;14793:2:1;2161:46:0;;;14775:21:1;14832:2;14812:18;;;14805:30;14871:29;14851:18;;;14844:57;14918:18;;2161:46:0;14591:351:1;13594:211:0;13647:19;13669:10;:8;:10::i;:::-;13647:32;-1:-1:-1;13690:13:0;13706:22;:5;13647:32;13706:9;:22::i;:::-;13780:4;13764:22;;;;:7;:22;;;;;;13690:38;;-1:-1:-1;13764:33:0;;13690:38;13764:26;:33::i;:::-;13755:4;13739:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13594:211:0:o;13814:147::-;13892:7;;:17;;13904:4;13892:11;:17::i;:::-;13882:7;:27;13933:10;;:20;;13948:4;13933:14;:20::i;:::-;13920:10;:33;-1:-1:-1;;13814:147:0:o;14632:469::-;14801:7;;;;14895:30;14921:3;14895:21;:7;14907:8;14895:11;:21::i;:::-;:25;;:30::i;:::-;14880:45;-1:-1:-1;14936:13:0;14952:28;14976:3;14952:19;:7;14964:6;14952:11;:19::i;:28::-;14936:44;-1:-1:-1;14991:23:0;15017:28;14936:44;15017:17;:7;15029:4;15017:11;:17::i;:::-;:21;;:28::i;:::-;14991:54;15081:4;;-1:-1:-1;15087:5:0;;-1:-1:-1;14632:469:0;;-1:-1:-1;;;;;14632:469:0:o;15110:534::-;15304:7;;;;15401:24;:7;15413:11;15401;:24::i;:::-;15383:42;-1:-1:-1;15436:12:0;15451:21;:4;15460:11;15451:8;:21::i;:::-;15436:36;-1:-1:-1;15483:13:0;15499:22;:5;15509:11;15499:9;:22::i;:::-;15483:38;-1:-1:-1;15532:23:0;15558:28;15483:38;15558:17;:7;15570:4;15558:11;:17::i;:28::-;15605:7;;;;-1:-1:-1;15631:4:0;;-1:-1:-1;15110:534:0;;-1:-1:-1;;;;;;;15110:534:0:o;2621:246::-;2679:7;2703:1;2708;2703:6;2699:47;;-1:-1:-1;2733:1:0;2726:8;;2699:47;2756:9;2768:5;2772:1;2768;:5;:::i;:::-;2756:17;-1:-1:-1;2801:1:0;2792:5;2796:1;2756:17;2792:5;:::i;:::-;:10;2784:56;;;;-1:-1:-1;;;2784:56:0;;15149:2:1;2784:56:0;;;15131:21:1;15188:2;15168:18;;;15161:30;15227:34;15207:18;;;15200:62;-1:-1:-1;;;15278:18:1;;;15271:31;15319:19;;2784:56:0;14947:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;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;2489:160::-;2554:20;;2610:13;;2603:21;2593:32;;2583:60;;2639:1;2636;2629:12;2583:60;2489:160;;;:::o;2654:180::-;2710:6;2763:2;2751:9;2742:7;2738:23;2734:32;2731:52;;;2779:1;2776;2769:12;2731:52;2802:26;2818:9;2802:26;:::i;2839:247::-;2898:6;2951:2;2939:9;2930:7;2926:23;2922:32;2919:52;;;2967:1;2964;2957:12;2919:52;3006:9;2993:23;3025:31;3050:5;3025:31;:::i;3091:180::-;3150:6;3203:2;3191:9;3182:7;3178:23;3174:32;3171:52;;;3219:1;3216;3209:12;3171:52;-1:-1:-1;3242:23:1;;3091:180;-1:-1:-1;3091:180:1:o;3276:385::-;3362:6;3370;3378;3386;3439:3;3427:9;3418:7;3414:23;3410:33;3407:53;;;3456:1;3453;3446:12;3407:53;-1:-1:-1;;3479:23:1;;;3549:2;3534:18;;3521:32;;-1:-1:-1;3600:2:1;3585:18;;3572:32;;3651:2;3636:18;3623:32;;-1:-1:-1;3276:385:1;-1:-1:-1;3276:385:1:o;3666:689::-;3758:6;3766;3774;3827:2;3815:9;3806:7;3802:23;3798:32;3795:52;;;3843:1;3840;3833:12;3795:52;3883:9;3870:23;3912:18;3953:2;3945:6;3942:14;3939:34;;;3969:1;3966;3959:12;3939:34;4007:6;3996:9;3992:22;3982:32;;4052:7;4045:4;4041:2;4037:13;4033:27;4023:55;;4074:1;4071;4064:12;4023:55;4114:2;4101:16;4140:2;4132:6;4129:14;4126:34;;;4156:1;4153;4146:12;4126:34;4211:7;4204:4;4194:6;4191:1;4187:14;4183:2;4179:23;4175:34;4172:47;4169:67;;;4232:1;4229;4222:12;4169:67;4263:4;4255:13;;;;-1:-1:-1;4287:6:1;-1:-1:-1;4312:37:1;;4328:20;;;-1:-1:-1;4312:37:1;:::i;:::-;4302:47;;3666:689;;;;;:::o;4360:388::-;4428:6;4436;4489:2;4477:9;4468:7;4464:23;4460:32;4457:52;;;4505:1;4502;4495:12;4457:52;4544:9;4531:23;4563:31;4588:5;4563:31;:::i;:::-;4613:5;-1:-1:-1;4670:2:1;4655:18;;4642:32;4683:33;4642:32;4683:33;:::i;:::-;4735:7;4725:17;;;4360:388;;;;;:::o;4753:127::-;4814:10;4809:3;4805:20;4802:1;4795:31;4845:4;4842:1;4835:15;4869:4;4866:1;4859:15;4885:422;4974:1;5017:5;4974:1;5031:270;5052:7;5042:8;5039:21;5031:270;;;5111:4;5107:1;5103:6;5099:17;5093:4;5090:27;5087:53;;;5120:18;;:::i;:::-;5170:7;5160:8;5156:22;5153:55;;;5190:16;;;;5153:55;5269:22;;;;5229:15;;;;5031:270;;;5035:3;4885:422;;;;;:::o;5312:806::-;5361:5;5391:8;5381:80;;-1:-1:-1;5432:1:1;5446:5;;5381:80;5480:4;5470:76;;-1:-1:-1;5517:1:1;5531:5;;5470:76;5562:4;5580:1;5575:59;;;;5648:1;5643:130;;;;5555:218;;5575:59;5605:1;5596:10;;5619:5;;;5643:130;5680:3;5670:8;5667:17;5664:43;;;5687:18;;:::i;:::-;-1:-1:-1;;5743:1:1;5729:16;;5758:5;;5555:218;;5857:2;5847:8;5844:16;5838:3;5832:4;5829:13;5825:36;5819:2;5809:8;5806:16;5801:2;5795:4;5792:12;5788:35;5785:77;5782:159;;;-1:-1:-1;5894:19:1;;;5926:5;;5782:159;5973:34;5998:8;5992:4;5973:34;:::i;:::-;6043:6;6039:1;6035:6;6031:19;6022:7;6019:32;6016:58;;;6054:18;;:::i;:::-;6092:20;;5312:806;-1:-1:-1;;;5312:806:1:o;6123:140::-;6181:5;6210:47;6251:4;6241:8;6237:19;6231:4;6210:47;:::i;6268:168::-;6341:9;;;6372;;6389:15;;;6383:22;;6369:37;6359:71;;6410:18;;:::i;6441:356::-;6643:2;6625:21;;;6662:18;;;6655:30;6721:34;6716:2;6701:18;;6694:62;6788:2;6773:18;;6441:356::o;8422:127::-;8483:10;8478:3;8474:20;8471:1;8464:31;8514:4;8511:1;8504:15;8538:4;8535:1;8528:15;8554:135;8593:3;8614:17;;;8611:43;;8634:18;;:::i;:::-;-1:-1:-1;8681:1:1;8670:13;;8554:135::o;11918:125::-;11983:9;;;12004:10;;;12001:36;;;12017:18;;:::i;12452:128::-;12519:9;;;12540:11;;;12537:37;;;12554:18;;:::i;13128:251::-;13198:6;13251:2;13239:9;13230:7;13226:23;13222:32;13219:52;;;13267:1;13264;13257:12;13219:52;13299:9;13293:16;13318:31;13343:5;13318:31;:::i;13384:980::-;13646:4;13694:3;13683:9;13679:19;13725:6;13714:9;13707:25;13751:2;13789:6;13784:2;13773:9;13769:18;13762:34;13832:3;13827:2;13816:9;13812:18;13805:31;13856:6;13891;13885:13;13922:6;13914;13907:22;13960:3;13949:9;13945:19;13938:26;;13999:2;13991:6;13987:15;13973:29;;14020:1;14030:195;14044:6;14041:1;14038:13;14030:195;;;14109:13;;-1:-1:-1;;;;;14105:39:1;14093:52;;14200:15;;;;14165:12;;;;14141:1;14059:9;14030:195;;;-1:-1:-1;;;;;;;14281:32:1;;;;14276:2;14261:18;;14254:60;-1:-1:-1;;;14345:3:1;14330:19;14323:35;14242:3;13384:980;-1:-1:-1;;;13384:980:1:o;14369:217::-;14409:1;14435;14425:132;;14479:10;14474:3;14470:20;14467:1;14460:31;14514:4;14511:1;14504:15;14542:4;14539:1;14532:15;14425:132;-1:-1:-1;14571:9:1;;14369:217::o

Swarm Source

ipfs://656c4feb6bd61e72536b906697dc883c05d837424d3a784430fb9fcbe650f29c
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.