ETH Price: $3,095.96 (-0.83%)

Token

Brainz Finance ($BRAINZ)
 

Overview

Max Total Supply

200,000,000 $BRAINZ

Holders

140

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 $BRAINZ

Value
$0.00
0xd33ef060b4f0c80ea10da50de8fc03c2903b8187
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:
ERC20BrainzFinance

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-27
*/

// SPDX-License-Identifier: MIT

/*

TG: https://t.me/brainzFinance
Web: www.brainz.finance
X: https://x.com/brainzFinance

Brainz Finance
The First Meme coin to integrate Liquid Staking Derivatives with 2,500% APY - Giving power to ETH stakers

*/

pragma solidity 0.8.21;

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 public 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() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    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 ERC20BrainzFinance is ERC20, Auth {
    using SafeMath for uint256;

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

    string public constant name = "Brainz Finance";
    string public constant symbol = "$BRAINZ";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 200_000_000 * 10**decimals;

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

    mapping (address => bool) public isFeeExempt;

    uint256 public marketingFee = 7;
    uint256 public opsFee = 3;
    uint256 public totalFee = marketingFee + opsFee;
    uint256 public constant feeDenominator = 100;
    
    uint256 public buyMultiplier = 100;
    uint256 public sellMultiplier = 100;
    uint256 public transferMultiplier = 0;

    address public marketingFeeReceiver;
    address public opsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public swapEnabled = false;
    uint256 public swapThreshold = totalSupply / 500;
    
    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;

        marketingFeeReceiver = msg.sender;
        opsFeeReceiver = msg.sender;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[opsFeeReceiver] = 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); }

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

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

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

        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, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        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 manualSwap() external {
        payable(opsFeeReceiver).transfer(address(this).balance);
    }

    function swapBack() internal swapping {

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

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

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHOps = (amountETH * opsFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(opsFeeReceiver).transfer(amountETHOps);
    }

    function manage_feeExempt(address[] calldata addresses, bool status) external onlyOwner {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
        }
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setTaxes(uint256 _marketingFee, uint256 _opsFee) external onlyOwner {
        marketingFee = _marketingFee;
        opsFee = _opsFee;
        totalFee = marketingFee + opsFee;
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _opsFeeReceiver ) external onlyOwner {
        marketingFeeReceiver = _marketingFeeReceiver;
        opsFeeReceiver = _opsFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

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

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":[{"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":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"isFeeExempt","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_feeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","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":"opsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"opsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_opsFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","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":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_opsFee","type":"uint256"}],"name":"setTaxes","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"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260076004819055600360058190556200001d916200031e565b600655606460078190556008555f600955600c805460ff60a01b191690556101f46200004c6012600a62000433565b6200005c90630bebc2006200044a565b62000068919062000464565b600d5534801562000077575f80fd5b505f8054336001600160a01b031991821617909155600c8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620000e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200010b919062000484565b6001600160a01b03908116608052600c546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200015a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000180919062000484565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015620001cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000484565b6001600160a01b0390811660a052305f908152600260209081526040808320600c548516845282528083205f199055600a8054336001600160a01b031991821681178355600b80549092168117825585526003909352818420805460ff19908116600190811790925582548716865283862080548216831790559354909516845292208054909116909217909155620002919060129062000433565b620002a190630bebc2006200044a565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002e36012600a62000433565b620002f390630bebc2006200044a565b60405190815260200160405180910390a3620004ac565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200033457620003346200030a565b92915050565b600181815b808511156200037a57815f19048211156200035e576200035e6200030a565b808516156200036c57918102915b93841c93908002906200033f565b509250929050565b5f82620003925750600162000334565b81620003a057505f62000334565b8160018114620003b95760028114620003c457620003e4565b600191505062000334565b60ff841115620003d857620003d86200030a565b50506001821b62000334565b5060208310610133831016604e8410600b841016171562000409575081810a62000334565b6200041583836200033a565b805f19048211156200042b576200042b6200030a565b029392505050565b5f6200044360ff84168362000382565b9392505050565b80820281158282048414176200033457620003346200030a565b5f826200047f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000495575f80fd5b81516001600160a01b038116811462000443575f80fd5b60805160a051611768620004e35f395f818161055901528181610e0a0152818161105d015261109101525f610ed101526117685ff3fe6080604052600436106101ff575f3560e01c80636ce46bc311610113578063a9059cbb1161009d578063e96fada21161006d578063e96fada21461061c578063f33dfea01461063b578063f887ea401461065a578063fd414aa814610679578063fed0d2a11461068e575f80fd5b8063a9059cbb1461057b578063c647b20e1461059a578063dd62ed3e146105b9578063df20fd49146105fd575f80fd5b8063893d20e8116100e3578063893d20e8146104a95780638da5cb5b146104d957806395d89b41146104f7578063a4b45c0014610529578063a8aa1b3114610548575f80fd5b80636ce46bc31461042b5780636ddd17131461044a57806370a082311461046a578063715018a614610495575f80fd5b80632f54bf6e1161019457806351bc3c851161016457806351bc3c85146103ad578063571ac8b0146103c35780635921652f146103e25780636998d19d146103f75780636b67c4df14610416575f80fd5b80632f54bf6e146103175780633121c7c014610344578063313ce567146103595780633f4218e01461037f575f80fd5b806318160ddd116101cf57806318160ddd146102bb5780631df4ccfc146102cf57806323b872dd146102e45780632b112e4914610303575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b314610278578063180b0d7e146102a7575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f600d5481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5061026b6040518060400160405280600e81526020016d427261696e7a2046696e616e636560901b81525081565b6040516102299190611319565b348015610283575f80fd5b5061029761029236600461137f565b6106a3565b6040519015158152602001610229565b3480156102b2575f80fd5b5061021f606481565b3480156102c6575f80fd5b5061021f61070f565b3480156102da575f80fd5b5061021f60065481565b3480156102ef575f80fd5b506102976102fe3660046113a7565b61072c565b34801561030e575f80fd5b5061021f6107ea565b348015610322575f80fd5b506102976103313660046113e0565b5f546001600160a01b0391821691161490565b34801561034f575f80fd5b5061021f60075481565b348015610364575f80fd5b5061036d601281565b60405160ff9091168152602001610229565b34801561038a575f80fd5b506102976103993660046113e0565b60036020525f908152604090205460ff1681565b3480156103b8575f80fd5b506103c1610870565b005b3480156103ce575f80fd5b506102976103dd3660046113e0565b6108a9565b3480156103ed575f80fd5b5061021f60095481565b348015610402575f80fd5b506103c1610411366004611408565b6108b5565b348015610421575f80fd5b5061021f60045481565b348015610436575f80fd5b506103c1610445366004611485565b6109b8565b348015610455575f80fd5b50600c5461029790600160a01b900460ff1681565b348015610475575f80fd5b5061021f6104843660046113e0565b60016020525f908152604090205481565b3480156104a0575f80fd5b506103c16109f2565b3480156104b4575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610229565b3480156104e4575f80fd5b505f546104c1906001600160a01b031681565b348015610502575f80fd5b5061026b6040518060400160405280600781526020016612212920a4a72d60c91b81525081565b348015610534575f80fd5b506103c16105433660046114ae565b610a5f565b348015610553575f80fd5b506104c17f000000000000000000000000000000000000000000000000000000000000000081565b348015610586575f80fd5b5061029761059536600461137f565b610ab6565b3480156105a5575f80fd5b506103c16105b43660046114df565b610ac2565b3480156105c4575f80fd5b5061021f6105d33660046114ae565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610608575f80fd5b506103c16106173660046114ff565b610b06565b348015610627575f80fd5b50600a546104c1906001600160a01b031681565b348015610646575f80fd5b50600b546104c1906001600160a01b031681565b348015610665575f80fd5b50600c546104c1906001600160a01b031681565b348015610684575f80fd5b5061021f60055481565b348015610699575f80fd5b5061021f60085481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fd9086815260200190565b60405180910390a35060015b92915050565b61071b6012600a61160d565b61072990630bebc20061161b565b81565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f19146107d5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526002825283812033825290915291909120546107b1918490610b72565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6107e0848484610baa565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091906108496012600a61160d565b61085790630bebc20061161b565b6108619190611632565b61086b9190611632565b905090565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108a6573d5f803e3d5ffd5b50565b5f610709825f196106a3565b5f546001600160a01b031633146108e75760405162461bcd60e51b81526004016108de90611645565b60405180910390fd5b6101f582106109465760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108de565b5f5b828110156109b2578160035f86868581811061096657610966611665565b905060200201602081019061097b91906113e0565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556109ab81611679565b9050610948565b50505050565b5f546001600160a01b031633146109e15760405162461bcd60e51b81526004016108de90611645565b600891909155600791909155600955565b5f546001600160a01b03163314610a1b5760405162461bcd60e51b81526004016108de90611645565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a885760405162461bcd60e51b81526004016108de90611645565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f6107e3338484610baa565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b81526004016108de90611645565b60048290556005819055610aff8183611691565b6006555050565b5f546001600160a01b03163314610b2f5760405162461bcd60e51b81526004016108de90611645565b600c805460ff60a01b1916600160a01b8415150217905580610b536012600a61160d565b610b6190630bebc20061161b565b610b6b91906116a4565b600d555050565b5f8184841115610b955760405162461bcd60e51b81526004016108de9190611319565b505f610ba18486611632565b95945050505050565b600e545f9060ff1615610bc957610bc2848484610d1b565b90506107e3565b610bd1610dfe565b15610bde57610bde610e6f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260019091529190912054610c2f918490610b72565b6001600160a01b0385165f90815260016020908152604080832093909355600390529081205460ff1680610c7a57506001600160a01b0384165f9081526003602052604090205460ff165b610c8e57610c89858486611036565b610c90565b825b6001600160a01b0385165f90815260016020526040902054909150610cb5908261118f565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d089085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600190915291822054610d6b918490610b72565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610d99908361118f565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dec9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610e3b5750600e5460ff16155b8015610e505750600c54600160a01b900460ff165b801561086b575050600d54305f90815260016020526040902054101590565b600e805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610eaf57610eaf611665565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f0357610f03611665565b6001600160a01b039283166020918202929092010152600c54600d5460405163791ac94760e01b8152919092169163791ac94791610f4c91905f908690309042906004016116c3565b5f604051808303815f87803b158015610f63575f80fd5b505af1158015610f75573d5f803e3d5ffd5b50506006546004544793505f9250610f8d908461161b565b610f9791906116a4565b90505f60065460055484610fab919061161b565b610fb591906116a4565b600a546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015610fed573d5f803e3d5ffd5b50600b546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611025573d5f803e3d5ffd5b5050600e805460ff19169055505050565b5f8215806110445750600654155b156110505750816107e3565b6009546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084160361108f57506008546110cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036110cd57506007545b5f6111016110dc60648061161b565b6110fb846110f56006548a6111ed90919063ffffffff16565b906111ed565b9061126b565b9050801561117b57305f90815260016020526040902054611122908261118f565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111729085815260200190565b60405180910390a35b61118585826112ac565b9695505050505050565b5f8061119b8385611691565b9050838110156107e35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108de565b5f825f036111fc57505f610709565b5f611207838561161b565b90508261121485836116a4565b146107e35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108de565b5f6107e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ed565b5f6107e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b72565b5f818361130d5760405162461bcd60e51b81526004016108de9190611319565b505f610ba184866116a4565b5f6020808352835180828501525f5b8181101561134457858101830151858201604001528201611328565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461137a575f80fd5b919050565b5f8060408385031215611390575f80fd5b61139983611364565b946020939093013593505050565b5f805f606084860312156113b9575f80fd5b6113c284611364565b92506113d060208501611364565b9150604084013590509250925092565b5f602082840312156113f0575f80fd5b6107e382611364565b8035801515811461137a575f80fd5b5f805f6040848603121561141a575f80fd5b833567ffffffffffffffff80821115611431575f80fd5b818601915086601f830112611444575f80fd5b813581811115611452575f80fd5b8760208260051b8501011115611466575f80fd5b60209283019550935061147c91860190506113f9565b90509250925092565b5f805f60608486031215611497575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114bf575f80fd5b6114c883611364565b91506114d660208401611364565b90509250929050565b5f80604083850312156114f0575f80fd5b50508035926020909101359150565b5f8060408385031215611510575f80fd5b611399836113f9565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561156757815f190482111561154d5761154d611519565b8085161561155a57918102915b93841c9390800290611532565b509250929050565b5f8261157d57506001610709565b8161158957505f610709565b816001811461159f57600281146115a9576115c5565b6001915050610709565b60ff8411156115ba576115ba611519565b50506001821b610709565b5060208310610133831016604e8410600b84101617156115e8575081810a610709565b6115f2838361152d565b805f190482111561160557611605611519565b029392505050565b5f6107e360ff84168361156f565b808202811582820484141761070957610709611519565b8181038181111561070957610709611519565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161168a5761168a611519565b5060010190565b8082018082111561070957610709611519565b5f826116be57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117115784516001600160a01b0316835293830193918301916001016116ec565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200c9f19e38b2bec015b98b2725fd42a115f73c33bd73f9f605d553b7f37aa5e5c64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101ff575f3560e01c80636ce46bc311610113578063a9059cbb1161009d578063e96fada21161006d578063e96fada21461061c578063f33dfea01461063b578063f887ea401461065a578063fd414aa814610679578063fed0d2a11461068e575f80fd5b8063a9059cbb1461057b578063c647b20e1461059a578063dd62ed3e146105b9578063df20fd49146105fd575f80fd5b8063893d20e8116100e3578063893d20e8146104a95780638da5cb5b146104d957806395d89b41146104f7578063a4b45c0014610529578063a8aa1b3114610548575f80fd5b80636ce46bc31461042b5780636ddd17131461044a57806370a082311461046a578063715018a614610495575f80fd5b80632f54bf6e1161019457806351bc3c851161016457806351bc3c85146103ad578063571ac8b0146103c35780635921652f146103e25780636998d19d146103f75780636b67c4df14610416575f80fd5b80632f54bf6e146103175780633121c7c014610344578063313ce567146103595780633f4218e01461037f575f80fd5b806318160ddd116101cf57806318160ddd146102bb5780631df4ccfc146102cf57806323b872dd146102e45780632b112e4914610303575f80fd5b80630445b6671461020a57806306fdde0314610232578063095ea7b314610278578063180b0d7e146102a7575f80fd5b3661020657005b5f80fd5b348015610215575f80fd5b5061021f600d5481565b6040519081526020015b60405180910390f35b34801561023d575f80fd5b5061026b6040518060400160405280600e81526020016d427261696e7a2046696e616e636560901b81525081565b6040516102299190611319565b348015610283575f80fd5b5061029761029236600461137f565b6106a3565b6040519015158152602001610229565b3480156102b2575f80fd5b5061021f606481565b3480156102c6575f80fd5b5061021f61070f565b3480156102da575f80fd5b5061021f60065481565b3480156102ef575f80fd5b506102976102fe3660046113a7565b61072c565b34801561030e575f80fd5b5061021f6107ea565b348015610322575f80fd5b506102976103313660046113e0565b5f546001600160a01b0391821691161490565b34801561034f575f80fd5b5061021f60075481565b348015610364575f80fd5b5061036d601281565b60405160ff9091168152602001610229565b34801561038a575f80fd5b506102976103993660046113e0565b60036020525f908152604090205460ff1681565b3480156103b8575f80fd5b506103c1610870565b005b3480156103ce575f80fd5b506102976103dd3660046113e0565b6108a9565b3480156103ed575f80fd5b5061021f60095481565b348015610402575f80fd5b506103c1610411366004611408565b6108b5565b348015610421575f80fd5b5061021f60045481565b348015610436575f80fd5b506103c1610445366004611485565b6109b8565b348015610455575f80fd5b50600c5461029790600160a01b900460ff1681565b348015610475575f80fd5b5061021f6104843660046113e0565b60016020525f908152604090205481565b3480156104a0575f80fd5b506103c16109f2565b3480156104b4575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610229565b3480156104e4575f80fd5b505f546104c1906001600160a01b031681565b348015610502575f80fd5b5061026b6040518060400160405280600781526020016612212920a4a72d60c91b81525081565b348015610534575f80fd5b506103c16105433660046114ae565b610a5f565b348015610553575f80fd5b506104c17f0000000000000000000000009f4f8f277cbee4ea6d255508fb4dddc95e5c9fcc81565b348015610586575f80fd5b5061029761059536600461137f565b610ab6565b3480156105a5575f80fd5b506103c16105b43660046114df565b610ac2565b3480156105c4575f80fd5b5061021f6105d33660046114ae565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610608575f80fd5b506103c16106173660046114ff565b610b06565b348015610627575f80fd5b50600a546104c1906001600160a01b031681565b348015610646575f80fd5b50600b546104c1906001600160a01b031681565b348015610665575f80fd5b50600c546104c1906001600160a01b031681565b348015610684575f80fd5b5061021f60055481565b348015610699575f80fd5b5061021f60085481565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106fd9086815260200190565b60405180910390a35060015b92915050565b61071b6012600a61160d565b61072990630bebc20061161b565b81565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f19146107d5576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526002825283812033825290915291909120546107b1918490610b72565b6001600160a01b0385165f9081526002602090815260408083203384529091529020555b6107e0848484610baa565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead5f9081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091906108496012600a61160d565b61085790630bebc20061161b565b6108619190611632565b61086b9190611632565b905090565b600b546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108a6573d5f803e3d5ffd5b50565b5f610709825f196106a3565b5f546001600160a01b031633146108e75760405162461bcd60e51b81526004016108de90611645565b60405180910390fd5b6101f582106109465760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108de565b5f5b828110156109b2578160035f86868581811061096657610966611665565b905060200201602081019061097b91906113e0565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790556109ab81611679565b9050610948565b50505050565b5f546001600160a01b031633146109e15760405162461bcd60e51b81526004016108de90611645565b600891909155600791909155600955565b5f546001600160a01b03163314610a1b5760405162461bcd60e51b81526004016108de90611645565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a885760405162461bcd60e51b81526004016108de90611645565b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b5f6107e3338484610baa565b5f546001600160a01b03163314610aeb5760405162461bcd60e51b81526004016108de90611645565b60048290556005819055610aff8183611691565b6006555050565b5f546001600160a01b03163314610b2f5760405162461bcd60e51b81526004016108de90611645565b600c805460ff60a01b1916600160a01b8415150217905580610b536012600a61160d565b610b6190630bebc20061161b565b610b6b91906116a4565b600d555050565b5f8184841115610b955760405162461bcd60e51b81526004016108de9190611319565b505f610ba18486611632565b95945050505050565b600e545f9060ff1615610bc957610bc2848484610d1b565b90506107e3565b610bd1610dfe565b15610bde57610bde610e6f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260019091529190912054610c2f918490610b72565b6001600160a01b0385165f90815260016020908152604080832093909355600390529081205460ff1680610c7a57506001600160a01b0384165f9081526003602052604090205460ff165b610c8e57610c89858486611036565b610c90565b825b6001600160a01b0385165f90815260016020526040902054909150610cb5908261118f565b6001600160a01b038086165f8181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d089085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600190915291822054610d6b918490610b72565b6001600160a01b038086165f908152600160205260408082209390935590851681522054610d99908361118f565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dec9086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f0000000000000000000000009f4f8f277cbee4ea6d255508fb4dddc95e5c9fcc1614801590610e3b5750600e5460ff16155b8015610e505750600c54600160a01b900460ff165b801561086b575050600d54305f90815260016020526040902054101590565b600e805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610eaf57610eaf611665565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610f0357610f03611665565b6001600160a01b039283166020918202929092010152600c54600d5460405163791ac94760e01b8152919092169163791ac94791610f4c91905f908690309042906004016116c3565b5f604051808303815f87803b158015610f63575f80fd5b505af1158015610f75573d5f803e3d5ffd5b50506006546004544793505f9250610f8d908461161b565b610f9791906116a4565b90505f60065460055484610fab919061161b565b610fb591906116a4565b600a546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015610fed573d5f803e3d5ffd5b50600b546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611025573d5f803e3d5ffd5b5050600e805460ff19169055505050565b5f8215806110445750600654155b156110505750816107e3565b6009546001600160a01b037f0000000000000000000000009f4f8f277cbee4ea6d255508fb4dddc95e5c9fcc81169084160361108f57506008546110cd565b7f0000000000000000000000009f4f8f277cbee4ea6d255508fb4dddc95e5c9fcc6001600160a01b0316856001600160a01b0316036110cd57506007545b5f6111016110dc60648061161b565b6110fb846110f56006548a6111ed90919063ffffffff16565b906111ed565b9061126b565b9050801561117b57305f90815260016020526040902054611122908261118f565b305f81815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111729085815260200190565b60405180910390a35b61118585826112ac565b9695505050505050565b5f8061119b8385611691565b9050838110156107e35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108de565b5f825f036111fc57505f610709565b5f611207838561161b565b90508261121485836116a4565b146107e35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108de565b5f6107e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112ed565b5f6107e383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b72565b5f818361130d5760405162461bcd60e51b81526004016108de9190611319565b505f610ba184866116a4565b5f6020808352835180828501525f5b8181101561134457858101830151858201604001528201611328565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461137a575f80fd5b919050565b5f8060408385031215611390575f80fd5b61139983611364565b946020939093013593505050565b5f805f606084860312156113b9575f80fd5b6113c284611364565b92506113d060208501611364565b9150604084013590509250925092565b5f602082840312156113f0575f80fd5b6107e382611364565b8035801515811461137a575f80fd5b5f805f6040848603121561141a575f80fd5b833567ffffffffffffffff80821115611431575f80fd5b818601915086601f830112611444575f80fd5b813581811115611452575f80fd5b8760208260051b8501011115611466575f80fd5b60209283019550935061147c91860190506113f9565b90509250925092565b5f805f60608486031215611497575f80fd5b505081359360208301359350604090920135919050565b5f80604083850312156114bf575f80fd5b6114c883611364565b91506114d660208401611364565b90509250929050565b5f80604083850312156114f0575f80fd5b50508035926020909101359150565b5f8060408385031215611510575f80fd5b611399836113f9565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561156757815f190482111561154d5761154d611519565b8085161561155a57918102915b93841c9390800290611532565b509250929050565b5f8261157d57506001610709565b8161158957505f610709565b816001811461159f57600281146115a9576115c5565b6001915050610709565b60ff8411156115ba576115ba611519565b50506001821b610709565b5060208310610133831016604e8410600b84101617156115e8575081810a610709565b6115f2838361152d565b805f190482111561160557611605611519565b029392505050565b5f6107e360ff84168361156f565b808202811582820484141761070957610709611519565b8181038181111561070957610709611519565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161168a5761168a611519565b5060010190565b8082018082111561070957610709611519565b5f826116be57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117115784516001600160a01b0316835293830193918301916001016116ec565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212200c9f19e38b2bec015b98b2725fd42a115f73c33bd73f9f605d553b7f37aa5e5c64736f6c63430008150033

Deployed Bytecode Sourcemap

3091:7042:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4243:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4243:48:0;;;;;;;;3353:46;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3353:46:0;;;;;;;;;;;;:::i;5290:216::-;;;;;;;;;;-1:-1:-1;5290:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;5290:216:0;1186:187:1;3870:44:0;;;;;;;;;;;;3911:3;3870:44;;3498:64;;;;;;;;;;;;;:::i;3816:47::-;;;;;;;;;;;;;;;;5808:370;;;;;;;;;;-1:-1:-1;5808:370:0;;;;;:::i;:::-;;:::i;9993:137::-;;;;;;;;;;;;;:::i;2322:103::-;;;;;;;;;;-1:-1:-1;2322:103:0;;;;;:::i;:::-;2377:4;2412:5;-1:-1:-1;;;;;2401:16:0;;;2412:5;;2401:16;;2322:103;3927:34;;;;;;;;;;;;;;;;3454:35;;;;;;;;;;;;3487:2;3454:35;;;;;2074:4:1;2062:17;;;2044:36;;2032:2;2017:18;3454:35:0;1902:184:1;3693:44:0;;;;;;;;;;-1:-1:-1;3693:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8074:105;;;;;;;;;;;;;:::i;:::-;;5514:122;;;;;;;;;;-1:-1:-1;5514:122:0;;;;;:::i;:::-;;:::i;4010:37::-;;;;;;;;;;;;;;;;8881:294;;;;;;;;;;-1:-1:-1;8881:294:0;;;;;:::i;:::-;;:::i;3746:31::-;;;;;;;;;;;;;;;;9183:198;;;;;;;;;;-1:-1:-1;9183:198:0;;;;;:::i;:::-;;:::i;4205:31::-;;;;;;;;;;-1:-1:-1;4205:31:0;;;;-1:-1:-1;;;4205:31:0;;;;;;3571:45;;;;;;;;;;-1:-1:-1;3571:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2433:128;;;;;;;;;;;;;:::i;5065:78::-;;;;;;;;;;-1:-1:-1;5117:7:0;5135:5;-1:-1:-1;;;;;5135:5:0;5065:78;;;-1:-1:-1;;;;;3435:32:1;;;3417:51;;3405:2;3390:18;5065:78:0;3271:203:1;2135:20:0;;;;;;;;;;-1:-1:-1;2135:20:0;;;;-1:-1:-1;;;;;2135:20:0;;;3406:41;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3406:41:0;;;;;9591:207;;;;;;;;;;-1:-1:-1;9591:207:0;;;;;:::i;:::-;;:::i;4167:29::-;;;;;;;;;;;;;;;5644:156;;;;;;;;;;-1:-1:-1;5644:156:0;;;;;:::i;:::-;;:::i;9389:194::-;;;;;;;;;;-1:-1:-1;9389:194:0;;;;;:::i;:::-;;:::i;5149:133::-;;;;;;;;;;-1:-1:-1;5149:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5251:19:0;;;5233:7;5251:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5149:133;9806:179;;;;;;;;;;-1:-1:-1;9806:179:0;;;;;:::i;:::-;;:::i;4056:35::-;;;;;;;;;;-1:-1:-1;4056:35:0;;;;-1:-1:-1;;;;;4056:35:0;;;4098:29;;;;;;;;;;-1:-1:-1;4098:29:0;;;;-1:-1:-1;;;;;4098:29:0;;;4136:24;;;;;;;;;;-1:-1:-1;4136:24:0;;;;-1:-1:-1;;;;;4136:24:0;;;3784:25;;;;;;;;;;;;;;;;3968:35;;;;;;;;;;;;;;;;5290:216;5394:10;5365:4;5382:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5382:32:0;;;;;;;;;;:41;;;5439:37;5365:4;;5382:32;;5439:37;;;;5417:6;160:25:1;;148:2;133:18;;14:177;5439:37:0;;;;;;;;-1:-1:-1;5494:4:0;5290:216;;;;;:::o;3498:64::-;3550:12;3487:2;3550;:12;:::i;:::-;3536:26;;:11;:26;:::i;:::-;3498:64;:::o;5808:370::-;-1:-1:-1;;;;;5928:19:0;;5908:4;5928:19;;;:11;:19;;;;;;;;5948:10;5928:31;;;;;;;;-1:-1:-1;;5928:52:0;5925:186;;6030:69;;;;;;;;;;;-1:-1:-1;;;6030:69:0;;;;;;;;-1:-1:-1;;;;;6030:19:0;;-1:-1:-1;6030:19:0;;;:11;:19;;;;;6050:10;6030:31;;;;;;;;;;:69;;6066:6;;6030:35;:69::i;:::-;-1:-1:-1;;;;;5996:19:0;;;;;;:11;:19;;;;;;;;6016:10;5996:31;;;;;;;:103;5925:186;6130:40;6144:6;6152:9;6163:6;6130:13;:40::i;:::-;6123:47;;5808:370;;;;;;:::o;9993:137::-;10106:9;:15;;;;3229:42;10046:7;10088:15;;;;;10046:7;;10106:15;3550:12;3487:2;3550;:12;:::i;:::-;3536:26;;:11;:26;:::i;:::-;10074:29;;;;:::i;:::-;:47;;;;:::i;:::-;10066:56;;9993:137;:::o;8074:105::-;8124:14;;8116:55;;-1:-1:-1;;;;;8124:14:0;;;;8149:21;8116:55;;;;;8124:14;8116:55;8124:14;8116:55;8149:21;8124:14;8116:55;;;;;;;;;;;;;;;;;;;;;8074:105::o;5514:122::-;5569:4;5593:35;5601:7;-1:-1:-1;;5593:7:0;:35::i;8881:294::-;2377:4;2412:5;-1:-1:-1;;;;;2412:5:0;2281:10;2401:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;;;;;;;;;9007:3:::1;8988:22:::0;::::1;8980:71;;;::::0;-1:-1:-1;;;8980:71:0;;6833:2:1;8980:71:0::1;::::0;::::1;6815:21:1::0;6872:2;6852:18;;;6845:30;6911:34;6891:18;;;6884:62;-1:-1:-1;;;6962:18:1;;;6955:35;7007:19;;8980:71:0::1;6631:401:1::0;8980:71:0::1;9067:9;9062:106;9080:20:::0;;::::1;9062:106;;;9150:6;9122:11;:25;9134:9;;9144:1;9134:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9122:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9122:25:0;:34;;-1:-1:-1;;9122:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9102:3:::1;::::0;::::1;:::i;:::-;;;9062:106;;;;8881:294:::0;;;:::o;9183:198::-;2377:4;2412:5;-1:-1:-1;;;;;2412:5:0;2281:10;2401:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;9282:14:::1;:22:::0;;;;9315:13:::1;:20:::0;;;;9346:18:::1;:27:::0;9183:198::o;2433:128::-;2377:4;2412:5;-1:-1:-1;;;;;2412:5:0;2281:10;2401:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;2508:1:::1;2492:18:::0;;-1:-1:-1;;;;;;2492:18:0::1;::::0;;2526:27:::1;::::0;3417:51:1;;;2526:27:0::1;::::0;3405:2:1;3390:18;2526:27:0::1;;;;;;;2433:128::o:0;9591:207::-;2377:4;2412:5;-1:-1:-1;;;;;2412:5:0;2281:10;2401:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;9703:20:::1;:44:::0;;-1:-1:-1;;;;;9703:44:0;;::::1;-1:-1:-1::0;;;;;;9703:44:0;;::::1;;::::0;;;9758:14:::1;:32:::0;;;;;::::1;::::0;::::1;;::::0;;9591:207::o;5644:156::-;5724:4;5748:44;5762:10;5774:9;5785:6;5748:13;:44::i;9389:194::-;2377:4;2412:5;-1:-1:-1;;;;;2412:5:0;2281:10;2401:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;9477:12:::1;:28:::0;;;9516:6:::1;:16:::0;;;9554:21:::1;9525:7:::0;9492:13;9554:21:::1;:::i;:::-;9543:8;:32:::0;-1:-1:-1;;9389:194:0:o;9806:179::-;2377:4;2412:5;-1:-1:-1;;;;;2412:5:0;2281:10;2401:16;2265:38;;;;-1:-1:-1;;;2265:38:0;;;;;;;:::i;:::-;9902:11:::1;:22:::0;;-1:-1:-1;;;;9902:22:0::1;-1:-1:-1::0;;;9902:22:0;::::1;;;;::::0;;9965:12;3550::::1;3487:2;3550;:12;:::i;:::-;3536:26;::::0;:11:::1;:26;:::i;:::-;9951;;;;:::i;:::-;9935:13;:42:::0;-1:-1:-1;;9806:179:0:o;643:192::-;729:7;765:12;757:6;;;;749:29;;;;-1:-1:-1;;;749:29:0;;;;;;;;:::i;:::-;-1:-1:-1;789:9:0;801:5;805:1;801;:5;:::i;:::-;789:17;643:192;-1:-1:-1;;;;;643:192:0:o;6186:602::-;6298:6;;6278:4;;6298:6;;6295:63;;;6314:41;6329:6;6337:9;6348:6;6314:14;:41::i;:::-;6307:48;;;;6295:63;6373:16;:14;:16::i;:::-;6370:35;;;6392:10;:8;:10::i;:::-;6437:53;;;;;;;;;;;-1:-1:-1;;;6437:53:0;;;;;;;;-1:-1:-1;;;;;6437:17:0;;-1:-1:-1;6437:17:0;;;:9;:17;;;;;;;;:53;;6459:6;;6437:21;:53::i;:::-;-1:-1:-1;;;;;6417:17:0;;;;;;:9;:17;;;;;;;;:73;;;;6529:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;6552:22:0;;;;;;:11;:22;;;;;;;;6529:45;6528:93;;6587:34;6595:6;6603;6611:9;6587:7;:34::i;:::-;6528:93;;;6578:6;6528:93;-1:-1:-1;;;;;6657:20:0;;;;;;:9;:20;;;;;;6503:118;;-1:-1:-1;6657:40:0;;6503:118;6657:24;:40::i;:::-;-1:-1:-1;;;;;6634:20:0;;;;;;;:9;:20;;;;;;;:63;;;;6715:43;;;;;;;;;;6743:14;160:25:1;;148:2;133:18;;14:177;6715:43:0;;;;;;;;-1:-1:-1;6776:4:0;;6186:602;-1:-1:-1;;;;6186:602:0:o;6800:330::-;6930:53;;;;;;;;;;;-1:-1:-1;;;6930:53:0;;;;;;;;-1:-1:-1;;;;;6930:17:0;;6893:4;6930:17;;;:9;:17;;;;;;;:53;;6952:6;;6930:21;:53::i;:::-;-1:-1:-1;;;;;6910:17:0;;;;;;;:9;:17;;;;;;:73;;;;7017:20;;;;;;;:32;;7042:6;7017:24;:32::i;:::-;-1:-1:-1;;;;;6994:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7065:35;;;;;;;;;;7093:6;160:25:1;;148:2;133:18;;14:177;7065:35:0;;;;;;;;-1:-1:-1;7118:4:0;6800:330;;;;;:::o;7869:197::-;7918:4;7942:10;-1:-1:-1;;;;;7956:4:0;7942:18;;;;;:38;;-1:-1:-1;7974:6:0;;;;7973:7;7942:38;:62;;;;-1:-1:-1;7993:11:0;;-1:-1:-1;;;7993:11:0;;;;7942:62;:116;;;;-1:-1:-1;;8045:13:0;;8035:4;8017:24;;;;:9;:24;;;;;;:41;;;7869:197::o;8187:686::-;4344:6;:13;;-1:-1:-1;;4344:13:0;4353:4;4344:13;;;8262:16:::1;::::0;;8276:1:::1;8262:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8262:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8262:16:0::1;8238:40;;8307:4;8289;8294:1;8289:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8289:23:0::1;;;-1:-1:-1::0;;;;;8289:23:0::1;;;::::0;::::1;8333:4;8323;8328:1;8323:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8323:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;8350:6:::1;::::0;8422:13:::1;::::0;8350:189:::1;::::0;-1:-1:-1;;;8350:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;8422:13;8350:6:::1;::::0;8466:4;;8493::::1;::::0;8513:15:::1;::::0;8350:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8664:8:0::1;::::0;8648:12:::1;::::0;8572:21:::1;::::0;-1:-1:-1;8552:17:0::1;::::0;-1:-1:-1;8636:24:0::1;::::0;8572:21;8636:24:::1;:::i;:::-;8635:37;;;;:::i;:::-;8606:66;;8683:20;8729:8;;8719:6;;8707:9;:18;;;;:::i;:::-;8706:31;;;;:::i;:::-;8758:20;::::0;8750:58:::1;::::0;8683:54;;-1:-1:-1;;;;;;8758:20:0::1;::::0;8750:58;::::1;;;::::0;8789:18;;8758:20:::1;8750:58:::0;8758:20;8750:58;8789:18;8758:20;8750:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;8827:14:0::1;::::0;8819:46:::1;::::0;-1:-1:-1;;;;;8827:14:0;;::::1;::::0;8819:46;::::1;;;::::0;8852:12;;8827:14:::1;8819:46:::0;8827:14;8819:46;8852:12;8827:14;8819:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4362:6:0;:14;;-1:-1:-1;;4362:14:0;;;-1:-1:-1;;;8187:686:0:o;7138:723::-;7224:7;7247:11;;;:28;;-1:-1:-1;7262:8:0;;:13;7247:28;7244:72;;;-1:-1:-1;7298:6:0;7291:13;;7244:72;7349:18;;-1:-1:-1;;;;;7396:4:0;7383:17;;;;;;7380:154;;-1:-1:-1;7430:14:0;;7380:154;;;7475:4;-1:-1:-1;;;;;7465:14:0;:6;-1:-1:-1;;;;;7465:14:0;;7462:72;;-1:-1:-1;7509:13:0;;7462:72;7546:17;7566:62;7607:20;3911:3;;7607:20;:::i;:::-;7566:36;7591:10;7566:20;7577:8;;7566:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;7546:82;-1:-1:-1;7644:13:0;;7641:172;;7718:4;7700:24;;;;:9;:24;;;;;;:39;;7729:9;7700:28;:39::i;:::-;7691:4;7673:24;;;;:9;:24;;;;;;;:66;;;;7759:42;;-1:-1:-1;;;;;7759:42:0;;;;;;;7791:9;160:25:1;;148:2;133:18;;14:177;7759:42:0;;;;;;;;7641:172;7832:21;:6;7843:9;7832:10;:21::i;:::-;7825:28;7138:723;-1:-1:-1;;;;;;7138:723:0:o;314:181::-;372:7;;404:5;408:1;404;:5;:::i;:::-;392:17;;433:1;428;:6;;420:46;;;;-1:-1:-1;;;420:46:0;;8980:2:1;420:46:0;;;8962:21:1;9019:2;8999:18;;;8992:30;9058:29;9038:18;;;9031:57;9105:18;;420:46:0;8778:351:1;841:250:0;899:7;923:1;928;923:6;919:47;;-1:-1:-1;953:1:0;946:8;;919:47;978:9;990:5;994:1;990;:5;:::i;:::-;978:17;-1:-1:-1;1023:1:0;1014:5;1018:1;978:17;1014:5;:::i;:::-;:10;1006:56;;;;-1:-1:-1;;;1006:56:0;;9336:2:1;1006:56:0;;;9318:21:1;9375:2;9355:18;;;9348:30;9414:34;9394:18;;;9387:62;-1:-1:-1;;;9465:18:1;;;9458:31;9506:19;;1006:56:0;9134:397:1;1097:132:0;1155:7;1182:39;1186:1;1189;1182:39;;;;;;;;;;;;;;;;;:3;:39::i;501:136::-;559:7;586:43;590:1;593;586:43;;;;;;;;;;;;;;;;;:3;:43::i;1235:189::-;1321:7;1356:12;1349:5;1341:28;;;;-1:-1:-1;;;1341:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1380:9:0;1392:5;1396:1;1392;:5;:::i;196:548: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;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:186::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;1862:29;1881:9;1862:29;:::i;2091:160::-;2156:20;;2212:13;;2205:21;2195:32;;2185:60;;2241:1;2238;2231:12;2256:689;2348:6;2356;2364;2417:2;2405:9;2396:7;2392:23;2388:32;2385:52;;;2433:1;2430;2423:12;2385:52;2473:9;2460:23;2502:18;2543:2;2535:6;2532:14;2529:34;;;2559:1;2556;2549:12;2529:34;2597:6;2586:9;2582:22;2572:32;;2642:7;2635:4;2631:2;2627:13;2623:27;2613:55;;2664:1;2661;2654:12;2613:55;2704:2;2691:16;2730:2;2722:6;2719:14;2716:34;;;2746:1;2743;2736:12;2716:34;2801:7;2794:4;2784:6;2781:1;2777:14;2773:2;2769:23;2765:34;2762:47;2759:67;;;2822:1;2819;2812:12;2759:67;2853:4;2845:13;;;;-1:-1:-1;2877:6:1;-1:-1:-1;2902:37:1;;2918:20;;;-1:-1:-1;2902:37:1;:::i;:::-;2892:47;;2256:689;;;;;:::o;2950:316::-;3027:6;3035;3043;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;-1:-1:-1;;3135:23:1;;;3205:2;3190:18;;3177:32;;-1:-1:-1;3256:2:1;3241:18;;;3228:32;;2950:316;-1:-1:-1;2950:316:1:o;3479:260::-;3547:6;3555;3608:2;3596:9;3587:7;3583:23;3579:32;3576:52;;;3624:1;3621;3614:12;3576:52;3647:29;3666:9;3647:29;:::i;:::-;3637:39;;3695:38;3729:2;3718:9;3714:18;3695:38;:::i;:::-;3685:48;;3479:260;;;;;:::o;3744:248::-;3812:6;3820;3873:2;3861:9;3852:7;3848:23;3844:32;3841:52;;;3889:1;3886;3879:12;3841:52;-1:-1:-1;;3912:23:1;;;3982:2;3967:18;;;3954:32;;-1:-1:-1;3744:248:1:o;3997:::-;4062:6;4070;4123:2;4111:9;4102:7;4098:23;4094:32;4091:52;;;4139:1;4136;4129:12;4091:52;4162:26;4178:9;4162:26;:::i;4476:127::-;4537:10;4532:3;4528:20;4525:1;4518:31;4568:4;4565:1;4558:15;4592:4;4589:1;4582:15;4608:422;4697:1;4740:5;4697:1;4754:270;4775:7;4765:8;4762:21;4754:270;;;4834:4;4830:1;4826:6;4822:17;4816:4;4813:27;4810:53;;;4843:18;;:::i;:::-;4893:7;4883:8;4879:22;4876:55;;;4913:16;;;;4876:55;4992:22;;;;4952:15;;;;4754:270;;;4758:3;4608:422;;;;;:::o;5035:806::-;5084:5;5114:8;5104:80;;-1:-1:-1;5155:1:1;5169:5;;5104:80;5203:4;5193:76;;-1:-1:-1;5240:1:1;5254:5;;5193:76;5285:4;5303:1;5298:59;;;;5371:1;5366:130;;;;5278:218;;5298:59;5328:1;5319:10;;5342:5;;;5366:130;5403:3;5393:8;5390:17;5387:43;;;5410:18;;:::i;:::-;-1:-1:-1;;5466:1:1;5452:16;;5481:5;;5278:218;;5580:2;5570:8;5567:16;5561:3;5555:4;5552:13;5548:36;5542:2;5532:8;5529:16;5524:2;5518:4;5515:12;5511:35;5508:77;5505:159;;;-1:-1:-1;5617:19:1;;;5649:5;;5505:159;5696:34;5721:8;5715:4;5696:34;:::i;:::-;5766:6;5762:1;5758:6;5754:19;5745:7;5742:32;5739:58;;;5777:18;;:::i;:::-;5815:20;;5035:806;-1:-1:-1;;;5035:806:1:o;5846:140::-;5904:5;5933:47;5974:4;5964:8;5960:19;5954:4;5933:47;:::i;5991:168::-;6064:9;;;6095;;6112:15;;;6106:22;;6092:37;6082:71;;6133:18;;:::i;6164:128::-;6231:9;;;6252:11;;;6249:37;;;6266:18;;:::i;6297:329::-;6499:2;6481:21;;;6538:1;6518:18;;;6511:29;-1:-1:-1;;;6571:2:1;6556:18;;6549:36;6617:2;6602:18;;6297:329::o;7037:127::-;7098:10;7093:3;7089:20;7086:1;7079:31;7129:4;7126:1;7119:15;7153:4;7150:1;7143:15;7169:135;7208:3;7229:17;;;7226:43;;7249:18;;:::i;:::-;-1:-1:-1;7296:1:1;7285:13;;7169:135::o;7309:125::-;7374:9;;;7395:10;;;7392:36;;;7408:18;;:::i;7439:217::-;7479:1;7505;7495:132;;7549:10;7544:3;7540:20;7537:1;7530:31;7584:4;7581:1;7574:15;7612:4;7609:1;7602:15;7495:132;-1:-1:-1;7641:9:1;;7439:217::o;7793:980::-;8055:4;8103:3;8092:9;8088:19;8134:6;8123:9;8116:25;8160:2;8198:6;8193:2;8182:9;8178:18;8171:34;8241:3;8236:2;8225:9;8221:18;8214:31;8265:6;8300;8294:13;8331:6;8323;8316:22;8369:3;8358:9;8354:19;8347:26;;8408:2;8400:6;8396:15;8382:29;;8429:1;8439:195;8453:6;8450:1;8447:13;8439:195;;;8518:13;;-1:-1:-1;;;;;8514:39:1;8502:52;;8609:15;;;;8574:12;;;;8550:1;8468:9;8439:195;;;-1:-1:-1;;;;;;;8690:32:1;;;;8685:2;8670:18;;8663:60;-1:-1:-1;;;8754:3:1;8739:19;8732:35;8651:3;7793:980;-1:-1:-1;;;7793:980:1:o

Swarm Source

ipfs://0c9f19e38b2bec015b98b2725fd42a115f73c33bd73f9f605d553b7f37aa5e5c
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.