ETH Price: $2,292.45 (-5.33%)

Token

Malchi (MALCHI)
 

Overview

Max Total Supply

1,000,000,000,000 MALCHI

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,141,801,701.627399858 MALCHI

Value
$0.00
0x3765983f1139336bc74b746f11d390b3bb11a24f
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:
MALCHI

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-06
*/

/**
 //SPDX-License-Identifier: UNLICENSED

Malchi | $MALCHI

$MALCHI is born on top of the ETH upgrade. The world of meme cryptocurrencies will never stop growing.

Launching with 0.5% max TX and then uplifting to 2% and at later stage to 3%.

Medium: https://medium.com/@malchi/malchi-a-eth2-0-impeller-8cb30d778471
Twitter: https://twitter.com/malchiERC
TG: https://t.me/MalchiPortal

*/

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    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);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract MALCHI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isExcludedFromLimit;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 public swapThreshold = 100_000_000 * 10**9;
    
    uint256 private _reflectionFee = 0;
    uint256 private _teamFee = 6;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Malchi";
    string private constant _symbol = "MALCHI";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap;
    bool private swapEnabled;
    bool private cooldownEnabled;

    uint256 private _maxTxAmount = 5_000_000_000 * 10**9;
    uint256 private _maxWalletAmount = 10_000_000_000 * 10**9;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (address wallet1, address wallet2) {
        _feeAddrWallet1 = payable(wallet1);
        _feeAddrWallet2 = payable(wallet2);
        _rOwned[_msgSender()] = _rTotal;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[_feeAddrWallet1] = true;
        isExcludedFromFee[_feeAddrWallet2] = true;

        isExcludedFromLimit[owner()] = true;
        isExcludedFromLimit[address(this)] = true;
        isExcludedFromLimit[address(0xdead)] = true;
        isExcludedFromLimit[_feeAddrWallet1] = true;
        isExcludedFromLimit[_feeAddrWallet2] = true;

        emit Transfer(address(this), _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 setCooldownEnabled(bool onoff) external onlyOwner {
        cooldownEnabled = onoff;
    }

    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 _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(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance");

        if (from != owner() && to != owner()) {

            require(!bots[from] && !bots[to]);

            if (!isExcludedFromLimit[from] || (from == uniswapV2Pair && !isExcludedFromLimit[to])) {
                require(amount <= _maxTxAmount, "Anti-whale: Transfer amount exceeds max limit");
            }
            if (!isExcludedFromLimit[to]) {
                require(balanceOf(to) + amount <= _maxWalletAmount, "Anti-whale: Wallet amount exceeds max limit");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (60 seconds);
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance >= swapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 {
        _feeAddrWallet1.transfer(amount.mul(60).div(100));
        _feeAddrWallet2.transfer(amount.mul(40).div(100));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        isExcludedFromLimit[address(uniswapV2Router)] = true;
        isExcludedFromLimit[uniswapV2Pair] = true;

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);

        swapEnabled = true;
        cooldownEnabled = true;
        tradingOpen = true;

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function changeMaxTxAmount(uint256 amount) public onlyOwner {
        _maxTxAmount = amount;
    }

    function changeMaxWalletAmount(uint256 amount) public onlyOwner {
        _maxWalletAmount = amount;
    }

    function changeSwapThreshold(uint256 amount) public onlyOwner {
        swapThreshold = amount;
    }

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

    function excludeFromLimits(address account, bool excluded) public onlyOwner {
        isExcludedFromLimit[account] = excluded;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflect, uint256 tTransferAmount, uint256 tReflect, uint256 tTeam) = _getValues(tAmount);
        
        _rOwned[sender] = _rOwned[sender].sub(rAmount);

        if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            _rOwned[recipient] = _rOwned[recipient].add(rAmount); 

            emit Transfer(sender, recipient, tAmount);
        } else {
            _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
            _takeTeam(tTeam);
            _reflectFee(rReflect, tReflect);

            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 manualSwap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualSend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tReflect, uint256 tTeam) = _getTValues(tAmount, _reflectionFee, _teamFee);

        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rReflect) = _getRValues(tAmount, tReflect, tTeam, currentRate);

        return (rAmount, rTransferAmount, rReflect, tTransferAmount, tReflect, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 reflectFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tReflect = tAmount.mul(reflectFee).div(100);
        uint256 tTeam = tAmount.mul(teamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tReflect).sub(tTeam);
        return (tTransferAmount, tReflect, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tReflect, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rReflect = tReflect.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rReflect).sub(rTeam);
        return (rAmount, rTransferAmount, rReflect);
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet1","type":"address"},{"internalType":"address","name":"wallet2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"changeSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea0000060001962000345565b620000299060001962000321565b60095567016345785d8a0000600b556000600c556006600d55674563918244f40000601255678ac7230489e800006013553480156200006757600080fd5b5060405162002046380380620020468339810160408190526200008a91620002ea565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e80546001600160a01b038085166001600160a01b031992831617909255600f805492841692909116919091179055600954600260006200010a3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000144620002be60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600e54821684528284208054861682179055600f54909116835290822080549093168117909255600690620001c66000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260069093528183208054851660019081179091557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054861682179055600e54821684528284208054861682179055600f54909116835291208054909216179055620002603390565b6001600160a01b0316306001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620002ae91815260200190565b60405180910390a3505062000366565b6000546001600160a01b031690565b80516001600160a01b0381168114620002e557600080fd5b919050565b60008060408385031215620002fd578182fd5b6200030883620002cd565b91506200031860208401620002cd565b90509250929050565b6000828210156200034057634e487b7160e01b81526011600452602481fd5b500390565b6000826200036157634e487b7160e01b81526012600452602481fd5b500690565b611cd080620003766000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063c02466681161006f578063c0246668146103e5578063c0a904a214610405578063c9567bf914610425578063d94160e01461043a578063dd62ed3e1461046a578063f4293890146104b057600080fd5b8063715018a61461032357806381bfdcca1461033857806389f425e7146103585780638da5cb5b1461037857806395d89b4114610396578063a9059cbb146103c557600080fd5b806349bd5a5e1161010857806349bd5a5e1461024457806351bc3c851461027c5780635342acb4146102935780635932ead1146102c3578063677daa57146102e357806370a082311461030357600080fd5b80630445b6671461015b57806306fdde0314610184578063095ea7b3146101bc57806318160ddd146101ec57806323b872dd14610208578063313ce5671461022857600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610171600b5481565b6040519081526020015b60405180910390f35b34801561019057600080fd5b506040805180820190915260068152654d616c63686960d01b60208201525b60405161017b9190611ad3565b3480156101c857600080fd5b506101dc6101d7366004611a2b565b6104c5565b604051901515815260200161017b565b3480156101f857600080fd5b50683635c9adc5dea00000610171565b34801561021457600080fd5b506101dc6102233660046119be565b6104dc565b34801561023457600080fd5b506040516009815260200161017b565b34801561025057600080fd5b50601154610264906001600160a01b031681565b6040516001600160a01b03909116815260200161017b565b34801561028857600080fd5b50610291610545565b005b34801561029f57600080fd5b506101dc6102ae36600461194e565b60056020526000908152604090205460ff1681565b3480156102cf57600080fd5b506102916102de366004611a56565b61057e565b3480156102ef57600080fd5b506102916102fe366004611a8e565b6105cf565b34801561030f57600080fd5b5061017161031e36600461194e565b6105fe565b34801561032f57600080fd5b50610291610620565b34801561034457600080fd5b50610291610353366004611a8e565b610694565b34801561036457600080fd5b50610291610373366004611a8e565b6106c3565b34801561038457600080fd5b506000546001600160a01b0316610264565b3480156103a257600080fd5b506040805180820190915260068152654d414c43484960d01b60208201526101af565b3480156103d157600080fd5b506101dc6103e0366004611a2b565b6106f2565b3480156103f157600080fd5b506102916104003660046119fe565b6106ff565b34801561041157600080fd5b506102916104203660046119fe565b610754565b34801561043157600080fd5b506102916107a9565b34801561044657600080fd5b506101dc61045536600461194e565b60066020526000908152604090205460ff1681565b34801561047657600080fd5b50610171610485366004611986565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104bc57600080fd5b50610291610b98565b60006104d2338484610bc2565b5060015b92915050565b60006104e9848484610ce6565b61053b843361053685604051806060016040528060288152602001611c73602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061112c565b610bc2565b5060019392505050565b600e546001600160a01b0316336001600160a01b03161461056557600080fd5b6000610570306105fe565b905061057b81611166565b50565b6000546001600160a01b031633146105b15760405162461bcd60e51b81526004016105a890611b26565b60405180910390fd5b60118054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105f95760405162461bcd60e51b81526004016105a890611b26565b601255565b6001600160a01b0381166000908152600260205260408120546104d69061130b565b6000546001600160a01b0316331461064a5760405162461bcd60e51b81526004016105a890611b26565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106be5760405162461bcd60e51b81526004016105a890611b26565b601355565b6000546001600160a01b031633146106ed5760405162461bcd60e51b81526004016105a890611b26565b600b55565b60006104d2338484610ce6565b6000546001600160a01b031633146107295760405162461bcd60e51b81526004016105a890611b26565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461077e5760405162461bcd60e51b81526004016105a890611b26565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107d35760405162461bcd60e51b81526004016105a890611b26565b601154600160a01b900460ff161561082d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105a8565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561086a3082683635c9adc5dea00000610bc2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a357600080fd5b505afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108db919061196a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b919061196a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db919061196a565b601180546001600160a01b0319166001600160a01b03928316178155601080548316600090815260066020526040808220805460ff1990811660019081179092559454861683529120805490931617909155541663f305d7194730610a3f816105fe565b600080610a546000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610af09190611aa6565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610b5c57600080fd5b505af1158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190611a72565b5050565b600e546001600160a01b0316336001600160a01b031614610bb857600080fd5b4761057b8161138f565b6001600160a01b038316610c245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a8565b6001600160a01b038216610c855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a8565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a8565b6001600160a01b038216610dac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a8565b80610db6846105fe565b1015610e135760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a8565b6000546001600160a01b03848116911614801590610e3f57506000546001600160a01b03838116911614155b1561111c576001600160a01b03831660009081526007602052604090205460ff16158015610e8657506001600160a01b03821660009081526007602052604090205460ff16155b610e8f57600080fd5b6001600160a01b03831660009081526006602052604090205460ff161580610ee857506011546001600160a01b038481169116148015610ee857506001600160a01b03821660009081526006602052604090205460ff16155b15610f5557601254811115610f555760405162461bcd60e51b815260206004820152602d60248201527f416e74692d7768616c653a205472616e7366657220616d6f756e74206578636560448201526c19591cc81b585e081b1a5b5a5d609a1b60648201526084016105a8565b6001600160a01b03821660009081526006602052604090205460ff16610fee5760135481610f82846105fe565b610f8c9190611bcb565b1115610fee5760405162461bcd60e51b815260206004820152602b60248201527f416e74692d7768616c653a2057616c6c657420616d6f756e742065786365656460448201526a1cc81b585e081b1a5b5a5d60aa1b60648201526084016105a8565b6011546001600160a01b03848116911614801561101957506010546001600160a01b03838116911614155b801561103e57506001600160a01b03821660009081526005602052604090205460ff16155b80156110535750601154600160b81b900460ff165b156110a1576001600160a01b038216600090815260086020526040902054421161107c57600080fd5b61108742603c611bcb565b6001600160a01b0383166000908152600860205260409020555b60006110ac306105fe565b601154909150600160a81b900460ff161580156110d757506011546001600160a01b03858116911614155b80156110ec5750601154600160b01b900460ff165b80156110fa5750600b548110155b1561111a5761110881611166565b478015611118576111184761138f565b505b505b611127838383611424565b505050565b600081848411156111505760405162461bcd60e51b81526004016105a89190611ad3565b50600061115d8486611c22565b95945050505050565b6011805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111bc57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561121057600080fd5b505afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611248919061196a565b8160018151811061126957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260105461128f9130911684610bc2565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c8908590600090869030904290600401611b5b565b600060405180830381600087803b1580156112e257600080fd5b505af11580156112f6573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b60006009548211156113725760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105a8565b600061137c61142f565b90506113888382611452565b9392505050565b600e546001600160a01b03166108fc6113b460646113ae85603c611494565b90611452565b6040518115909202916000818181858888f193505050501580156113dc573d6000803e3d6000fd5b50600f546001600160a01b03166108fc6113fc60646113ae856028611494565b6040518115909202916000818181858888f19350505050158015610b94573d6000803e3d6000fd5b611127838383611513565b600080600061143c6116d3565b909250905061144b8282611452565b9250505090565b600061138883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611715565b6000826114a3575060006104d6565b60006114af8385611c03565b9050826114bc8583611be3565b146113885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a8565b60008060008060008061152587611743565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061155790876117a0565b6001600160a01b038a1660009081526002602090815260408083209390935560059052205460ff16806115a257506001600160a01b03881660009081526005602052604090205460ff165b1561162b576001600160a01b0388166000908152600260205260409020546115ca90876117e2565b6001600160a01b03808a1660008181526002602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061161e908b815260200190565b60405180910390a36116c8565b6001600160a01b03881660009081526002602052604090205461164e90866117e2565b6001600160a01b03891660009081526002602052604090205561167081611841565b61167a848361188b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116bf91815260200190565b60405180910390a35b505050505050505050565b6009546000908190683635c9adc5dea000006116ef8282611452565b82101561170c57505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836117365760405162461bcd60e51b81526004016105a89190611ad3565b50600061115d8486611be3565b60008060008060008060008060006117608a600c54600d546118af565b925092509250600061177061142f565b905060008060006117838e8787876118fe565b919e509c509a509598509396509194505050505091939550919395565b600061138883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061112c565b6000806117ef8385611bcb565b9050838110156113885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a8565b600061184b61142f565b905060006118598383611494565b3060009081526002602052604090205490915061187690826117e2565b30600090815260026020526040902055505050565b60095461189890836117a0565b600955600a546118a890826117e2565b600a555050565b60008080806118c360646113ae8989611494565b905060006118d660646113ae8a89611494565b905060006118ee826118e88b866117a0565b906117a0565b9992985090965090945050505050565b600080808061190d8886611494565b9050600061191b8887611494565b905060006119298888611494565b9050600061193b826118e886866117a0565b939b939a50919850919650505050505050565b60006020828403121561195f578081fd5b813561138881611c4f565b60006020828403121561197b578081fd5b815161138881611c4f565b60008060408385031215611998578081fd5b82356119a381611c4f565b915060208301356119b381611c4f565b809150509250929050565b6000806000606084860312156119d2578081fd5b83356119dd81611c4f565b925060208401356119ed81611c4f565b929592945050506040919091013590565b60008060408385031215611a10578182fd5b8235611a1b81611c4f565b915060208301356119b381611c64565b60008060408385031215611a3d578182fd5b8235611a4881611c4f565b946020939093013593505050565b600060208284031215611a67578081fd5b813561138881611c64565b600060208284031215611a83578081fd5b815161138881611c64565b600060208284031215611a9f578081fd5b5035919050565b600080600060608486031215611aba578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611aff57858101830151858201604001528201611ae3565b81811115611b105783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611baa5784516001600160a01b031683529383019391830191600101611b85565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611bde57611bde611c39565b500190565b600082611bfe57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c1d57611c1d611c39565b500290565b600082821015611c3457611c34611c39565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461057b57600080fd5b801515811461057b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205847c8e25ded06a3153b7a0d712be44ccc10457cff1809da01ba4fb7cb215d9664736f6c6343000804003300000000000000000000000039c678dcdff56d4028af437a5a2117903bced1f0000000000000000000000000955ab52574c785bace7ec08ca80a766c3ce75935

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063c02466681161006f578063c0246668146103e5578063c0a904a214610405578063c9567bf914610425578063d94160e01461043a578063dd62ed3e1461046a578063f4293890146104b057600080fd5b8063715018a61461032357806381bfdcca1461033857806389f425e7146103585780638da5cb5b1461037857806395d89b4114610396578063a9059cbb146103c557600080fd5b806349bd5a5e1161010857806349bd5a5e1461024457806351bc3c851461027c5780635342acb4146102935780635932ead1146102c3578063677daa57146102e357806370a082311461030357600080fd5b80630445b6671461015b57806306fdde0314610184578063095ea7b3146101bc57806318160ddd146101ec57806323b872dd14610208578063313ce5671461022857600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610171600b5481565b6040519081526020015b60405180910390f35b34801561019057600080fd5b506040805180820190915260068152654d616c63686960d01b60208201525b60405161017b9190611ad3565b3480156101c857600080fd5b506101dc6101d7366004611a2b565b6104c5565b604051901515815260200161017b565b3480156101f857600080fd5b50683635c9adc5dea00000610171565b34801561021457600080fd5b506101dc6102233660046119be565b6104dc565b34801561023457600080fd5b506040516009815260200161017b565b34801561025057600080fd5b50601154610264906001600160a01b031681565b6040516001600160a01b03909116815260200161017b565b34801561028857600080fd5b50610291610545565b005b34801561029f57600080fd5b506101dc6102ae36600461194e565b60056020526000908152604090205460ff1681565b3480156102cf57600080fd5b506102916102de366004611a56565b61057e565b3480156102ef57600080fd5b506102916102fe366004611a8e565b6105cf565b34801561030f57600080fd5b5061017161031e36600461194e565b6105fe565b34801561032f57600080fd5b50610291610620565b34801561034457600080fd5b50610291610353366004611a8e565b610694565b34801561036457600080fd5b50610291610373366004611a8e565b6106c3565b34801561038457600080fd5b506000546001600160a01b0316610264565b3480156103a257600080fd5b506040805180820190915260068152654d414c43484960d01b60208201526101af565b3480156103d157600080fd5b506101dc6103e0366004611a2b565b6106f2565b3480156103f157600080fd5b506102916104003660046119fe565b6106ff565b34801561041157600080fd5b506102916104203660046119fe565b610754565b34801561043157600080fd5b506102916107a9565b34801561044657600080fd5b506101dc61045536600461194e565b60066020526000908152604090205460ff1681565b34801561047657600080fd5b50610171610485366004611986565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156104bc57600080fd5b50610291610b98565b60006104d2338484610bc2565b5060015b92915050565b60006104e9848484610ce6565b61053b843361053685604051806060016040528060288152602001611c73602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061112c565b610bc2565b5060019392505050565b600e546001600160a01b0316336001600160a01b03161461056557600080fd5b6000610570306105fe565b905061057b81611166565b50565b6000546001600160a01b031633146105b15760405162461bcd60e51b81526004016105a890611b26565b60405180910390fd5b60118054911515600160b81b0260ff60b81b19909216919091179055565b6000546001600160a01b031633146105f95760405162461bcd60e51b81526004016105a890611b26565b601255565b6001600160a01b0381166000908152600260205260408120546104d69061130b565b6000546001600160a01b0316331461064a5760405162461bcd60e51b81526004016105a890611b26565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106be5760405162461bcd60e51b81526004016105a890611b26565b601355565b6000546001600160a01b031633146106ed5760405162461bcd60e51b81526004016105a890611b26565b600b55565b60006104d2338484610ce6565b6000546001600160a01b031633146107295760405162461bcd60e51b81526004016105a890611b26565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461077e5760405162461bcd60e51b81526004016105a890611b26565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107d35760405162461bcd60e51b81526004016105a890611b26565b601154600160a01b900460ff161561082d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105a8565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561086a3082683635c9adc5dea00000610bc2565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a357600080fd5b505afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108db919061196a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b919061196a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109db919061196a565b601180546001600160a01b0319166001600160a01b03928316178155601080548316600090815260066020526040808220805460ff1990811660019081179092559454861683529120805490931617909155541663f305d7194730610a3f816105fe565b600080610a546000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015610ab757600080fd5b505af1158015610acb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610af09190611aa6565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610b5c57600080fd5b505af1158015610b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b949190611a72565b5050565b600e546001600160a01b0316336001600160a01b031614610bb857600080fd5b4761057b8161138f565b6001600160a01b038316610c245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a8565b6001600160a01b038216610c855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a8565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a8565b6001600160a01b038216610dac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a8565b80610db6846105fe565b1015610e135760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a8565b6000546001600160a01b03848116911614801590610e3f57506000546001600160a01b03838116911614155b1561111c576001600160a01b03831660009081526007602052604090205460ff16158015610e8657506001600160a01b03821660009081526007602052604090205460ff16155b610e8f57600080fd5b6001600160a01b03831660009081526006602052604090205460ff161580610ee857506011546001600160a01b038481169116148015610ee857506001600160a01b03821660009081526006602052604090205460ff16155b15610f5557601254811115610f555760405162461bcd60e51b815260206004820152602d60248201527f416e74692d7768616c653a205472616e7366657220616d6f756e74206578636560448201526c19591cc81b585e081b1a5b5a5d609a1b60648201526084016105a8565b6001600160a01b03821660009081526006602052604090205460ff16610fee5760135481610f82846105fe565b610f8c9190611bcb565b1115610fee5760405162461bcd60e51b815260206004820152602b60248201527f416e74692d7768616c653a2057616c6c657420616d6f756e742065786365656460448201526a1cc81b585e081b1a5b5a5d60aa1b60648201526084016105a8565b6011546001600160a01b03848116911614801561101957506010546001600160a01b03838116911614155b801561103e57506001600160a01b03821660009081526005602052604090205460ff16155b80156110535750601154600160b81b900460ff165b156110a1576001600160a01b038216600090815260086020526040902054421161107c57600080fd5b61108742603c611bcb565b6001600160a01b0383166000908152600860205260409020555b60006110ac306105fe565b601154909150600160a81b900460ff161580156110d757506011546001600160a01b03858116911614155b80156110ec5750601154600160b01b900460ff165b80156110fa5750600b548110155b1561111a5761110881611166565b478015611118576111184761138f565b505b505b611127838383611424565b505050565b600081848411156111505760405162461bcd60e51b81526004016105a89190611ad3565b50600061115d8486611c22565b95945050505050565b6011805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111bc57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561121057600080fd5b505afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611248919061196a565b8160018151811061126957634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260105461128f9130911684610bc2565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906112c8908590600090869030904290600401611b5b565b600060405180830381600087803b1580156112e257600080fd5b505af11580156112f6573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b60006009548211156113725760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105a8565b600061137c61142f565b90506113888382611452565b9392505050565b600e546001600160a01b03166108fc6113b460646113ae85603c611494565b90611452565b6040518115909202916000818181858888f193505050501580156113dc573d6000803e3d6000fd5b50600f546001600160a01b03166108fc6113fc60646113ae856028611494565b6040518115909202916000818181858888f19350505050158015610b94573d6000803e3d6000fd5b611127838383611513565b600080600061143c6116d3565b909250905061144b8282611452565b9250505090565b600061138883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611715565b6000826114a3575060006104d6565b60006114af8385611c03565b9050826114bc8583611be3565b146113885760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105a8565b60008060008060008061152587611743565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061155790876117a0565b6001600160a01b038a1660009081526002602090815260408083209390935560059052205460ff16806115a257506001600160a01b03881660009081526005602052604090205460ff165b1561162b576001600160a01b0388166000908152600260205260409020546115ca90876117e2565b6001600160a01b03808a1660008181526002602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061161e908b815260200190565b60405180910390a36116c8565b6001600160a01b03881660009081526002602052604090205461164e90866117e2565b6001600160a01b03891660009081526002602052604090205561167081611841565b61167a848361188b565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116bf91815260200190565b60405180910390a35b505050505050505050565b6009546000908190683635c9adc5dea000006116ef8282611452565b82101561170c57505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836117365760405162461bcd60e51b81526004016105a89190611ad3565b50600061115d8486611be3565b60008060008060008060008060006117608a600c54600d546118af565b925092509250600061177061142f565b905060008060006117838e8787876118fe565b919e509c509a509598509396509194505050505091939550919395565b600061138883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061112c565b6000806117ef8385611bcb565b9050838110156113885760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105a8565b600061184b61142f565b905060006118598383611494565b3060009081526002602052604090205490915061187690826117e2565b30600090815260026020526040902055505050565b60095461189890836117a0565b600955600a546118a890826117e2565b600a555050565b60008080806118c360646113ae8989611494565b905060006118d660646113ae8a89611494565b905060006118ee826118e88b866117a0565b906117a0565b9992985090965090945050505050565b600080808061190d8886611494565b9050600061191b8887611494565b905060006119298888611494565b9050600061193b826118e886866117a0565b939b939a50919850919650505050505050565b60006020828403121561195f578081fd5b813561138881611c4f565b60006020828403121561197b578081fd5b815161138881611c4f565b60008060408385031215611998578081fd5b82356119a381611c4f565b915060208301356119b381611c4f565b809150509250929050565b6000806000606084860312156119d2578081fd5b83356119dd81611c4f565b925060208401356119ed81611c4f565b929592945050506040919091013590565b60008060408385031215611a10578182fd5b8235611a1b81611c4f565b915060208301356119b381611c64565b60008060408385031215611a3d578182fd5b8235611a4881611c4f565b946020939093013593505050565b600060208284031215611a67578081fd5b813561138881611c64565b600060208284031215611a83578081fd5b815161138881611c64565b600060208284031215611a9f578081fd5b5035919050565b600080600060608486031215611aba578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611aff57858101830151858201604001528201611ae3565b81811115611b105783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611baa5784516001600160a01b031683529383019391830191600101611b85565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611bde57611bde611c39565b500190565b600082611bfe57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c1d57611c1d611c39565b500290565b600082821015611c3457611c34611c39565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461057b57600080fd5b801515811461057b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205847c8e25ded06a3153b7a0d712be44ccc10457cff1809da01ba4fb7cb215d9664736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000039c678dcdff56d4028af437a5a2117903bced1f0000000000000000000000000955ab52574c785bace7ec08ca80a766c3ce75935

-----Decoded View---------------
Arg [0] : wallet1 (address): 0x39C678DcdfF56d4028aF437A5A2117903Bced1F0
Arg [1] : wallet2 (address): 0x955aB52574c785BAcE7EC08cA80A766C3cE75935

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000039c678dcdff56d4028af437a5a2117903bced1f0
Arg [1] : 000000000000000000000000955ab52574c785bace7ec08ca80a766c3ce75935


Deployed Bytecode Sourcemap

3885:11605:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:50;;;;;;;;;;;;;;;;;;;10262:25:1;;;10250:2;10235:18;4564:50:0;;;;;;;;6099:83;;;;;;;;;;-1:-1:-1;6169:5:0;;;;;;;;;;;;-1:-1:-1;;;6169:5:0;;;;6099:83;;;;;;;:::i;6951:161::-;;;;;;;;;;-1:-1:-1;6951:161:0;;;;;:::i;:::-;;:::i;:::-;;;4748:14:1;;4741:22;4723:41;;4711:2;4696:18;6951:161:0;4678:92:1;6376:95:0;;;;;;;;;;-1:-1:-1;4441:25:0;6376:95;;7120:313;;;;;;;;;;-1:-1:-1;7120:313:0;;;;;:::i;:::-;;:::i;6285:83::-;;;;;;;;;;-1:-1:-1;6285:83:0;;4932:1;11428:36:1;;11416:2;11401:18;6285:83:0;11383:87:1;4995:28:0;;;;;;;;;;-1:-1:-1;4995:28:0;;;;-1:-1:-1;;;;;4995:28:0;;;;;;-1:-1:-1;;;;;3339:32:1;;;3321:51;;3309:2;3294:18;4995:28:0;3276:102:1;13325:195:0;;;;;;;;;;;;;:::i;:::-;;4147:50;;;;;;;;;;-1:-1:-1;4147:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7441:101;;;;;;;;;;-1:-1:-1;7441:101:0;;;;;:::i;:::-;;:::i;11361:100::-;;;;;;;;;;-1:-1:-1;11361:100:0;;;;;:::i;:::-;;:::i;6479:138::-;;;;;;;;;;-1:-1:-1;6479:138:0;;;;;:::i;:::-;;:::i;2964:148::-;;;;;;;;;;;;;:::i;11469:108::-;;;;;;;;;;-1:-1:-1;11469:108:0;;;;;:::i;:::-;;:::i;11585:103::-;;;;;;;;;;-1:-1:-1;11585:103:0;;;;;:::i;:::-;;:::i;2750:79::-;;;;;;;;;;-1:-1:-1;2788:7:0;2815:6;-1:-1:-1;;;;;2815:6:0;2750:79;;6190:87;;;;;;;;;;-1:-1:-1;6262:7:0;;;;;;;;;;;;-1:-1:-1;;;6262:7:0;;;;6190:87;;6625:167;;;;;;;;;;-1:-1:-1;6625:167:0;;;;;:::i;:::-;;:::i;11696:130::-;;;;;;;;;;-1:-1:-1;11696:130:0;;;;;:::i;:::-;;:::i;11834:134::-;;;;;;;;;;-1:-1:-1;11834:134:0;;;;;:::i;:::-;;:::i;10456:897::-;;;;;;;;;;;;;:::i;4204:52::-;;;;;;;;;;-1:-1:-1;4204:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6800:143;;;;;;;;;;-1:-1:-1;6800:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6908:18:0;;;6881:7;6908:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6800:143;13532:194;;;;;;;;;;;;;:::i;6951:161::-;7026:4;7043:39;548:10;7066:7;7075:6;7043:8;:39::i;:::-;-1:-1:-1;7100:4:0;6951:161;;;;;:::o;7120:313::-;7218:4;7235:36;7245:6;7253:9;7264:6;7235:9;:36::i;:::-;7282:121;7291:6;548:10;7313:89;7351:6;7313:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7313:19:0;;;;;;:11;:19;;;;;;;;548:10;7313:33;;;;;;;;;;:37;:89::i;:::-;7282:8;:121::i;:::-;-1:-1:-1;7421:4:0;7120:313;;;;;:::o;13325:195::-;13391:15;;-1:-1:-1;;;;;13391:15:0;548:10;-1:-1:-1;;;;;13375:31:0;;13367:40;;;;;;13418:23;13444:24;13462:4;13444:9;:24::i;:::-;13418:50;;13479:33;13496:15;13479:16;:33::i;:::-;13325:195;:::o;7441:101::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;;;;;;;;;7511:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7511:23:0::1;-1:-1:-1::0;;;;7511:23:0;;::::1;::::0;;;::::1;::::0;;7441:101::o;11361:100::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;11432:12:::1;:21:::0;11361:100::o;6479:138::-;-1:-1:-1;;;;;6592:16:0;;6545:7;6592:16;;;:7;:16;;;;;;6572:37;;:19;:37::i;2964:148::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;3071:1:::1;3055:6:::0;;3034:40:::1;::::0;-1:-1:-1;;;;;3055:6:0;;::::1;::::0;3034:40:::1;::::0;3071:1;;3034:40:::1;3102:1;3085:19:::0;;-1:-1:-1;;;;;;3085:19:0::1;::::0;;2964:148::o;11469:108::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;11544:16:::1;:25:::0;11469:108::o;11585:103::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;11658:13:::1;:22:::0;11585:103::o;6625:167::-;6703:4;6720:42;548:10;6744:9;6755:6;6720:9;:42::i;11696:130::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11781:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;11781:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11696:130::o;11834:134::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11921:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;11921:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11834:134::o;10456:897::-;2877:6;;-1:-1:-1;;;;;2877:6:0;548:10;2877:22;2869:67;;;;-1:-1:-1;;;2869:67:0;;;;;;;:::i;:::-;10520:11:::1;::::0;-1:-1:-1;;;10520:11:0;::::1;;;10519:12;10511:48;;;::::0;-1:-1:-1;;;10511:48:0;;9966:2:1;10511:48:0::1;::::0;::::1;9948:21:1::0;10005:2;9985:18;;;9978:30;10044:25;10024:18;;;10017:53;10087:18;;10511:48:0::1;9938:173:1::0;10511:48:0::1;10683:15;:34:::0;;-1:-1:-1;;;;;;10683:34:0::1;10629:42;10683:34:::0;;::::1;::::0;;;10728:58:::1;10745:4;10629:42:::0;4441:25:::1;10728:8;:58::i;:::-;10831:16;-1:-1:-1::0;;;;;10831:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10813:56:0::1;;10878:4;10885:16;-1:-1:-1::0;;;;;10885:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10813:96;::::0;-1:-1:-1;;;;;;10813:96:0::1;::::0;;;;;;-1:-1:-1;;;;;3613:15:1;;;10813:96:0::1;::::0;::::1;3595:34:1::0;3665:15;;3645:18;;;3638:43;3530:18;;10813:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10797:13;:112:::0;;-1:-1:-1;;;;;;10797:112:0::1;-1:-1:-1::0;;;;;10797:112:0;;::::1;;::::0;;10950:15:::1;::::0;;;::::1;-1:-1:-1::0;10922:45:0;;;:19:::1;:45;::::0;;;;;:52;;-1:-1:-1;;10922:52:0;;::::1;-1:-1:-1::0;10922:52:0;;::::1;::::0;;;11005:13;;;::::1;10985:34:::0;;;;:41;;;;::::1;;::::0;;;11039:15;::::1;:31;11078:21;11109:4;11115:24;11109:4:::0;11115:9:::1;:24::i;:::-;11140:1;11142::::0;11144:7:::1;2788::::0;2815:6;-1:-1:-1;;;;;2815:6:0;;2750:79;11144:7:::1;11039:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11039:129:0;;;-1:-1:-1;;;;;4330:15:1;;;11039:129:0::1;::::0;::::1;4312:34:1::0;4362:18;;;4355:34;;;;4405:18;;;4398:34;;;;4448:18;;;4441:34;4512:15;;;4491:19;;;4484:44;11152:15:0::1;4544:19:1::0;;;4537:35;4246:19;;11039:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11181:11:0::1;:18:::0;;-1:-1:-1;;;;11243:18:0;;-1:-1:-1;;;11243:18:0;;;;11312:15:::1;::::0;11274:71:::1;::::0;-1:-1:-1;;;11274:71:0;;-1:-1:-1;;;;;11312:15:0;;::::1;11274:71;::::0;::::1;3866:51:1::0;-1:-1:-1;;3933:18:1;;;3926:34;11281:13:0;;;-1:-1:-1;11274:29:0::1;::::0;3839:18:1;;11274:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2947:1;10456:897::o:0;13532:194::-;13598:15;;-1:-1:-1;;;;;13598:15:0;548:10;-1:-1:-1;;;;;13582:31:0;;13574:40;;;;;;13654:21;13686:32;13654:21;13686:12;:32::i;7812:335::-;-1:-1:-1;;;;;7905:19:0;;7897:68;;;;-1:-1:-1;;;7897:68:0;;9561:2:1;7897:68:0;;;9543:21:1;9600:2;9580:18;;;9573:30;9639:34;9619:18;;;9612:62;-1:-1:-1;;;9690:18:1;;;9683:34;9734:19;;7897:68:0;9533:226:1;7897:68:0;-1:-1:-1;;;;;7984:21:0;;7976:68;;;;-1:-1:-1;;;7976:68:0;;6400:2:1;7976:68:0;;;6382:21:1;6439:2;6419:18;;;6412:30;6478:34;6458:18;;;6451:62;-1:-1:-1;;;6529:18:1;;;6522:32;6571:19;;7976:68:0;6372:224:1;7976:68:0;-1:-1:-1;;;;;8055:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8107:32;;10262:25:1;;;8107:32:0;;10235:18:1;8107:32:0;;;;;;;7812:335;;;:::o;8155:1608::-;-1:-1:-1;;;;;8243:18:0;;8235:68;;;;-1:-1:-1;;;8235:68:0;;9155:2:1;8235:68:0;;;9137:21:1;9194:2;9174:18;;;9167:30;9233:34;9213:18;;;9206:62;-1:-1:-1;;;9284:18:1;;;9277:35;9329:19;;8235:68:0;9127:227:1;8235:68:0;-1:-1:-1;;;;;8322:16:0;;8314:64;;;;-1:-1:-1;;;8314:64:0;;5585:2:1;8314:64:0;;;5567:21:1;5624:2;5604:18;;;5597:30;5663:34;5643:18;;;5636:62;-1:-1:-1;;;5714:18:1;;;5707:33;5757:19;;8314:64:0;5557:225:1;8314:64:0;8418:6;8399:15;8409:4;8399:9;:15::i;:::-;:25;;8391:76;;;;-1:-1:-1;;;8391:76:0;;7159:2:1;8391:76:0;;;7141:21:1;7198:2;7178:18;;;7171:30;7237:34;7217:18;;;7210:62;-1:-1:-1;;;7288:18:1;;;7281:36;7334:19;;8391:76:0;7131:228:1;8391:76:0;2788:7;2815:6;-1:-1:-1;;;;;8484:15:0;;;2815:6;;8484:15;;;;:32;;-1:-1:-1;2788:7:0;2815:6;-1:-1:-1;;;;;8503:13:0;;;2815:6;;8503:13;;8484:32;8480:1231;;;-1:-1:-1;;;;;8544:10:0;;;;;;:4;:10;;;;;;;;8543:11;:24;;;;-1:-1:-1;;;;;;8559:8:0;;;;;;:4;:8;;;;;;;;8558:9;8543:24;8535:33;;;;;;-1:-1:-1;;;;;8590:25:0;;;;;;:19;:25;;;;;;;;8589:26;;:81;;-1:-1:-1;8628:13:0;;-1:-1:-1;;;;;8620:21:0;;;8628:13;;8620:21;:49;;;;-1:-1:-1;;;;;;8646:23:0;;;;;;:19;:23;;;;;;;;8645:24;8620:49;8585:202;;;8709:12;;8699:6;:22;;8691:80;;;;-1:-1:-1;;;8691:80:0;;7978:2:1;8691:80:0;;;7960:21:1;8017:2;7997:18;;;7990:30;8056:34;8036:18;;;8029:62;-1:-1:-1;;;8107:18:1;;;8100:43;8160:19;;8691:80:0;7950:235:1;8691:80:0;-1:-1:-1;;;;;8806:23:0;;;;;;:19;:23;;;;;;;;8801:163;;8884:16;;8874:6;8858:13;8868:2;8858:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;8850:98;;;;-1:-1:-1;;;8850:98:0;;7566:2:1;8850:98:0;;;7548:21:1;7605:2;7585:18;;;7578:30;7644:34;7624:18;;;7617:62;-1:-1:-1;;;7695:18:1;;;7688:41;7746:19;;8850:98:0;7538:233:1;8850:98:0;8992:13;;-1:-1:-1;;;;;8984:21:0;;;8992:13;;8984:21;:55;;;;-1:-1:-1;9023:15:0;;-1:-1:-1;;;;;9009:30:0;;;9023:15;;9009:30;;8984:55;:81;;;;-1:-1:-1;;;;;;9044:21:0;;;;;;:17;:21;;;;;;;;9043:22;8984:81;:100;;;;-1:-1:-1;9069:15:0;;-1:-1:-1;;;9069:15:0;;;;8984:100;8980:273;;;-1:-1:-1;;;;;9142:12:0;;;;;;:8;:12;;;;;;9157:15;-1:-1:-1;9134:39:0;;;;;;9207:30;:15;9226:10;9207:30;:::i;:::-;-1:-1:-1;;;;;9192:12:0;;;;;;:8;:12;;;;;:45;8980:273;9269:28;9300:24;9318:4;9300:9;:24::i;:::-;9346:6;;9269:55;;-1:-1:-1;;;;9346:6:0;;;;9345:7;:32;;;;-1:-1:-1;9364:13:0;;-1:-1:-1;;;;;9356:21:0;;;9364:13;;9356:21;;9345:32;:47;;;;-1:-1:-1;9381:11:0;;-1:-1:-1;;;9381:11:0;;;;9345:47;:88;;;;;9420:13;;9396:20;:37;;9345:88;9341:359;;;9454:38;9471:20;9454:16;:38::i;:::-;9540:21;9583:22;;9580:105;;9630:35;9643:21;9630:12;:35::i;:::-;9341:359;;8480:1231;;9725:30;9740:4;9745:2;9748:6;9725:14;:30::i;:::-;8155:1608;;;:::o;1605:190::-;1691:7;1727:12;1719:6;;;;1711:29;;;;-1:-1:-1;;;1711:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1751:9:0;1763:5;1767:1;1763;:5;:::i;:::-;1751:17;1605:190;-1:-1:-1;;;;;1605:190:0:o;9771:483::-;5312:6;:13;;-1:-1:-1;;;;5312:13:0;-1:-1:-1;;;5312:13:0;;;9873:16:::1;::::0;;9887:1:::1;9873:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9873:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9873:16:0::1;9849:40;;9918:4;9900;9905:1;9900:7;;;;;;-1:-1:-1::0;;;9900:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9900:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9944:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9944:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9900:7;;9944:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9934:4;9939:1;9934:7;;;;;;-1:-1:-1::0;;;9934:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9934:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10009:15:::1;::::0;9977:62:::1;::::0;9994:4:::1;::::0;10009:15:::1;10027:11:::0;9977:8:::1;:62::i;:::-;10050:15;::::0;:196:::1;::::0;-1:-1:-1;;;10050:196:0;;-1:-1:-1;;;;;10050:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10131:11;;10050:15:::1;::::0;10173:4;;10200::::1;::::0;10220:15:::1;::::0;10050:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5348:6:0;:14;;-1:-1:-1;;;;5348:14:0;;;-1:-1:-1;;;;9771:483:0:o;7550:254::-;7617:7;7656;;7645;:18;;7637:73;;;;-1:-1:-1;;;7637:73:0;;5989:2:1;7637:73:0;;;5971:21:1;6028:2;6008:18;;;6001:30;6067:34;6047:18;;;6040:62;-1:-1:-1;;;6118:18:1;;;6111:40;6168:19;;7637:73:0;5961:232:1;7637:73:0;7721:19;7744:10;:8;:10::i;:::-;7721:33;-1:-1:-1;7772:24:0;:7;7721:33;7772:11;:24::i;:::-;7765:31;7550:254;-1:-1:-1;;;7550:254:0:o;10270:174::-;10327:15;;-1:-1:-1;;;;;10327:15:0;:49;10352:23;10371:3;10352:14;:6;10363:2;10352:10;:14::i;:::-;:18;;:23::i;:::-;10327:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10387:15:0;;-1:-1:-1;;;;;10387:15:0;:49;10412:23;10431:3;10412:14;:6;10423:2;10412:10;:14::i;:23::-;10387:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11984:146;12078:44;12096:6;12104:9;12115:6;12078:17;:44::i;15054:163::-;15095:7;15116:15;15133;15152:19;:17;:19::i;:::-;15115:56;;-1:-1:-1;15115:56:0;-1:-1:-1;15189:20:0;15115:56;;15189:11;:20::i;:::-;15182:27;;;;15054:163;:::o;2057:132::-;2115:7;2142:39;2146:1;2149;2142:39;;;;;;;;;;;;;;;;;:3;:39::i;1803:246::-;1861:7;1885:6;1881:47;;-1:-1:-1;1915:1:0;1908:8;;1881:47;1938:9;1950:5;1954:1;1950;:5;:::i;:::-;1938:17;-1:-1:-1;1983:1:0;1974:5;1978:1;1938:17;1974:5;:::i;:::-;:10;1966:56;;;;-1:-1:-1;;;1966:56:0;;8392:2:1;1966:56:0;;;8374:21:1;8431:2;8411:18;;;8404:30;8470:34;8450:18;;;8443:62;-1:-1:-1;;;8521:18:1;;;8514:31;8562:19;;1966:56:0;8364:223:1;12138:763:0;12237:15;12254:23;12279:16;12297:23;12322:16;12340:13;12357:19;12368:7;12357:10;:19::i;:::-;-1:-1:-1;;;;;12415:15:0;;;;;;:7;:15;;;;;;12236:140;;-1:-1:-1;12236:140:0;;-1:-1:-1;12236:140:0;;-1:-1:-1;12236:140:0;-1:-1:-1;12236:140:0;-1:-1:-1;12236:140:0;-1:-1:-1;12415:28:0;;12236:140;12415:19;:28::i;:::-;-1:-1:-1;;;;;12397:15:0;;;;;;:7;:15;;;;;;;;:46;;;;12460:17;:25;;;;;;;:57;;-1:-1:-1;;;;;;12489:28:0;;;;;;:17;:28;;;;;;;;12460:57;12456:438;;;-1:-1:-1;;;;;12555:18:0;;;;;;:7;:18;;;;;;:31;;12578:7;12555:22;:31::i;:::-;-1:-1:-1;;;;;12534:18:0;;;;;;;:7;:18;;;;;;;:52;;;;12609:36;;;;;;;;;;12637:7;10262:25:1;;10250:2;10235:18;;10217:76;12609:36:0;;;;;;;;12456:438;;;-1:-1:-1;;;;;12699:18:0;;;;;;:7;:18;;;;;;:39;;12722:15;12699:22;:39::i;:::-;-1:-1:-1;;;;;12678:18:0;;;;;;:7;:18;;;;;:60;12754:16;12764:5;12754:9;:16::i;:::-;12785:31;12797:8;12807;12785:11;:31::i;:::-;12855:9;-1:-1:-1;;;;;12838:44:0;12847:6;-1:-1:-1;;;;;12838:44:0;;12866:15;12838:44;;;;10262:25:1;;10250:2;10235:18;;10217:76;12838:44:0;;;;;;;;12456:438;12138:763;;;;;;;;;:::o;15225:262::-;15322:7;;15275;;;;4441:25;15396:20;15322:7;4441:25;15396:11;:20::i;:::-;15386:7;:30;15382:61;;;-1:-1:-1;;15426:7:0;;;4441:25;;-1:-1:-1;15225:262:0;-1:-1:-1;15225:262:0:o;15382:61::-;15462:7;;15471;;-1:-1:-1;15225:262:0;-1:-1:-1;15225:262:0:o;2197:189::-;2283:7;2318:12;2311:5;2303:28;;;;-1:-1:-1;;;2303:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2342:9:0;2354:5;2358:1;2354;:5;:::i;13734:499::-;13793:7;13802;13811;13820;13829;13838;13859:23;13884:16;13902:13;13919:46;13931:7;13940:14;;13956:8;;13919:11;:46::i;:::-;13858:107;;;;;;13978:19;14001:10;:8;:10::i;:::-;13978:33;;14023:15;14040:23;14065:16;14085:50;14097:7;14106:8;14116:5;14123:11;14085;:50::i;:::-;14022:113;;-1:-1:-1;14022:113:0;-1:-1:-1;14022:113:0;-1:-1:-1;14192:15:0;;-1:-1:-1;14209:8:0;;-1:-1:-1;14219:5:0;;-1:-1:-1;;;;;13734:499:0;;;;;;;:::o;1461:136::-;1519:7;1546:43;1550:1;1553;1546:43;;;;;;;;;;;;;;;;;:3;:43::i;1274:179::-;1332:7;;1364:5;1368:1;1364;:5;:::i;:::-;1352:17;;1393:1;1388;:6;;1380:46;;;;-1:-1:-1;;;1380:46:0;;6803:2:1;1380:46:0;;;6785:21:1;6842:2;6822:18;;;6815:30;6881:29;6861:18;;;6854:57;6928:18;;1380:46:0;6775:177:1;12909:212:0;12962:19;12985:10;:8;:10::i;:::-;12962:33;-1:-1:-1;13006:13:0;13022:22;:5;12962:33;13022:9;:22::i;:::-;13096:4;13080:22;;;;:7;:22;;;;;;13006:38;;-1:-1:-1;13080:33:0;;13006:38;13080:26;:33::i;:::-;13071:4;13055:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12909:212:0:o;13129:147::-;13207:7;;:17;;13219:4;13207:11;:17::i;:::-;13197:7;:27;13248:10;;:20;;13263:4;13248:14;:20::i;:::-;13235:10;:33;-1:-1:-1;;13129:147:0:o;14241:371::-;14338:7;;;;14395:32;14423:3;14395:23;:7;14407:10;14395:11;:23::i;:32::-;14376:51;-1:-1:-1;14438:13:0;14454:29;14479:3;14454:20;:7;14466;14454:11;:20::i;:29::-;14438:45;-1:-1:-1;14494:23:0;14520:32;14438:45;14520:21;:7;14532:8;14520:11;:21::i;:::-;:25;;:32::i;:::-;14494:58;14588:8;;-1:-1:-1;14598:5:0;;-1:-1:-1;14241:371:0;;-1:-1:-1;;;;;14241:371:0:o;14620:429::-;14734:7;;;;14790:24;:7;14802:11;14790;:24::i;:::-;14772:42;-1:-1:-1;14825:16:0;14844:25;:8;14857:11;14844:12;:25::i;:::-;14825:44;-1:-1:-1;14880:13:0;14896:22;:5;14906:11;14896:9;:22::i;:::-;14880:38;-1:-1:-1;14929:23:0;14955:32;14880:38;14955:21;:7;14967:8;14955:11;:21::i;:32::-;15006:7;;;;-1:-1:-1;15032:8:0;;-1:-1:-1;14620:429:0;;-1:-1:-1;;;;;;;14620:429:0:o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:392::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:2;;;1563:6;1555;1548:22;1510:2;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1746:30;1705:32;1746:30;:::i;1813:325::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;2128:2;2113:18;;;;2100:32;;-1:-1:-1;;;1900:238:1:o;2143:251::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:2;;;2273:6;2265;2258:22;2220:2;2317:9;2304:23;2336:28;2358:5;2336:28;:::i;2399:255::-;2466:6;2519:2;2507:9;2498:7;2494:23;2490:32;2487:2;;;2540:6;2532;2525:22;2487:2;2577:9;2571:16;2596:28;2618:5;2596:28;:::i;2659:190::-;2718:6;2771:2;2759:9;2750:7;2746:23;2742:32;2739:2;;;2792:6;2784;2777:22;2739:2;-1:-1:-1;2820:23:1;;2729:120;-1:-1:-1;2729:120:1:o;2854:316::-;2942:6;2950;2958;3011:2;2999:9;2990:7;2986:23;2982:32;2979:2;;;3032:6;3024;3017:22;2979:2;3066:9;3060:16;3050:26;;3116:2;3105:9;3101:18;3095:25;3085:35;;3160:2;3149:9;3145:18;3139:25;3129:35;;2969:201;;;;;:::o;4775:603::-;4887:4;4916:2;4945;4934:9;4927:21;4977:6;4971:13;5020:6;5015:2;5004:9;5000:18;4993:34;5045:4;5058:140;5072:6;5069:1;5066:13;5058:140;;;5167:14;;;5163:23;;5157:30;5133:17;;;5152:2;5129:26;5122:66;5087:10;;5058:140;;;5216:6;5213:1;5210:13;5207:2;;;5286:4;5281:2;5272:6;5261:9;5257:22;5253:31;5246:45;5207:2;-1:-1:-1;5362:2:1;5341:15;-1:-1:-1;;5337:29:1;5322:45;;;;5369:2;5318:54;;4896:482;-1:-1:-1;;;4896:482:1:o;8592:356::-;8794:2;8776:21;;;8813:18;;;8806:30;8872:34;8867:2;8852:18;;8845:62;8939:2;8924:18;;8766:182::o;10298:983::-;10560:4;10608:3;10597:9;10593:19;10639:6;10628:9;10621:25;10665:2;10703:6;10698:2;10687:9;10683:18;10676:34;10746:3;10741:2;10730:9;10726:18;10719:31;10770:6;10805;10799:13;10836:6;10828;10821:22;10874:3;10863:9;10859:19;10852:26;;10913:2;10905:6;10901:15;10887:29;;10934:4;10947:195;10961:6;10958:1;10955:13;10947:195;;;11026:13;;-1:-1:-1;;;;;11022:39:1;11010:52;;11117:15;;;;11082:12;;;;11058:1;10976:9;10947:195;;;-1:-1:-1;;;;;;;11198:32:1;;;;11193:2;11178:18;;11171:60;-1:-1:-1;;;11262:3:1;11247:19;11240:35;11159:3;10569:712;-1:-1:-1;;;10569:712:1:o;11475:128::-;11515:3;11546:1;11542:6;11539:1;11536:13;11533:2;;;11552:18;;:::i;:::-;-1:-1:-1;11588:9:1;;11523:80::o;11608:217::-;11648:1;11674;11664:2;;-1:-1:-1;;;11699:31:1;;11753:4;11750:1;11743:15;11781:4;11706:1;11771:15;11664:2;-1:-1:-1;11810:9:1;;11654:171::o;11830:168::-;11870:7;11936:1;11932;11928:6;11924:14;11921:1;11918:21;11913:1;11906:9;11899:17;11895:45;11892:2;;;11943:18;;:::i;:::-;-1:-1:-1;11983:9:1;;11882:116::o;12003:125::-;12043:4;12071:1;12068;12065:8;12062:2;;;12076:18;;:::i;:::-;-1:-1:-1;12113:9:1;;12052:76::o;12133:127::-;12194:10;12189:3;12185:20;12182:1;12175:31;12225:4;12222:1;12215:15;12249:4;12246:1;12239:15;12265:131;-1:-1:-1;;;;;12340:31:1;;12330:42;;12320:2;;12386:1;12383;12376:12;12401:118;12487:5;12480:13;12473:21;12466:5;12463:32;12453:2;;12509:1;12506;12499:12

Swarm Source

ipfs://5847c8e25ded06a3153b7a0d712be44ccc10457cff1809da01ba4fb7cb215d96
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.