ETH Price: $2,640.00 (+0.71%)

Token

Merry Tweetmas (Tweetmas)
 

Overview

Max Total Supply

100,000,000 Tweetmas

Holders

109

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
MerryTweetmasERC20

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-20
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.12;

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
}

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 ERC20 {
    function getOwner() external view returns (address);
    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);
}

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(address(0));
        owner = address(0);
    }

    event OwnershipTransferred(address owner);
}

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

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

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

contract MerryTweetmasERC20 is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Merry Tweetmas";
    string public constant symbol = "Tweetmas";
    uint8 public constant decimals = 9;
    uint256 public constant totalSupply = 100 * 10**6 * 10**decimals;

    uint256 public _maxTxAmount = totalSupply / 100;
    uint256 public _maxWalletToken = totalSupply / 50;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isWalletLimitExempt;

    uint256 public constant totalFee = 5;
    uint256 public constant feeDenominator = 100;

    address public marketingWallet;

    mapping (address => bool) public isBlacklisted;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 2000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingWallet = 0x93032d335B7E3ECef8a721047F438a380d5AD718;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    function getOwner() external view override returns (address) { return owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        require(!isBlacklisted[sender],"bot");

        if (!isOwner(sender) && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }


    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        
        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 amountToSwap = swapThreshold;
        bool success;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        (success,) = address(marketingWallet).call{value: amountETH}("");
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply.sub(balanceOf[DEAD]).sub(balanceOf[ZERO]);
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }
    
    function blacklistWallet(address[] calldata _addresses, bool _status) external onlyOwner {
        for (uint256 i=0; i < _addresses.length; ++i) {
            isBlacklisted[_addresses[i]] = _status;
        }
    }

    function setMaxWalletPercent_base100(uint256 maxWallPercent_base100) external onlyOwner {
        require(maxWallPercent_base100 >= 1,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * maxWallPercent_base100 ) / 100;
    }
    function setMaxTxPercent_base100(uint256 maxTXPercentage_base100) external onlyOwner {
        require(maxTXPercentage_base100 >= 1,"Cannot set max transaction less than 1%");
        _maxTxAmount = (totalSupply * maxTXPercentage_base100 ) / 100;
    }
}

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":"address","name":"owner","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"blacklistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base100","type":"uint256"}],"name":"setMaxTxPercent_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base100","type":"uint256"}],"name":"setMaxWalletPercent_base100","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526064620000146009600a62000500565b62000024906305f5e10062000518565b6200003091906200053a565b6001556032620000436009600a62000500565b62000053906305f5e10062000518565b6200005f91906200053a565b600255600b805460ff60a01b1916600160a01b1790556107d0620000866009600a62000500565b62000096906305f5e10062000518565b620000a291906200053a565b600c55348015620000b257600080fd5b5060008054336001600160a01b031991821617909155600a8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000123573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014991906200055d565b6001600160a01b03908116608052600a546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200019a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c091906200055d565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023891906200055d565b600b80546001600160a01b039283166001600160a01b031991821617909155306000818152600460209081526040808320600a8054909716845282528083206000199055600880549095167393032d335b7e3ecef8a721047f438a380d5ad7181790945533825260058152838220805460ff1990811660019081179092556006835285842080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280548216831790557f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8805482168317905560079092528483208054831682179055928252928120805484168317905561dead90527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054909216179055620003719060099062000500565b62000381906305f5e10062000518565b33600081815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003c46009600a62000500565b620003d4906305f5e10062000518565b60405190815260200160405180910390a362000588565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000442578160001904821115620004265762000426620003eb565b808516156200043457918102915b93841c939080029062000406565b509250929050565b6000826200045b57506001620004fa565b816200046a57506000620004fa565b81600181146200048357600281146200048e57620004ae565b6001915050620004fa565b60ff841115620004a257620004a2620003eb565b50506001821b620004fa565b5060208310610133831016604e8410600b8410161715620004d3575081810a620004fa565b620004df838362000401565b8060001904821115620004f657620004f6620003eb565b0290505b92915050565b60006200051160ff8416836200044a565b9392505050565b6000816000190483118215151615620005355762000535620003eb565b500290565b6000826200055857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200057057600080fd5b81516001600160a01b03811681146200051157600080fd5b608051611789620005a4600039600061101101526117896000f3fe6080604052600436106101bb5760003560e01c806375f0a874116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461050c578063df20fd4914610552578063f887ea4014610572578063fe575a871461059257600080fd5b8063a9059cbb146104ac578063a9c98695146104cc578063c54d38d4146104ec57600080fd5b8063893d20e8116100c6578063893d20e81461041a5780638ff5ff701461043857806395d89b4114610458578063a8aa1b311461048c57600080fd5b806375f0a874146103b657806378109e54146103ee5780637d1db4a51461040457600080fd5b80632b112e4911610159578063571ac8b011610133578063571ac8b0146103315780636ddd17131461035157806370a0823114610372578063715018a61461039f57600080fd5b80632b112e49146102c65780632f54bf6e146102db578063313ce5671461030a57600080fd5b8063180b0d7e11610195578063180b0d7e1461026757806318160ddd1461027c5780631df4ccfc1461029157806323b872dd146102a657600080fd5b80630445b667146101c757806306fdde03146101f0578063095ea7b31461023757600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd600c5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5061022a6040518060400160405280600e81526020016d4d657272792054776565746d617360901b81525081565b6040516101e7919061132a565b34801561024357600080fd5b5061025761025236600461139b565b6105c2565b60405190151581526020016101e7565b34801561027357600080fd5b506101dd606481565b34801561028857600080fd5b506101dd61062f565b34801561029d57600080fd5b506101dd600581565b3480156102b257600080fd5b506102576102c13660046113c5565b61064c565b3480156102d257600080fd5b506101dd61070e565b3480156102e757600080fd5b506102576102f6366004611401565b6000546001600160a01b0391821691161490565b34801561031657600080fd5b5061031f600981565b60405160ff90911681526020016101e7565b34801561033d57600080fd5b5061025761034c366004611401565b61078e565b34801561035d57600080fd5b50600b5461025790600160a01b900460ff1681565b34801561037e57600080fd5b506101dd61038d366004611401565b60036020526000908152604090205481565b3480156103ab57600080fd5b506103b461079c565b005b3480156103c257600080fd5b506008546103d6906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b3480156103fa57600080fd5b506101dd60025481565b34801561041057600080fd5b506101dd60015481565b34801561042657600080fd5b506000546001600160a01b03166103d6565b34801561044457600080fd5b506103b461045336600461142c565b610815565b34801561046457600080fd5b5061022a6040518060400160405280600881526020016754776565746d617360c01b81525081565b34801561049857600080fd5b50600b546103d6906001600160a01b031681565b3480156104b857600080fd5b506102576104c736600461139b565b6108b4565b3480156104d857600080fd5b506103b46104e73660046114b0565b6108c1565b3480156104f857600080fd5b506103b46105073660046114b0565b61097e565b34801561051857600080fd5b506101dd6105273660046114c9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561055e57600080fd5b506103b461056d3660046114fc565b610a40565b34801561057e57600080fd5b50600a546103d6906001600160a01b031681565b34801561059e57600080fd5b506102576105ad366004611401565b60096020526000908152604090205460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061061d9086815260200190565b60405180910390a35060015b92915050565b61063b6009600a611612565b610649906305f5e100611621565b81565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146106f9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526004825283812033825290915291909120546106d4918490610aad565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610704848484610ae7565b90505b9392505050565b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5461dead60009081527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54909161078991610783906107756009600a611612565b610783906305f5e100611621565b90610e28565b905090565b6000610629826000196105c2565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c690611640565b60405180910390fd5b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6000546001600160a01b0316331461083f5760405162461bcd60e51b81526004016107c690611640565b60005b828110156108ae57816009600086868581811061086157610861611660565b90506020020160208101906108769190611401565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556108a781611676565b9050610842565b50505050565b6000610707338484610ae7565b6000546001600160a01b031633146108eb5760405162461bcd60e51b81526004016107c690611640565b60018110156109475760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016107c6565b6064816109566009600a611612565b610964906305f5e100611621565b61096e9190611621565b6109789190611691565b60025550565b6000546001600160a01b031633146109a85760405162461bcd60e51b81526004016107c690611640565b6001811015610a095760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b60648201526084016107c6565b606481610a186009600a611612565b610a26906305f5e100611621565b610a309190611621565b610a3a9190611691565b60015550565b6000546001600160a01b03163314610a6a5760405162461bcd60e51b81526004016107c690611640565b600b805460ff60a01b1916600160a01b8415150217905580610a8e6009600a611612565b610a9c906305f5e100611621565b610aa69190611691565b600c555050565b60008184841115610ad15760405162461bcd60e51b81526004016107c6919061132a565b506000610ade84866116b3565b95945050505050565b600d5460009060ff1615610b0757610b00848484610e6a565b9050610707565b6001600160a01b03841660009081526009602052604090205460ff1615610b565760405162461bcd60e51b8152602060048201526003602482015262189bdd60ea1b60448201526064016107c6565b6000546001600160a01b03858116911614158015610b8d57506001600160a01b03841660009081526007602052604090205460ff16155b8015610bb257506001600160a01b03831660009081526007602052604090205460ff16155b8015610bcc5750600b546001600160a01b03848116911614155b15610c46576002546001600160a01b038416600090815260036020526040902054610bf89084906116ca565b1115610c465760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107c6565b60015482111580610c6f57506001600160a01b03841660009081526006602052604090205460ff165b80610c9257506001600160a01b03831660009081526006602052604090205460ff165b610cd25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b610cda610f50565b15610ce757610ce7610fa6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054610d39918490610aad565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1680610d8657506001600160a01b03841660009081526005602052604090205460ff165b610d9957610d948584611122565b610d9b565b825b6001600160a01b038516600090815260036020526040902054909150610dc190826111e1565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e159085815260200190565b60405180910390a3506001949350505050565b600061070783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aad565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054610ebb918490610aad565b6001600160a01b038086166000908152600360205260408082209390935590851681522054610eea90836111e1565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f3e9086815260200190565b60405180910390a35060019392505050565b600b546000906001600160a01b03163314801590610f715750600d5460ff16155b8015610f865750600b54600160a01b900460ff165b8015610789575050600c5430600090815260036020526040902054101590565b600d805460ff19166001179055600c54604080516002808252606082018352600092839291906020830190803683370190505090503081600081518110610fef57610fef611660565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061104357611043611660565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906110899086906000908690309042906004016116e2565b600060405180830381600087803b1580156110a357600080fd5b505af11580156110b7573d6000803e3d6000fd5b50506008546040514793506001600160a01b0390911691508290600081818185875af1925050503d806000811461110a576040519150601f19603f3d011682016040523d82523d6000602084013e61110f565b606091505b5050600d805460ff191690555050505050565b600081158061112f575060005b1561113b575080610629565b6000611153606461114d856005611240565b906112bf565b905080156111cf573060009081526003602052604090205461117590826111e1565b30600081815260036020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c69085815260200190565b60405180910390a35b6111d98382610e28565b949350505050565b6000806111ee83856116ca565b9050838110156107075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c6565b60008261124f57506000610629565b600061125b8385611621565b9050826112688583611691565b146107075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b600061070783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361131d5760405162461bcd60e51b81526004016107c6919061132a565b506000610ade8486611691565b600060208083528351808285015260005b818110156113575785810183015185820160400152820161133b565b81811115611369576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461139657600080fd5b919050565b600080604083850312156113ae57600080fd5b6113b78361137f565b946020939093013593505050565b6000806000606084860312156113da57600080fd5b6113e38461137f565b92506113f16020850161137f565b9150604084013590509250925092565b60006020828403121561141357600080fd5b6107078261137f565b8035801515811461139657600080fd5b60008060006040848603121561144157600080fd5b833567ffffffffffffffff8082111561145957600080fd5b818601915086601f83011261146d57600080fd5b81358181111561147c57600080fd5b8760208260051b850101111561149157600080fd5b6020928301955093506114a7918601905061141c565b90509250925092565b6000602082840312156114c257600080fd5b5035919050565b600080604083850312156114dc57600080fd5b6114e58361137f565b91506114f36020840161137f565b90509250929050565b6000806040838503121561150f57600080fd5b6113b78361141c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561156957816000190482111561154f5761154f611518565b8085161561155c57918102915b93841c9390800290611533565b509250929050565b60008261158057506001610629565b8161158d57506000610629565b81600181146115a357600281146115ad576115c9565b6001915050610629565b60ff8411156115be576115be611518565b50506001821b610629565b5060208310610133831016604e8410600b84101617156115ec575081810a610629565b6115f6838361152e565b806000190482111561160a5761160a611518565b029392505050565b600061070760ff841683611571565b600081600019048311821515161561163b5761163b611518565b500290565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561168a5761168a611518565b5060010190565b6000826116ae57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156116c5576116c5611518565b500390565b600082198211156116dd576116dd611518565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117325784516001600160a01b03168352938301939183019160010161170d565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122067b343cdd5be177a0ec15dd5a413d1e751e619d56da8a09e2f772525282c592b64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806375f0a874116100ec578063a9059cbb1161008a578063dd62ed3e11610064578063dd62ed3e1461050c578063df20fd4914610552578063f887ea4014610572578063fe575a871461059257600080fd5b8063a9059cbb146104ac578063a9c98695146104cc578063c54d38d4146104ec57600080fd5b8063893d20e8116100c6578063893d20e81461041a5780638ff5ff701461043857806395d89b4114610458578063a8aa1b311461048c57600080fd5b806375f0a874146103b657806378109e54146103ee5780637d1db4a51461040457600080fd5b80632b112e4911610159578063571ac8b011610133578063571ac8b0146103315780636ddd17131461035157806370a0823114610372578063715018a61461039f57600080fd5b80632b112e49146102c65780632f54bf6e146102db578063313ce5671461030a57600080fd5b8063180b0d7e11610195578063180b0d7e1461026757806318160ddd1461027c5780631df4ccfc1461029157806323b872dd146102a657600080fd5b80630445b667146101c757806306fdde03146101f0578063095ea7b31461023757600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dd600c5481565b6040519081526020015b60405180910390f35b3480156101fc57600080fd5b5061022a6040518060400160405280600e81526020016d4d657272792054776565746d617360901b81525081565b6040516101e7919061132a565b34801561024357600080fd5b5061025761025236600461139b565b6105c2565b60405190151581526020016101e7565b34801561027357600080fd5b506101dd606481565b34801561028857600080fd5b506101dd61062f565b34801561029d57600080fd5b506101dd600581565b3480156102b257600080fd5b506102576102c13660046113c5565b61064c565b3480156102d257600080fd5b506101dd61070e565b3480156102e757600080fd5b506102576102f6366004611401565b6000546001600160a01b0391821691161490565b34801561031657600080fd5b5061031f600981565b60405160ff90911681526020016101e7565b34801561033d57600080fd5b5061025761034c366004611401565b61078e565b34801561035d57600080fd5b50600b5461025790600160a01b900460ff1681565b34801561037e57600080fd5b506101dd61038d366004611401565b60036020526000908152604090205481565b3480156103ab57600080fd5b506103b461079c565b005b3480156103c257600080fd5b506008546103d6906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b3480156103fa57600080fd5b506101dd60025481565b34801561041057600080fd5b506101dd60015481565b34801561042657600080fd5b506000546001600160a01b03166103d6565b34801561044457600080fd5b506103b461045336600461142c565b610815565b34801561046457600080fd5b5061022a6040518060400160405280600881526020016754776565746d617360c01b81525081565b34801561049857600080fd5b50600b546103d6906001600160a01b031681565b3480156104b857600080fd5b506102576104c736600461139b565b6108b4565b3480156104d857600080fd5b506103b46104e73660046114b0565b6108c1565b3480156104f857600080fd5b506103b46105073660046114b0565b61097e565b34801561051857600080fd5b506101dd6105273660046114c9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561055e57600080fd5b506103b461056d3660046114fc565b610a40565b34801561057e57600080fd5b50600a546103d6906001600160a01b031681565b34801561059e57600080fd5b506102576105ad366004611401565b60096020526000908152604090205460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061061d9086815260200190565b60405180910390a35060015b92915050565b61063b6009600a611612565b610649906305f5e100611621565b81565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146106f9576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526004825283812033825290915291909120546106d4918490610aad565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610704848484610ae7565b90505b9392505050565b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5461dead60009081527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54909161078991610783906107756009600a611612565b610783906305f5e100611621565b90610e28565b905090565b6000610629826000196105c2565b6000546001600160a01b031633146107cf5760405162461bcd60e51b81526004016107c690611640565b60405180910390fd5b604051600081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1600080546001600160a01b0319169055565b6000546001600160a01b0316331461083f5760405162461bcd60e51b81526004016107c690611640565b60005b828110156108ae57816009600086868581811061086157610861611660565b90506020020160208101906108769190611401565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556108a781611676565b9050610842565b50505050565b6000610707338484610ae7565b6000546001600160a01b031633146108eb5760405162461bcd60e51b81526004016107c690611640565b60018110156109475760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b60648201526084016107c6565b6064816109566009600a611612565b610964906305f5e100611621565b61096e9190611621565b6109789190611691565b60025550565b6000546001600160a01b031633146109a85760405162461bcd60e51b81526004016107c690611640565b6001811015610a095760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c657373206044820152667468616e20312560c81b60648201526084016107c6565b606481610a186009600a611612565b610a26906305f5e100611621565b610a309190611621565b610a3a9190611691565b60015550565b6000546001600160a01b03163314610a6a5760405162461bcd60e51b81526004016107c690611640565b600b805460ff60a01b1916600160a01b8415150217905580610a8e6009600a611612565b610a9c906305f5e100611621565b610aa69190611691565b600c555050565b60008184841115610ad15760405162461bcd60e51b81526004016107c6919061132a565b506000610ade84866116b3565b95945050505050565b600d5460009060ff1615610b0757610b00848484610e6a565b9050610707565b6001600160a01b03841660009081526009602052604090205460ff1615610b565760405162461bcd60e51b8152602060048201526003602482015262189bdd60ea1b60448201526064016107c6565b6000546001600160a01b03858116911614158015610b8d57506001600160a01b03841660009081526007602052604090205460ff16155b8015610bb257506001600160a01b03831660009081526007602052604090205460ff16155b8015610bcc5750600b546001600160a01b03848116911614155b15610c46576002546001600160a01b038416600090815260036020526040902054610bf89084906116ca565b1115610c465760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016107c6565b60015482111580610c6f57506001600160a01b03841660009081526006602052604090205460ff165b80610c9257506001600160a01b03831660009081526006602052604090205460ff165b610cd25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016107c6565b610cda610f50565b15610ce757610ce7610fa6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260039091529190912054610d39918490610aad565b6001600160a01b038516600090815260036020908152604080832093909355600590529081205460ff1680610d8657506001600160a01b03841660009081526005602052604090205460ff165b610d9957610d948584611122565b610d9b565b825b6001600160a01b038516600090815260036020526040902054909150610dc190826111e1565b6001600160a01b0380861660008181526003602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e159085815260200190565b60405180910390a3506001949350505050565b600061070783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610aad565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054610ebb918490610aad565b6001600160a01b038086166000908152600360205260408082209390935590851681522054610eea90836111e1565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f3e9086815260200190565b60405180910390a35060019392505050565b600b546000906001600160a01b03163314801590610f715750600d5460ff16155b8015610f865750600b54600160a01b900460ff165b8015610789575050600c5430600090815260036020526040902054101590565b600d805460ff19166001179055600c54604080516002808252606082018352600092839291906020830190803683370190505090503081600081518110610fef57610fef611660565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061104357611043611660565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906110899086906000908690309042906004016116e2565b600060405180830381600087803b1580156110a357600080fd5b505af11580156110b7573d6000803e3d6000fd5b50506008546040514793506001600160a01b0390911691508290600081818185875af1925050503d806000811461110a576040519150601f19603f3d011682016040523d82523d6000602084013e61110f565b606091505b5050600d805460ff191690555050505050565b600081158061112f575060005b1561113b575080610629565b6000611153606461114d856005611240565b906112bf565b905080156111cf573060009081526003602052604090205461117590826111e1565b30600081815260036020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c69085815260200190565b60405180910390a35b6111d98382610e28565b949350505050565b6000806111ee83856116ca565b9050838110156107075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107c6565b60008261124f57506000610629565b600061125b8385611621565b9050826112688583611691565b146107075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107c6565b600061070783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361131d5760405162461bcd60e51b81526004016107c6919061132a565b506000610ade8486611691565b600060208083528351808285015260005b818110156113575785810183015185820160400152820161133b565b81811115611369576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461139657600080fd5b919050565b600080604083850312156113ae57600080fd5b6113b78361137f565b946020939093013593505050565b6000806000606084860312156113da57600080fd5b6113e38461137f565b92506113f16020850161137f565b9150604084013590509250925092565b60006020828403121561141357600080fd5b6107078261137f565b8035801515811461139657600080fd5b60008060006040848603121561144157600080fd5b833567ffffffffffffffff8082111561145957600080fd5b818601915086601f83011261146d57600080fd5b81358181111561147c57600080fd5b8760208260051b850101111561149157600080fd5b6020928301955093506114a7918601905061141c565b90509250925092565b6000602082840312156114c257600080fd5b5035919050565b600080604083850312156114dc57600080fd5b6114e58361137f565b91506114f36020840161137f565b90509250929050565b6000806040838503121561150f57600080fd5b6113b78361141c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561156957816000190482111561154f5761154f611518565b8085161561155c57918102915b93841c9390800290611533565b509250929050565b60008261158057506001610629565b8161158d57506000610629565b81600181146115a357600281146115ad576115c9565b6001915050610629565b60ff8411156115be576115be611518565b50506001821b610629565b5060208310610133831016604e8410600b84101617156115ec575081810a610629565b6115f6838361152e565b806000190482111561160a5761160a611518565b029392505050565b600061070760ff841683611571565b600081600019048311821515161561163b5761163b611518565b500290565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561168a5761168a611518565b5060010190565b6000826116ae57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156116c5576116c5611518565b500390565b600082198211156116dd576116dd611518565b500190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117325784516001600160a01b03168352938301939183019160010161170d565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122067b343cdd5be177a0ec15dd5a413d1e751e619d56da8a09e2f772525282c592b64736f6c634300080c0033

Deployed Bytecode Sourcemap

3059:6943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4203:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4203:49:0;;;;;;;;3321:46;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3321:46:0;;;;;;;;;;;;:::i;5409:216::-;;;;;;;;;;-1:-1:-1;5409:216:0;;;;;:::i;:::-;;:::i;:::-;;;1400:14:1;;1393:22;1375:41;;1363:2;1348:18;5409:216:0;1235:187:1;3960:44:0;;;;;;;;;;;;4001:3;3960:44;;3464:64;;;;;;;;;;;;;:::i;3917:36::-;;;;;;;;;;;;3952:1;3917:36;;5927:370;;;;;;;;;;-1:-1:-1;5927:370:0;;;;;:::i;:::-;;:::i;8918:141::-;;;;;;;;;;;;;:::i;2285:103::-;;;;;;;;;;-1:-1:-1;2285:103:0;;;;;:::i;:::-;2340:4;2375:5;-1:-1:-1;;;;;2364:16:0;;;2375:5;;2364:16;;2285:103;3423:34;;;;;;;;;;;;3456:1;3423:34;;;;;2123:4:1;2111:17;;;2093:36;;2081:2;2066:18;3423:34:0;1951:184:1;5633:122:0;;;;;;;;;;-1:-1:-1;5633:122:0;;;;;:::i;:::-;;:::i;4166:30::-;;;;;;;;;;-1:-1:-1;4166:30:0;;;;-1:-1:-1;;;4166:30:0;;;;;;3649:45;;;;;;;;;;-1:-1:-1;3649:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2396:131;;;;;;;;;;;;;:::i;:::-;;4013:30;;;;;;;;;;-1:-1:-1;4013:30:0;;;;-1:-1:-1;;;;;4013:30:0;;;;;;-1:-1:-1;;;;;2304:32:1;;;2286:51;;2274:2;2259:18;4013:30:0;2140:203:1;3591:49:0;;;;;;;;;;;;;;;;3537:47;;;;;;;;;;;;;;;;5184:78;;;;;;;;;;-1:-1:-1;5236:7:0;5254:5;-1:-1:-1;;;;;5254:5:0;5184:78;;9258:218;;;;;;;;;;-1:-1:-1;9258:218:0;;;;;:::i;:::-;;:::i;3374:42::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3374:42:0;;;;;4138:19;;;;;;;;;;-1:-1:-1;4138:19:0;;;;-1:-1:-1;;;;;4138:19:0;;;5763:156;;;;;;;;;;-1:-1:-1;5763:156:0;;;;;:::i;:::-;;:::i;9484:254::-;;;;;;;;;;-1:-1:-1;9484:254:0;;;;;:::i;:::-;;:::i;9744:255::-;;;;;;;;;;-1:-1:-1;9744:255:0;;;;;:::i;:::-;;:::i;5268:133::-;;;;;;;;;;-1:-1:-1;5268:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5370:19:0;;;5352:7;5370:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5268:133;9067:179;;;;;;;;;;-1:-1:-1;9067:179:0;;;;;:::i;:::-;;:::i;4107:24::-;;;;;;;;;;-1:-1:-1;4107:24:0;;;;-1:-1:-1;;;;;4107:24:0;;;4052:46;;;;;;;;;;-1:-1:-1;4052:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5409:216;5513:10;5484:4;5501:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5501:32:0;;;;;;;;;;:41;;;5558:37;5484:4;;5501:32;;5558:37;;;;5536:6;160:25:1;;148:2;133:18;;14:177;5558:37:0;;;;;;;;-1:-1:-1;5613:4:0;5409:216;;;;;:::o;3464:64::-;3516:12;3456:1;3516:2;:12;:::i;:::-;3502:26;;:11;:26;:::i;:::-;3464:64;:::o;5927:370::-;-1:-1:-1;;;;;6047:19:0;;6027:4;6047:19;;;:11;:19;;;;;;;;6067:10;6047:31;;;;;;;;-1:-1:-1;;6047:52:0;6044:186;;6149:69;;;;;;;;;;;-1:-1:-1;;;6149:69:0;;;;;;;;-1:-1:-1;;;;;6149:19:0;;-1:-1:-1;6149:19:0;;;:11;:19;;;;;6169:10;6149:31;;;;;;;;;;:69;;6185:6;;6149:35;:69::i;:::-;-1:-1:-1;;;;;6115:19:0;;;;;;:11;:19;;;;;;;;6135:10;6115:31;;;;;;;:103;6044:186;6249:40;6263:6;6271:9;6282:6;6249:13;:40::i;:::-;6242:47;;5927:370;;;;;;:::o;8918:141::-;9035:9;:15;;;;3197:42;8971:7;9014:15;;;;;8971:7;;8998:53;;:32;;3516:12;3456:1;3516:2;:12;:::i;:::-;3502:26;;:11;:26;:::i;:::-;8998:15;;:32::i;:53::-;8991:60;;8918:141;:::o;5633:122::-;5688:4;5712:35;5720:7;-1:-1:-1;;5712:7:0;:35::i;2396:131::-;2340:4;2375:5;-1:-1:-1;;;;;2375:5:0;2244:10;2364:16;2228:38;;;;-1:-1:-1;;;2228:38:0;;;;;;;:::i;:::-;;;;;;;;;2458:32:::1;::::0;2487:1:::1;2286:51:1::0;;2458:32:0::1;::::0;2274:2:1;2259:18;2458:32:0::1;;;;;;;2517:1;2501:18:::0;;-1:-1:-1;;;;;;2501:18:0::1;::::0;;2396:131::o;9258:218::-;2340:4;2375:5;-1:-1:-1;;;;;2375:5:0;2244:10;2364:16;2228:38;;;;-1:-1:-1;;;2228:38:0;;;;;;;:::i;:::-;9363:9:::1;9358:111;9376:21:::0;;::::1;9358:111;;;9450:7;9419:13;:28;9433:10;;9444:1;9433:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9419:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9419:28:0;:38;;-1:-1:-1;;9419:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9399:3:::1;::::0;::::1;:::i;:::-;;;9358:111;;;;9258:218:::0;;;:::o;5763:156::-;5843:4;5867:44;5881:10;5893:9;5904:6;5867:13;:44::i;9484:254::-;2340:4;2375:5;-1:-1:-1;;;;;2375:5:0;2244:10;2364:16;2228:38;;;;-1:-1:-1;;;2228:38:0;;;;;;;:::i;:::-;9617:1:::1;9591:22;:27;;9583:73;;;::::0;-1:-1:-1;;;9583:73:0;;6632:2:1;9583:73:0::1;::::0;::::1;6614:21:1::0;6671:2;6651:18;;;6644:30;6710:34;6690:18;;;6683:62;-1:-1:-1;;;6761:18:1;;;6754:32;6803:19;;9583:73:0::1;6430:398:1::0;9583:73:0::1;9727:3;9700:22:::0;3516:12:::1;3456:1;3516:2;:12;:::i;:::-;3502:26;::::0;:11:::1;:26;:::i;:::-;9686:36;;;;:::i;:::-;9685:45;;;;:::i;:::-;9667:15;:63:::0;-1:-1:-1;9484:254:0:o;9744:255::-;2340:4;2375:5;-1:-1:-1;;;;;2375:5:0;2244:10;2364:16;2228:38;;;;-1:-1:-1;;;2228:38:0;;;;;;;:::i;:::-;9875:1:::1;9848:23;:28;;9840:79;;;::::0;-1:-1:-1;;;9840:79:0;;7257:2:1;9840:79:0::1;::::0;::::1;7239:21:1::0;7296:2;7276:18;;;7269:30;7335:34;7315:18;;;7308:62;-1:-1:-1;;;7386:18:1;;;7379:37;7433:19;;9840:79:0::1;7055:403:1::0;9840:79:0::1;9988:3;9960:23:::0;3516:12:::1;3456:1;3516:2;:12;:::i;:::-;3502:26;::::0;:11:::1;:26;:::i;:::-;9946:37;;;;:::i;:::-;9945:46;;;;:::i;:::-;9930:12;:61:::0;-1:-1:-1;9744:255:0:o;9067:179::-;2340:4;2375:5;-1:-1:-1;;;;;2375:5:0;2244:10;2364:16;2228:38;;;;-1:-1:-1;;;2228:38:0;;;;;;;:::i;:::-;9163:11:::1;:22:::0;;-1:-1:-1;;;;9163:22:0::1;-1:-1:-1::0;;;9163:22:0;::::1;;;;::::0;;9226:12;3516::::1;3456:1;3516:2;:12;:::i;:::-;3502:26;::::0;:11:::1;:26;:::i;:::-;9212;;;;:::i;:::-;9196:13;:42:::0;-1:-1:-1;;9067:179:0:o;604:192::-;690:7;726:12;718:6;;;;710:29;;;;-1:-1:-1;;;710:29:0;;;;;;;;:::i;:::-;-1:-1:-1;750:9:0;762:5;766:1;762;:5;:::i;:::-;750:17;604:192;-1:-1:-1;;;;;604:192:0:o;6305:1008::-;6417:6;;6397:4;;6417:6;;6414:63;;;6433:41;6448:6;6456:9;6467:6;6433:14;:41::i;:::-;6426:48;;;;6414:63;-1:-1:-1;;;;;6506:21:0;;;;;;:13;:21;;;;;;;;6505:22;6497:37;;;;-1:-1:-1;;;6497:37:0;;7795:2:1;6497:37:0;;;7777:21:1;7834:1;7814:18;;;7807:29;-1:-1:-1;;;7852:18:1;;;7845:33;7895:18;;6497:37:0;7593:326:1;6497:37:0;2340:4;2375:5;-1:-1:-1;;;;;2364:16:0;;;2375:5;;2364:16;6551;:48;;;;-1:-1:-1;;;;;;6572:27:0;;;;;;:19;:27;;;;;;;;6571:28;6551:48;:83;;;;-1:-1:-1;;;;;;6604:30:0;;;;;;:19;:30;;;;;;;;6603:31;6551:83;:104;;;;-1:-1:-1;6651:4:0;;-1:-1:-1;;;;;6638:17:0;;;6651:4;;6638:17;;6551:104;6547:223;;;6715:15;;-1:-1:-1;;;;;6681:20:0;;;;;;:9;:20;;;;;;:29;;6704:6;;6681:29;:::i;:::-;6680:50;;6672:86;;;;-1:-1:-1;;;6672:86:0;;8259:2:1;6672:86:0;;;8241:21:1;8298:2;8278:18;;;8271:30;8337:26;8317:18;;;8310:54;8381:18;;6672:86:0;8057:348:1;6672:86:0;6801:12;;6791:6;:22;;6790:51;;;-1:-1:-1;;;;;;6818:23:0;;;;;;:15;:23;;;;;;;;6790:51;:81;;;-1:-1:-1;;;;;;6845:26:0;;;;;;:15;:26;;;;;;;;6790:81;6782:111;;;;-1:-1:-1;;;6782:111:0;;8612:2:1;6782:111:0;;;8594:21:1;8651:2;8631:18;;;8624:30;-1:-1:-1;;;8670:18:1;;;8663:47;8727:18;;6782:111:0;8410:341:1;6782:111:0;6909:16;:14;:16::i;:::-;6906:35;;;6928:10;:8;:10::i;:::-;6973:53;;;;;;;;;;;-1:-1:-1;;;6973:53:0;;;;;;;;-1:-1:-1;;;;;6973:17:0;;-1:-1:-1;6973:17:0;;;:9;:17;;;;;;;;:53;;6995:6;;6973:21;:53::i;:::-;-1:-1:-1;;;;;6953:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7065:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7088:22:0;;;;;;:11;:22;;;;;;;;7065:45;7064:82;;7123:23;7131:6;7139;7123:7;:23::i;:::-;7064:82;;;7114:6;7064:82;-1:-1:-1;;;;;7182:20:0;;;;;;:9;:20;;;;;;7039:107;;-1:-1:-1;7182:40:0;;7039:107;7182:24;:40::i;:::-;-1:-1:-1;;;;;7159:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7240:43;;;;;;;;;;7268:14;160:25:1;;148:2;133:18;;14:177;7240:43:0;;;;;;;;-1:-1:-1;7301:4:0;;6305:1008;-1:-1:-1;;;;6305:1008:0:o;462:136::-;520:7;547:43;551:1;554;547:43;;;;;;;;;;;;;;;;;:3;:43::i;7325:330::-;7455:53;;;;;;;;;;;-1:-1:-1;;;7455:53:0;;;;;;;;-1:-1:-1;;;;;7455:17:0;;7418:4;7455:17;;;:9;:17;;;;;;;:53;;7477:6;;7455:21;:53::i;:::-;-1:-1:-1;;;;;7435:17:0;;;;;;;:9;:17;;;;;;:73;;;;7542:20;;;;;;;:32;;7567:6;7542:24;:32::i;:::-;-1:-1:-1;;;;;7519:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7590:35;;;;;;;;;;7618:6;160:25:1;;148:2;133:18;;14:177;7590:35:0;;;;;;;;-1:-1:-1;7643:4:0;7325:330;;;;;:::o;8147:197::-;8234:4;;8196;;-1:-1:-1;;;;;8234:4:0;8220:10;:18;;;;:38;;-1:-1:-1;8252:6:0;;;;8251:7;8220:38;:62;;;;-1:-1:-1;8271:11:0;;-1:-1:-1;;;8271:11:0;;;;8220:62;:116;;;;-1:-1:-1;;8323:13:0;;8313:4;8295:24;;;;:9;:24;;;;;;:41;;;8147:197::o;8352:558::-;4299:6;:13;;-1:-1:-1;;4299:13:0;4308:4;4299:13;;;8424::::1;::::0;8497:16:::1;::::0;;8511:1:::1;8497:16:::0;;;;;::::1;::::0;;-1:-1:-1;;;;8497:16:0;8511:1;8497:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8497:16:0::1;8473:40;;8542:4;8524;8529:1;8524:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8524:23:0::1;;;-1:-1:-1::0;;;;;8524:23:0::1;;;::::0;::::1;8568:4;8558;8563:1;8558:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8558:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;8585:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;8585:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;8657:12;;8585:6:::1;::::0;8700:4;;8727::::1;::::0;8747:15:::1;::::0;8585:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8859:15:0::1;::::0;8851:51:::1;::::0;8806:21:::1;::::0;-1:-1:-1;;;;;;8859:15:0;;::::1;::::0;-1:-1:-1;8806:21:0;;8851:51:::1;::::0;;;8806:21;8859:15;8851:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;4317:6:0;:14;;-1:-1:-1;;4317:14:0;;;-1:-1:-1;;;;;8352:558:0:o;7665:474::-;7732:7;7755:11;;;:28;;-1:-1:-1;7782:1:0;7755:28;7752:72;;;-1:-1:-1;7806:6:0;7799:13;;7752:72;7834:17;7854:40;4001:3;7854:20;:6;3952:1;7854:10;:20::i;:::-;:24;;:40::i;:::-;7834:60;-1:-1:-1;7918:13:0;;7915:176;;7992:4;7974:24;;;;:9;:24;;;;;;:39;;8003:9;7974:28;:39::i;:::-;7965:4;7947:24;;;;:9;:24;;;;;;;:66;;;;8033:42;;-1:-1:-1;;;;;8033:42:0;;;;;;;8065:9;160:25:1;;148:2;133:18;;14:177;8033:42:0;;;;;;;;7915:176;8110:21;:6;8121:9;8110:10;:21::i;:::-;8103:28;7665:474;-1:-1:-1;;;;7665:474:0:o;275:181::-;333:7;;365:5;369:1;365;:5;:::i;:::-;353:17;;394:1;389;:6;;381:46;;;;-1:-1:-1;;;381:46:0;;10285:2:1;381:46:0;;;10267:21:1;10324:2;10304:18;;;10297:30;10363:29;10343:18;;;10336:57;10410:18;;381:46:0;10083:351:1;802:250:0;860:7;884:6;880:47;;-1:-1:-1;914:1:0;907:8;;880:47;939:9;951:5;955:1;951;:5;:::i;:::-;939:17;-1:-1:-1;984:1:0;975:5;979:1;939:17;975:5;:::i;:::-;:10;967:56;;;;-1:-1:-1;;;967:56:0;;10641:2:1;967:56:0;;;10623:21:1;10680:2;10660:18;;;10653:30;10719:34;10699:18;;;10692:62;-1:-1:-1;;;10770:18:1;;;10763:31;10811:19;;967:56:0;10439:397:1;1058:132:0;1116:7;1143:39;1147:1;1150;1143:39;;;;;;;;;;;;;;;;;1282:7;1317:12;1310:5;1302:28;;;;-1:-1:-1;;;1302:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1341:9:0;1353:5;1357:1;1353;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:173::-;866:20;;-1:-1:-1;;;;;915:31:1;;905:42;;895:70;;961:1;958;951:12;895:70;798:173;;;:::o;976:254::-;1044:6;1052;1105:2;1093:9;1084:7;1080:23;1076:32;1073:52;;;1121:1;1118;1111:12;1073:52;1144:29;1163:9;1144:29;:::i;:::-;1134:39;1220:2;1205:18;;;;1192:32;;-1:-1:-1;;;976:254:1:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1760:186::-;1819:6;1872:2;1860:9;1851:7;1847:23;1843:32;1840:52;;;1888:1;1885;1878:12;1840:52;1911:29;1930:9;1911:29;:::i;2348:160::-;2413:20;;2469:13;;2462:21;2452:32;;2442:60;;2498:1;2495;2488:12;2513:689;2605:6;2613;2621;2674:2;2662:9;2653:7;2649:23;2645:32;2642:52;;;2690:1;2687;2680:12;2642:52;2730:9;2717:23;2759:18;2800:2;2792:6;2789:14;2786:34;;;2816:1;2813;2806:12;2786:34;2854:6;2843:9;2839:22;2829:32;;2899:7;2892:4;2888:2;2884:13;2880:27;2870:55;;2921:1;2918;2911:12;2870:55;2961:2;2948:16;2987:2;2979:6;2976:14;2973:34;;;3003:1;3000;2993:12;2973:34;3058:7;3051:4;3041:6;3038:1;3034:14;3030:2;3026:23;3022:34;3019:47;3016:67;;;3079:1;3076;3069:12;3016:67;3110:4;3102:13;;;;-1:-1:-1;3134:6:1;-1:-1:-1;3159:37:1;;3175:20;;;-1:-1:-1;3159:37:1;:::i;:::-;3149:47;;2513:689;;;;;:::o;3207:180::-;3266:6;3319:2;3307:9;3298:7;3294:23;3290:32;3287:52;;;3335:1;3332;3325:12;3287:52;-1:-1:-1;3358:23:1;;3207:180;-1:-1:-1;3207:180:1:o;3392:260::-;3460:6;3468;3521:2;3509:9;3500:7;3496:23;3492:32;3489:52;;;3537:1;3534;3527:12;3489:52;3560:29;3579:9;3560:29;:::i;:::-;3550:39;;3608:38;3642:2;3631:9;3627:18;3608:38;:::i;:::-;3598:48;;3392:260;;;;;:::o;3657:248::-;3722:6;3730;3783:2;3771:9;3762:7;3758:23;3754:32;3751:52;;;3799:1;3796;3789:12;3751:52;3822:26;3838:9;3822:26;:::i;4136:127::-;4197:10;4192:3;4188:20;4185:1;4178:31;4228:4;4225:1;4218:15;4252:4;4249:1;4242:15;4268:422;4357:1;4400:5;4357:1;4414:270;4435:7;4425:8;4422:21;4414:270;;;4494:4;4490:1;4486:6;4482:17;4476:4;4473:27;4470:53;;;4503:18;;:::i;:::-;4553:7;4543:8;4539:22;4536:55;;;4573:16;;;;4536:55;4652:22;;;;4612:15;;;;4414:270;;;4418:3;4268:422;;;;;:::o;4695:806::-;4744:5;4774:8;4764:80;;-1:-1:-1;4815:1:1;4829:5;;4764:80;4863:4;4853:76;;-1:-1:-1;4900:1:1;4914:5;;4853:76;4945:4;4963:1;4958:59;;;;5031:1;5026:130;;;;4938:218;;4958:59;4988:1;4979:10;;5002:5;;;5026:130;5063:3;5053:8;5050:17;5047:43;;;5070:18;;:::i;:::-;-1:-1:-1;;5126:1:1;5112:16;;5141:5;;4938:218;;5240:2;5230:8;5227:16;5221:3;5215:4;5212:13;5208:36;5202:2;5192:8;5189:16;5184:2;5178:4;5175:12;5171:35;5168:77;5165:159;;;-1:-1:-1;5277:19:1;;;5309:5;;5165:159;5356:34;5381:8;5375:4;5356:34;:::i;:::-;5426:6;5422:1;5418:6;5414:19;5405:7;5402:32;5399:58;;;5437:18;;:::i;:::-;5475:20;;4695:806;-1:-1:-1;;;4695:806:1:o;5506:140::-;5564:5;5593:47;5634:4;5624:8;5620:19;5614:4;5593:47;:::i;5651:168::-;5691:7;5757:1;5753;5749:6;5745:14;5742:1;5739:21;5734:1;5727:9;5720:17;5716:45;5713:71;;;5764:18;;:::i;:::-;-1:-1:-1;5804:9:1;;5651:168::o;5824:329::-;6026:2;6008:21;;;6065:1;6045:18;;;6038:29;-1:-1:-1;;;6098:2:1;6083:18;;6076:36;6144:2;6129:18;;5824:329::o;6158:127::-;6219:10;6214:3;6210:20;6207:1;6200:31;6250:4;6247:1;6240:15;6274:4;6271:1;6264:15;6290:135;6329:3;-1:-1:-1;;6350:17:1;;6347:43;;;6370:18;;:::i;:::-;-1:-1:-1;6417:1:1;6406:13;;6290:135::o;6833:217::-;6873:1;6899;6889:132;;6943:10;6938:3;6934:20;6931:1;6924:31;6978:4;6975:1;6968:15;7006:4;7003:1;6996:15;6889:132;-1:-1:-1;7035:9:1;;6833:217::o;7463:125::-;7503:4;7531:1;7528;7525:8;7522:34;;;7536:18;;:::i;:::-;-1:-1:-1;7573:9:1;;7463:125::o;7924:128::-;7964:3;7995:1;7991:6;7988:1;7985:13;7982:39;;;8001:18;;:::i;:::-;-1:-1:-1;8037:9:1;;7924:128::o;8888:980::-;9150:4;9198:3;9187:9;9183:19;9229:6;9218:9;9211:25;9255:2;9293:6;9288:2;9277:9;9273:18;9266:34;9336:3;9331:2;9320:9;9316:18;9309:31;9360:6;9395;9389:13;9426:6;9418;9411:22;9464:3;9453:9;9449:19;9442:26;;9503:2;9495:6;9491:15;9477:29;;9524:1;9534:195;9548:6;9545:1;9542:13;9534:195;;;9613:13;;-1:-1:-1;;;;;9609:39:1;9597:52;;9704:15;;;;9669:12;;;;9645:1;9563:9;9534:195;;;-1:-1:-1;;;;;;;9785:32:1;;;;9780:2;9765:18;;9758:60;-1:-1:-1;;;9849:3:1;9834:19;9827:35;9746:3;8888:980;-1:-1:-1;;;8888:980:1:o

Swarm Source

ipfs://67b343cdd5be177a0ec15dd5a413d1e751e619d56da8a09e2f772525282c592b
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.