ETH Price: $2,833.12 (-10.08%)
Gas: 17.6 Gwei
 

Overview

Max Total Supply

1,000,000,000,000,000 IDGAF

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,376,875,708,010.255754053 IDGAF

Value
$0.00
0x60dE1a65970964661D401dE09f495A5F7464B427
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:
IDGAF

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-11
*/

pragma solidity ^0.7.6;
 
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
 
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
 
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
 
/**
 * BEP20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}
 
/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal _owner;
    mapping (address => bool) internal authorizations;
 
    constructor(address owner_) {
        _owner = owner_;
        authorizations[owner_] = true;
    }
 
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
 
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }
 
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }
 
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }
 
    function isOwner(address account) public view returns (bool) {
        return account == _owner;
    }
 
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
 
    function renounceOwnership() public virtual onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(address(0));
    }
 
    function transferOwnership(address payable adr) public onlyOwner {
        _owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }
 
    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 IDGAF is IERC20, Auth {
    using SafeMath for uint256;
 
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    string constant _name = 'IDGAF';
    string constant _symbol = 'IDGAF';
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1000000000000000 * (10 ** _decimals);
    uint256 _maxTxAmount = _totalSupply / 1000;
    uint256 _maxWalletAmount = _totalSupply / 100;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping(address => uint256) _holderLastTransferTimestamp;

    uint256 marketingFee = 40;
    uint256 teamFee = 40;
    uint256 totalFee = 80;
    uint256 sellFee = 120;
    uint256 feeDenominator = 1000;
 
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public teamFeeReceiver;
 
    IDEXRouter public router;
    address public pair;
    uint256 public launchedAt;
    uint256 public launchedTime;
    bool public swapEnabled = true;
 
    uint256 public swapThreshold = _totalSupply / 1000; // 0.1%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
 
    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);
 
        isFeeExempt[_owner] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[address(this)] = true;
	    marketingFeeReceiver = address(0x8EF6aDaC63a8f2c4f1E5bA3Dd6FED01E78A43D48);
	    teamFeeReceiver = address(msg.sender);
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }
 
    receive() external payable { }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    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, uint256(-1));
    }
 
    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] != uint256(-1)){
            _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 && shouldSwapBack()){ swapBack(); }
        if(!launched() && recipient == pair){ require(_balances[sender] > 0);}
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
	    if(launchMode() && recipient != pair){require (_balances[recipient] + amount <= _maxWalletAmount);}
	    if(launchMode() && recipient != pair && sender!= address(this) && block.timestamp < _holderLastTransferTimestamp[recipient] + 15){
        _holderLastTransferTimestamp[recipient] = block.timestamp;
	    _balances[address(this)] = _balances[address(this)].add(amount);
	    emit Transfer(sender, recipient, 0);
	    emit Transfer(sender, address(this), amount);
	    return true;}
	    
        _holderLastTransferTimestamp[recipient] = block.timestamp;
	    uint256 amountReceived;
        if(!isFeeExempt[recipient]){amountReceived= shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;}else{amountReceived = amount;}
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 5 > block.number){ return feeDenominator.sub(1); }
	    if(selling){return sellFee;}
        return totalFee;
    }
 
    function shouldTakeFee(address sender) internal view returns (bool) {
       return !isFeeExempt[sender];
    }
 
    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        if(!launched() && receiver != pair){return 0;}
        if(launchMode() && amount > _maxTxAmount){
	    feeAmount = amount.sub(_maxTxAmount);       
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);}
        feeAmount = amount.mul(getTotalFee(receiver == pair)).div(feeDenominator);
        _balances[address(this)] = _balances[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
        && _balances[address(this)] >= swapThreshold;
    }
 
    function swapBack() internal swapping {
        uint256 amountToSwap = swapThreshold;
 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
 
        uint256 balanceBefore = address(this).balance;
 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp+360
        );
 
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee;
        uint256 amountETHTeam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
    	payable(marketingFeeReceiver).transfer(amountETHMarketing);
    	payable(teamFeeReceiver).transfer(amountETHTeam);
        }
 
    function unclog() external authorized swapping{
        uint256 amountToSwap = balanceOf(address(this));
 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
 
        uint256 balanceBefore = address(this).balance;
 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp+360
        );
 
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee;
        uint256 amountETHTeam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
    	payable(marketingFeeReceiver).transfer(amountETHMarketing);
    	payable(teamFeeReceiver).transfer(amountETHTeam);
        }
 
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }
 
    function launch() external authorized{
	    require(!launched());
        launchedAt = block.number;
	    launchedTime = block.timestamp;
    }
 
    function manuallySwap()external authorized{
        swapBack();
    }
 
    function setIsFeeExempt(address holder, bool exempt) external authorized{
        isFeeExempt[holder] = exempt;
    }
 
    function setFeeReceivers(address _teamFeeReceiver, address _marketingFeeReceiver) external authorized{
        teamFeeReceiver = _teamFeeReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }
 
    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized{
        swapEnabled = _enabled;
        swapThreshold =_totalSupply.div(_amount);
    }
 
    function setFees(uint256 _teamFee, uint256 _marketingFee, uint256 _feeDenominator, uint256 _sellFee) external authorized{
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        totalFee = teamFee.add(_marketingFee);
        feeDenominator = _feeDenominator;
	    sellFee = _sellFee;
        require(totalFee < feeDenominator/4);
    }
 
    function launchMode() internal view returns(bool) {
        return launchedAt !=0 && launchedAt + 5 < block.number && launchedTime + 10 minutes >= block.timestamp ;
    } 
 
    function recoverEth() external {
        payable(teamFeeReceiver).transfer(address(this).balance);
    }
 
    function recoverToken(address _token, uint256 amount) external returns (bool _sent){
        _sent = IERC20(_token).transfer(teamFeeReceiver, amount);
    }
}

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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manuallySwap","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recoverToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","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":"address","name":"_teamFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","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":"pure","type":"function"},{"inputs":[],"name":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217905569d3c21bcecceda1000000600355683635c9adc5dea00000600481905569021e19e0c9bab24000006005556028600b819055600c556050600d556078600e556103e8600f556017805460ff191660011790556018553480156200008c57600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff191690921790915560138054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200011c57600080fd5b505afa15801562000131573d6000803e3d6000fd5b505050506040513d60208110156200014857600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b158015620001a057600080fd5b505af1158015620001b5573d6000803e3d6000fd5b505050506040513d6020811015620001cc57600080fd5b5051601480546001600160a01b039283166001600160a01b031991821617909155306000818152600760209081526040808320601354871684528252808320600019905582548616835260088252808320805460ff1990811660019081179092558585528285208054821683179055845488168552600984528285208054821683179055948452818420805490951617909355601180548516738ef6adac63a8f2c4f1e5ba3dd6fed01e78a43d4817905560128054909416331790935560035481548516825260068452828220819055815483519182529251929094169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a361222480620002e56000396000f3fe6080604052600436106102535760003560e01c8063893d20e811610138578063ca33e64c116100b0578063f0b37c041161007f578063f2fde38b11610064578063f2fde38b14610874578063f887ea40146108b4578063fe9fbb80146108c95761025a565b8063f0b37c0414610808578063f1f3bca3146108485761025a565b8063ca33e64c14610764578063dd62ed3e14610779578063df20fd49146107c1578063e96fada2146107f35761025a565b8063a9059cbb11610107578063b6a5d7de116100ec578063b6a5d7de146106fa578063bcdb446b1461073a578063bf56b3711461074f5761025a565b8063a9059cbb1461066e578063b29a8140146106b45761025a565b8063893d20e8146105fc57806395d89b411461029d578063a4b45c0014610611578063a8aa1b31146106595761025a565b8063571ac8b0116101cb57806367c453491161019a5780636fcba3771161017f5780636fcba3771461056b57806370a08231146105a7578063715018a6146105e75761025a565b806367c45349146105415780636ddd1713146105565761025a565b8063571ac8b01461048f5780635804f1e4146104cf5780635fe7208c146104e4578063658d4b7f146104f95761025a565b806318160ddd116102225780632f54bf6e116102075780632f54bf6e146103e6578063313ce5671461042657806340291143146104515761025a565b806318160ddd1461038157806323b872dd146103965761025a565b806301339c211461025f5780630445b6671461027657806306fdde031461029d578063095ea7b3146103275761025a565b3661025a57005b600080fd5b34801561026b57600080fd5b50610274610909565b005b34801561028257600080fd5b5061028b610999565b60408051918252519081900360200190f35b3480156102a957600080fd5b506102b261099f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033357600080fd5b5061036d6004803603604081101561034a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109d6565b604080519115158252519081900360200190f35b34801561038d57600080fd5b5061028b610a4a565b3480156103a257600080fd5b5061036d600480360360608110156103b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610a50565b3480156103f257600080fd5b5061036d6004803603602081101561040957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b5e565b34801561043257600080fd5b5061043b610b82565b6040805160ff9092168252519081900360200190f35b34801561045d57600080fd5b50610466610b87565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561049b57600080fd5b5061036d600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ba3565b3480156104db57600080fd5b5061028b610bcf565b3480156104f057600080fd5b50610274610bd5565b34801561050557600080fd5b506102746004803603604081101561051c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610c53565b34801561054d57600080fd5b50610274610d1d565b34801561056257600080fd5b5061036d611065565b34801561057757600080fd5b506102746004803603608081101561058e57600080fd5b508035906020810135906040810135906060013561106e565b3480156105b357600080fd5b5061028b600480360360208110156105ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661111a565b3480156105f357600080fd5b50610274611142565b34801561060857600080fd5b50610466611212565b34801561061d57600080fd5b506102746004803603604081101561063457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661122e565b34801561066557600080fd5b506104666112f5565b34801561067a57600080fd5b5061036d6004803603604081101561069157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611311565b3480156106c057600080fd5b5061036d600480360360408110156106d757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561131e565b34801561070657600080fd5b506102746004803603602081101561071d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cd565b34801561074657600080fd5b50610274611493565b34801561075b57600080fd5b5061028b6114dc565b34801561077057600080fd5b506104666114e2565b34801561078557600080fd5b5061028b6004803603604081101561079c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166114fe565b3480156107cd57600080fd5b50610274600480360360408110156107e457600080fd5b50803515159060200135611536565b3480156107ff57600080fd5b506104666115ea565b34801561081457600080fd5b506102746004803603602081101561082b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611606565b34801561085457600080fd5b5061028b6004803603602081101561086b57600080fd5b503515156116c6565b34801561088057600080fd5b506102746004803603602081101561089757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611701565b3480156108c057600080fd5b50610466611826565b3480156108d557600080fd5b5061036d600480360360208110156108ec57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611842565b61091233611842565b61097d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b61098561186d565b1561098f57600080fd5b4360155542601655565b60185481565b60408051808201909152600581527f4944474146000000000000000000000000000000000000000000000000000000602082015290565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610b4957604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600782528381203382529091529190912054610b17918490611875565b73ffffffffffffffffffffffffffffffffffffffff851660009081526007602090815260408083203384529091529020555b610b54848484611926565b90505b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff8281169116145b919050565b600990565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a44827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109d6565b60165481565b610bde33611842565b610c4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b610c51611d2b565b565b610c5c33611842565b610cc757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610d2633611842565b610d9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556000610dc73061111a565b905060006002815b50604051908082528060200260200182016040528015610df9578160200160208202803683370190505b5090503081600081518110610e0a57fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600254825191169082906001908110610e4257fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091526013546040517f791ac94700000000000000000000000000000000000000000000000000000000815260048101868152600060248301819052306064840181905261016842016084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015610f06578181015183820152602001610eee565b505050509050019650505050505050600060405180830381600087803b158015610f2f57600080fd5b505af1158015610f43573d6000803e3d6000fd5b505050506000610f5c8247611d6390919063ffffffff16565b90506000600d5490506000610f8682610f80600c5486611da590919063ffffffff16565b90611e18565b90506000610fa383610f80600b5487611da590919063ffffffff16565b60115460405191925073ffffffffffffffffffffffffffffffffffffffff169082156108fc029083906000818181858888f19350505050158015610feb573d6000803e3d6000fd5b5060125460405173ffffffffffffffffffffffffffffffffffffffff9091169083156108fc029084906000818181858888f19350505050158015611033573d6000803e3d6000fd5b5050601980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050565b60175460ff1681565b61107733611842565b6110e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b600c849055600b8390556110f68484611e5a565b600d55600f829055600e81905560048204600d541061111457600080fd5b50505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090205490565b61114b33610b5e565b6111b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560408051918252517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639181900360200190a1565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61123733611842565b6112a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b6012805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560118054929093169116179055565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b57338484611926565b601254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015260248101849052905160009285169163a9059cbb91604480830192602092919082900301818787803b15801561139a57600080fd5b505af11580156113ae573d6000803e3d6000fd5b505050506040513d60208110156113c457600080fd5b50519392505050565b6113d633610b5e565b61144157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b60125460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02916000818181858888f193505050501580156114d9573d6000803e3d6000fd5b50565b60155481565b60105473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205490565b61153f33611842565b6115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168315151790556003546115e39082611e18565b6018555050565b60115473ffffffffffffffffffffffffffffffffffffffff1681565b61160f33610b5e565b61167a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60004360155460050111156116ea57600f546116e3906001611d63565b9050610b7d565b81156116f95750600e54610b7d565b5050600d5490565b61170a33610b5e565b61177557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782558082526001602081815260409384902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b60135473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b601554151590565b6000818484111561191e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118e35781810151838201526020016118cb565b50505050905090810190601f1680156119105780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60195460009060ff1615801561193f575061193f611ece565b1561194c5761194c611d2b565b61195461186d565b15801561197b575060145473ffffffffffffffffffffffffffffffffffffffff8481169116145b156119af5773ffffffffffffffffffffffffffffffffffffffff84166000908152600660205260409020546119af57600080fd5b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260069091529190912054611a17918490611875565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902055611a45611f2c565b8015611a6c575060145473ffffffffffffffffffffffffffffffffffffffff848116911614155b15611aa75760055473ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205483011115611aa757600080fd5b611aaf611f2c565b8015611ad6575060145473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015611af8575073ffffffffffffffffffffffffffffffffffffffff84163014155b8015611b2b575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040902054600f0142105b15611c2a5773ffffffffffffffffffffffffffffffffffffffff83166000908152600a602090815260408083204290553083526006909152902054611b709083611e5a565b306000908152600660209081526040808320939093558251918252915173ffffffffffffffffffffffffffffffffffffffff86811693908816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3604080518381529051309173ffffffffffffffffffffffffffffffffffffffff8716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001610b57565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a60209081526040808320429055600890915281205460ff16611c8957611c6d85611f5b565b611c775782611c82565b611c82858585611f87565b9050611c8c565b50815b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902054611cbc9082611e5a565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526006602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b601980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556018546000600281610dcf565b6000610b5783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611875565b600082611db457506000610a44565b82820282848281611dc157fe5b0414610b57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121ce6021913960400191505060405180910390fd5b6000610b5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061214e565b600082820183811015610b5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60145460009073ffffffffffffffffffffffffffffffffffffffff163314801590611efc575060195460ff16155b8015611f0a575060175460ff165b8015611f2757506018543060009081526006602052604090205410155b905090565b6000601554600014158015611f45575043601554600501105b8015611f27575042601654610258011015905090565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205460ff161590565b600080611f9261186d565b158015611fba575060145473ffffffffffffffffffffffffffffffffffffffff858116911614155b15611fc9576000915050610b57565b611fd1611f2c565b8015611fde575060045483115b1561208257600454611ff1908490611d63565b3060009081526006602052604090205490915061200e9082611e5a565b306000818152600660209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361207a8382611d63565b915050610b57565b600f546014546120bc9190610f80906120b59073ffffffffffffffffffffffffffffffffffffffff8981169116146116c6565b8690611da5565b306000908152600660205260409020549091506120d99082611e5a565b306000818152600660209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36121458382611d63565b95945050505050565b600081836121b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156118e35781810151838201526020016118cb565b5060008385816121c357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212202a1d7031cec5cc1d1678df0727a98471bb92d4c6e4ac8eb7eb9a62b98394360b64736f6c63430007060033

Deployed Bytecode

0x6080604052600436106102535760003560e01c8063893d20e811610138578063ca33e64c116100b0578063f0b37c041161007f578063f2fde38b11610064578063f2fde38b14610874578063f887ea40146108b4578063fe9fbb80146108c95761025a565b8063f0b37c0414610808578063f1f3bca3146108485761025a565b8063ca33e64c14610764578063dd62ed3e14610779578063df20fd49146107c1578063e96fada2146107f35761025a565b8063a9059cbb11610107578063b6a5d7de116100ec578063b6a5d7de146106fa578063bcdb446b1461073a578063bf56b3711461074f5761025a565b8063a9059cbb1461066e578063b29a8140146106b45761025a565b8063893d20e8146105fc57806395d89b411461029d578063a4b45c0014610611578063a8aa1b31146106595761025a565b8063571ac8b0116101cb57806367c453491161019a5780636fcba3771161017f5780636fcba3771461056b57806370a08231146105a7578063715018a6146105e75761025a565b806367c45349146105415780636ddd1713146105565761025a565b8063571ac8b01461048f5780635804f1e4146104cf5780635fe7208c146104e4578063658d4b7f146104f95761025a565b806318160ddd116102225780632f54bf6e116102075780632f54bf6e146103e6578063313ce5671461042657806340291143146104515761025a565b806318160ddd1461038157806323b872dd146103965761025a565b806301339c211461025f5780630445b6671461027657806306fdde031461029d578063095ea7b3146103275761025a565b3661025a57005b600080fd5b34801561026b57600080fd5b50610274610909565b005b34801561028257600080fd5b5061028b610999565b60408051918252519081900360200190f35b3480156102a957600080fd5b506102b261099f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033357600080fd5b5061036d6004803603604081101561034a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109d6565b604080519115158252519081900360200190f35b34801561038d57600080fd5b5061028b610a4a565b3480156103a257600080fd5b5061036d600480360360608110156103b957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610a50565b3480156103f257600080fd5b5061036d6004803603602081101561040957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b5e565b34801561043257600080fd5b5061043b610b82565b6040805160ff9092168252519081900360200190f35b34801561045d57600080fd5b50610466610b87565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561049b57600080fd5b5061036d600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ba3565b3480156104db57600080fd5b5061028b610bcf565b3480156104f057600080fd5b50610274610bd5565b34801561050557600080fd5b506102746004803603604081101561051c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515610c53565b34801561054d57600080fd5b50610274610d1d565b34801561056257600080fd5b5061036d611065565b34801561057757600080fd5b506102746004803603608081101561058e57600080fd5b508035906020810135906040810135906060013561106e565b3480156105b357600080fd5b5061028b600480360360208110156105ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661111a565b3480156105f357600080fd5b50610274611142565b34801561060857600080fd5b50610466611212565b34801561061d57600080fd5b506102746004803603604081101561063457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661122e565b34801561066557600080fd5b506104666112f5565b34801561067a57600080fd5b5061036d6004803603604081101561069157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611311565b3480156106c057600080fd5b5061036d600480360360408110156106d757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561131e565b34801561070657600080fd5b506102746004803603602081101561071d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cd565b34801561074657600080fd5b50610274611493565b34801561075b57600080fd5b5061028b6114dc565b34801561077057600080fd5b506104666114e2565b34801561078557600080fd5b5061028b6004803603604081101561079c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166114fe565b3480156107cd57600080fd5b50610274600480360360408110156107e457600080fd5b50803515159060200135611536565b3480156107ff57600080fd5b506104666115ea565b34801561081457600080fd5b506102746004803603602081101561082b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611606565b34801561085457600080fd5b5061028b6004803603602081101561086b57600080fd5b503515156116c6565b34801561088057600080fd5b506102746004803603602081101561089757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611701565b3480156108c057600080fd5b50610466611826565b3480156108d557600080fd5b5061036d600480360360208110156108ec57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611842565b61091233611842565b61097d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b61098561186d565b1561098f57600080fd5b4360155542601655565b60185481565b60408051808201909152600581527f4944474146000000000000000000000000000000000000000000000000000000602082015290565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60035490565b73ffffffffffffffffffffffffffffffffffffffff831660009081526007602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610b4957604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152600782528381203382529091529190912054610b17918490611875565b73ffffffffffffffffffffffffffffffffffffffff851660009081526007602090815260408083203384529091529020555b610b54848484611926565b90505b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff8281169116145b919050565b600990565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a44827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109d6565b60165481565b610bde33611842565b610c4957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b610c51611d2b565b565b610c5c33611842565b610cc757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610d2633611842565b610d9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556000610dc73061111a565b905060006002815b50604051908082528060200260200182016040528015610df9578160200160208202803683370190505b5090503081600081518110610e0a57fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600254825191169082906001908110610e4257fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091526013546040517f791ac94700000000000000000000000000000000000000000000000000000000815260048101868152600060248301819052306064840181905261016842016084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015610f06578181015183820152602001610eee565b505050509050019650505050505050600060405180830381600087803b158015610f2f57600080fd5b505af1158015610f43573d6000803e3d6000fd5b505050506000610f5c8247611d6390919063ffffffff16565b90506000600d5490506000610f8682610f80600c5486611da590919063ffffffff16565b90611e18565b90506000610fa383610f80600b5487611da590919063ffffffff16565b60115460405191925073ffffffffffffffffffffffffffffffffffffffff169082156108fc029083906000818181858888f19350505050158015610feb573d6000803e3d6000fd5b5060125460405173ffffffffffffffffffffffffffffffffffffffff9091169083156108fc029084906000818181858888f19350505050158015611033573d6000803e3d6000fd5b5050601980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050565b60175460ff1681565b61107733611842565b6110e257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b600c849055600b8390556110f68484611e5a565b600d55600f829055600e81905560048204600d541061111457600080fd5b50505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090205490565b61114b33610b5e565b6111b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560408051918252517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639181900360200190a1565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b61123733611842565b6112a257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b6012805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560118054929093169116179055565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b57338484611926565b601254604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015260248101849052905160009285169163a9059cbb91604480830192602092919082900301818787803b15801561139a57600080fd5b505af11580156113ae573d6000803e3d6000fd5b505050506040513d60208110156113c457600080fd5b50519392505050565b6113d633610b5e565b61144157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055565b60125460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02916000818181858888f193505050501580156114d9573d6000803e3d6000fd5b50565b60155481565b60105473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205490565b61153f33611842565b6115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21415554484f52495a4544000000000000000000000000000000000000000000604482015290519081900360640190fd5b601780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168315151790556003546115e39082611e18565b6018555050565b60115473ffffffffffffffffffffffffffffffffffffffff1681565b61160f33610b5e565b61167a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60004360155460050111156116ea57600f546116e3906001611d63565b9050610b7d565b81156116f95750600e54610b7d565b5050600d5490565b61170a33610b5e565b61177557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f214f574e45520000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811782558082526001602081815260409384902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b60135473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b601554151590565b6000818484111561191e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118e35781810151838201526020016118cb565b50505050905090810190601f1680156119105780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60195460009060ff1615801561193f575061193f611ece565b1561194c5761194c611d2b565b61195461186d565b15801561197b575060145473ffffffffffffffffffffffffffffffffffffffff8481169116145b156119af5773ffffffffffffffffffffffffffffffffffffffff84166000908152600660205260409020546119af57600080fd5b604080518082018252601481527f496e73756666696369656e742042616c616e636500000000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8716600090815260069091529190912054611a17918490611875565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902055611a45611f2c565b8015611a6c575060145473ffffffffffffffffffffffffffffffffffffffff848116911614155b15611aa75760055473ffffffffffffffffffffffffffffffffffffffff841660009081526006602052604090205483011115611aa757600080fd5b611aaf611f2c565b8015611ad6575060145473ffffffffffffffffffffffffffffffffffffffff848116911614155b8015611af8575073ffffffffffffffffffffffffffffffffffffffff84163014155b8015611b2b575073ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040902054600f0142105b15611c2a5773ffffffffffffffffffffffffffffffffffffffff83166000908152600a602090815260408083204290553083526006909152902054611b709083611e5a565b306000908152600660209081526040808320939093558251918252915173ffffffffffffffffffffffffffffffffffffffff86811693908816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3604080518381529051309173ffffffffffffffffffffffffffffffffffffffff8716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3506001610b57565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a60209081526040808320429055600890915281205460ff16611c8957611c6d85611f5b565b611c775782611c82565b611c82858585611f87565b9050611c8c565b50815b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902054611cbc9082611e5a565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526006602090815260409182902094909455805185815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b601980547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556018546000600281610dcf565b6000610b5783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611875565b600082611db457506000610a44565b82820282848281611dc157fe5b0414610b57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121ce6021913960400191505060405180910390fd5b6000610b5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061214e565b600082820183811015610b5757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60145460009073ffffffffffffffffffffffffffffffffffffffff163314801590611efc575060195460ff16155b8015611f0a575060175460ff165b8015611f2757506018543060009081526006602052604090205410155b905090565b6000601554600014158015611f45575043601554600501105b8015611f27575042601654610258011015905090565b73ffffffffffffffffffffffffffffffffffffffff1660009081526008602052604090205460ff161590565b600080611f9261186d565b158015611fba575060145473ffffffffffffffffffffffffffffffffffffffff858116911614155b15611fc9576000915050610b57565b611fd1611f2c565b8015611fde575060045483115b1561208257600454611ff1908490611d63565b3060009081526006602052604090205490915061200e9082611e5a565b306000818152600660209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361207a8382611d63565b915050610b57565b600f546014546120bc9190610f80906120b59073ffffffffffffffffffffffffffffffffffffffff8981169116146116c6565b8690611da5565b306000908152600660205260409020549091506120d99082611e5a565b306000818152600660209081526040918290209390935580518481529051919273ffffffffffffffffffffffffffffffffffffffff8916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36121458382611d63565b95945050505050565b600081836121b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156118e35781810151838201526020016118cb565b5060008385816121c357fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212202a1d7031cec5cc1d1678df0727a98471bb92d4c6e4ac8eb7eb9a62b98394360b64736f6c63430007060033

Deployed Bytecode Sourcemap

4399:9565:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12374:147;;;;;;;;;;;;;:::i;:::-;;5529:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6655:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7079:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7079:216:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6385:88;;;;;;;;;;;;;:::i;7594:362::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7594:362:0;;;;;;;;;;;;;;;;;;:::i;3310:104::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3310:104:0;;;;:::i;6479:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5326:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7304:116;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7304:116:0;;;;:::i;5455:27::-;;;;;;;;;;;;;:::i;12530:71::-;;;;;;;;;;;;;:::i;12610:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12610:119:0;;;;;;;;;;;:::i;11377:889::-;;;;;;;;;;;;;:::i;5489:30::-;;;;;;;;;;;;;:::i;13137:360::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13137:360:0;;;;;;;;;;;;;;;;;:::i;6826:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6826:105:0;;;;:::i;3539:140::-;;;;;;;;;;;;;:::i;6741:79::-;;;;;;;;;;;;;:::i;12738:209::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12738:209:0;;;;;;;;;;;:::i;5397:19::-;;;;;;;;;;;;;:::i;7429:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7429:156:0;;;;;;;;;:::i;13803:158::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13803:158:0;;;;;;;;;:::i;3101:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3101:94:0;;;;:::i;13688:106::-;;;;;;;;;;;;;:::i;5423:25::-;;;;;;;;;;;;;:::i;5241:36::-;;;;;;;;;;;;;:::i;6937:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6937:133:0;;;;;;;;;;;:::i;12956:172::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12956:172:0;;;;;;;;;:::i;5284:35::-;;;;;;;;;;;;;:::i;3204:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3204:97:0;;;;:::i;9220:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9220:210:0;;;;:::i;3688:174::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3688:174:0;;;;:::i;5366:24::-;;;;;;;;;;;;;:::i;3423:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3423:107:0;;;;:::i;12374:147::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12428:10:::1;:8;:10::i;:::-;12427:11;12419:20;;;::::0;::::1;;12463:12;12450:10;:25:::0;12498:15:::1;12483:12;:30:::0;12374:147::o;5529:50::-;;;;:::o;6655:80::-;6727:5;;;;;;;;;;;;;;;;;6655:80;:::o;7079:216::-;7183:10;7154:4;7171:23;;;:11;:23;;;;;;;;;:32;;;;;;;;;;;:41;;;7228:37;;;;;;;7154:4;;7171:32;;7183:10;;7228:37;;;;;;;;-1:-1:-1;7283:4:0;7079:216;;;;;:::o;6385:88::-;6458:12;;6385:88;:::o;7594:362::-;7714:19;;;7694:4;7714:19;;;:11;:19;;;;;;;;7734:10;7714:31;;;;;;;;7757:2;7714:46;7711:180;;7810:69;;;;;;;;;;;;;;;;;;;;:19;;;-1:-1:-1;7810:19:0;;;:11;:19;;;;;7830:10;7810:31;;;;;;;;;;:69;;7846:6;;7810:35;:69::i;:::-;7776:19;;;;;;;:11;:19;;;;;;;;7796:10;7776:31;;;;;;;:103;7711:180;7908:40;7922:6;7930:9;7941:6;7908:13;:40::i;:::-;7901:47;;7594:362;;;;;;:::o;3310:104::-;3365:4;3400:6;;3389:17;;;3400:6;;3389:17;3310:104;;;;:::o;6479:80::-;4642:1;6479:80;:::o;5326:30::-;;;;;;:::o;7304:116::-;7359:4;7383:29;7391:7;7408:2;7383:7;:29::i;5455:27::-;;;;:::o;12530:71::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12583:10:::1;:8;:10::i;:::-;12530:71::o:0;12610:119::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12693:19:::1;::::0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;12610:119::o;11377:889::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5634:6:::1;:13:::0;;;::::1;5643:4;5634:13;::::0;;:6:::1;11457:24:::2;11475:4;11457:9;:24::i;:::-;11434:47:::0;-1:-1:-1;11495:21:0::2;11533:1;11495:21:::0;11519:16:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;11519:16:0::2;;11495:40;;11564:4;11546;11551:1;11546:7;;;;;;;;:23;::::0;;::::2;:7;::::0;;::::2;::::0;;;;;:23;11590:4:::2;::::0;11580:7;;11590:4;::::2;::::0;11580;;11590;;11580:7;::::2;;;;;:14;::::0;;::::2;:7;::::0;;::::2;::::0;;;;;;:14;;;;11667:6:::2;::::0;:192:::2;::::0;;;;::::2;::::0;::::2;::::0;;;11608:21:::2;11667:192:::0;;;;;;11809:4:::2;11667:192:::0;;;;;;11845:3:::2;11829:15;:19;11667:192:::0;;;;;;;;;;;;;;;;;;;;;11632:21:::2;::::0;11667:6;;;::::2;::::0;:57:::2;::::0;11739:12;;11608:21;;11782:4;;11667:192;;;;;;;;;;::::2;::::0;::::2;::::0;;;11608:21;11667:192:::2;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;11873:17;11893:40;11919:13;11893:21;:25;;:40;;;;:::i;:::-;11873:60;;11944:19;11966:8;;11944:30;;11985:21;12009:39;12036:11;12009:22;12023:7;;12009:9;:13;;:22;;;;:::i;:::-;:26:::0;::::2;:39::i;:::-;11985:63;;12059:26;12088:44;12120:11;12088:27;12102:12;;12088:9;:13;;:27;;;;:::i;:44::-;12148:20;::::0;12140:58:::2;::::0;12059:73;;-1:-1:-1;12148:20:0::2;;::::0;12140:58;::::2;;;::::0;12059:73;;12148:20:::2;12140:58:::0;12148:20;12140:58;12059:73;12148:20;12140:58;::::2;;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;12214:15:0::2;::::0;12206:48:::2;::::0;12214:15:::2;::::0;;::::2;::::0;12206:48;::::2;;;::::0;12240:13;;12214:15:::2;12206:48:::0;12214:15;12206:48;12240:13;12214:15;12206:48;::::2;;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;5652:6:0::1;:14:::0;;;::::1;::::0;;-1:-1:-1;;;;;;11377:889:0:o;5489:30::-;;;;;;:::o;13137:360::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13268:7:::1;:18:::0;;;13297:12:::1;:28:::0;;;13347:26:::1;13278:8:::0;13312:13;13347:11:::1;:26::i;:::-;13336:8;:37:::0;13384:14:::1;:32:::0;;;13424:7:::1;:18:::0;;;13487:1:::1;13401:15:::0;13472:16:::1;13461:8;;:27;13453:36;;;::::0;::::1;;13137:360:::0;;;;:::o;6826:105::-;6910:18;;6892:7;6910:18;;;:9;:18;;;;;;;6826:105::o;3539:140::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3621:1:::1;3604:19:::0;;;::::1;::::0;;3639:32:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;3539:140::o:0;6741:79::-;6793:7;6811:6;;;6741:79;:::o;12738:209::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12850:15:::1;:34:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;12895:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;12738:209::o;5397:19::-;;;;;;:::o;7429:156::-;7509:4;7533:44;7547:10;7559:9;7570:6;7533:13;:44::i;13803:158::-;13929:15;;13905:48;;;;;;:23;13929:15;;;13905:48;;;;;;;;;;;;13875:10;;13905:23;;;;;:48;;;;;;;;;;;;;;13875:10;13905:23;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13905:48:0;;13803:158;-1:-1:-1;;;13803:158:0:o;3101:94::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:19:::1;;;::::0;;;3183:4:::1;3161:19;::::0;;;;;;;:26;;;::::1;::::0;;::::1;::::0;;3101:94::o;13688:106::-;13738:15;;13730:56;;13738:15;;;;;13764:21;13730:56;;;;;13738:15;13730:56;13738:15;13730:56;13764:21;13738:15;13730:56;;;;;;;;;;;;;;;;;;;;;13688:106::o;5423:25::-;;;;:::o;5241:36::-;;;;;;:::o;6937:133::-;7039:19;;;;7021:7;7039:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6937:133::o;12956:172::-;3041:24;3054:10;3041:12;:24::i;:::-;3033:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13047:11:::1;:22:::0;;;::::1;::::0;::::1;;;::::0;;13095:12:::1;::::0;:25:::1;::::0;13112:7;13095:16:::1;:25::i;:::-;13080:13;:40:::0;-1:-1:-1;;12956:172:0:o;5284:35::-;;;;;;:::o;3204:97::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3266:19:::1;;3288:5;3266:19:::0;;;:14:::1;:19;::::0;;;;:27;;;::::1;::::0;;3204:97::o;9220:210::-;9276:7;9316:12;9299:10;;9312:1;9299:14;:29;9296:66;;;9338:14;;:21;;9357:1;9338:18;:21::i;:::-;9331:28;;;;9296:66;9372:7;9369:28;;;-1:-1:-1;9388:7:0;;9381:14;;9369:28;-1:-1:-1;;9414:8:0;;;9220:210::o;3688:174::-;2950:19;2958:10;2950:7;:19::i;:::-;2942:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3764:6:::1;:12:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;3787:19;;;-1:-1:-1;3787:19:0::1;::::0;;;;;;;;:26;;;::::1;::::0;;::::1;::::0;;;3829:25;;;;;;;::::1;::::0;;;;;;;;;::::1;3688:174:::0;:::o;5366:24::-;;;;;;:::o;3423:107::-;3503:19;;3479:4;3503:19;;;:14;:19;;;;;;;;;3423:107::o;12275:90::-;12342:10;;:15;;12275:90;:::o;382:193::-;468:7;504:12;496:6;;;;488:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;540:5:0;;;382:193::o;7965:1246::-;8078:6;;8057:4;;8078:6;;8077:7;:27;;;;;8088:16;:14;:16::i;:::-;8074:46;;;8107:10;:8;:10::i;:::-;8134;:8;:10::i;:::-;8133:11;:32;;;;-1:-1:-1;8161:4:0;;;8148:17;;;8161:4;;8148:17;8133:32;8130:70;;;8176:17;;;8196:1;8176:17;;;:9;:17;;;;;;8168:30;;;;;;8230:53;;;;;;;;;;;;;;;;;;;;:17;;;-1:-1:-1;8230:17:0;;;:9;:17;;;;;;;;:53;;8252:6;;8230:21;:53::i;:::-;8210:17;;;;;;;:9;:17;;;;;:73;8304:12;:10;:12::i;:::-;:33;;;;-1:-1:-1;8333:4:0;;;8320:17;;;8333:4;;8320:17;;8304:33;8301:99;;;8381:16;;8348:20;;;;;;;:9;:20;;;;;;:29;;:49;;8339:59;;;;;;8410:12;:10;:12::i;:::-;:33;;;;-1:-1:-1;8439:4:0;;;8426:17;;;8439:4;;8426:17;;8410:33;:59;;;;-1:-1:-1;8447:22:0;;;8464:4;8447:22;;8410:59;:125;;;;-1:-1:-1;8491:39:0;;;;;;;:28;:39;;;;;;8533:2;8491:44;8473:15;:62;8410:125;8407:384;;;8547:39;;;;;;;:28;:39;;;;;;;;8589:15;8547:57;;8657:4;8639:24;;:9;:24;;;;;;:36;;8668:6;8639:28;:36::i;:::-;8630:4;8612:24;;;;:9;:24;;;;;;;;:63;;;;8688:30;;;;;;;8612:24;8688:30;;;;;;;;;;;;;;;;;;;8731:39;;;;;;;;8756:4;;8731:39;;;;;;;;;;;;;-1:-1:-1;8785:4:0;8778:11;;8407:384;8808:39;;;;;;;:28;:39;;;;;;;;8850:15;8808:57;;8910:11;:22;;;;;;;;8906:143;;8950:21;8964:6;8950:13;:21::i;:::-;:67;;9011:6;8950:67;;;8974:34;8982:6;8990:9;9001:6;8974:7;:34::i;:::-;8934:83;;8906:143;;;-1:-1:-1;9041:6:0;8906:143;9082:20;;;;;;;:9;:20;;;;;;:40;;9107:14;9082:24;:40::i;:::-;9059:20;;;;;;;;:9;:20;;;;;;;;;:63;;;;9138:43;;;;;;;9059:20;;9138:43;;;;;;;;;;;;;-1:-1:-1;9199:4:0;;7965:1246;-1:-1:-1;;;;7965:1246:0:o;10498:870::-;5634:6;:13;;;;5643:4;5634:13;;;10570::::1;::::0;5634:6;10635:1:::1;5634:6:::0;10621:16:::1;::::0;240:136;298:7;325:43;329:1;332;325:43;;;;;;;;;;;;;;;;;:3;:43::i;581:252::-;639:7;663:6;659:47;;-1:-1:-1;693:1:0;686:8;;659:47;731:5;;;735:1;731;:5;:1;755:5;;;;;:10;747:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;839:132;897:7;924:39;928:1;931;924:39;;;;;;;;;;;;;;;;;:3;:39::i;52:182::-;110:7;142:5;;;166:6;;;;158:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10292:197;10379:4;;10341;;10379;;10365:10;:18;;;;:38;;-1:-1:-1;10397:6:0;;;;10396:7;10365:38;:62;;;;-1:-1:-1;10416:11:0;;;;10365:62;:116;;;;-1:-1:-1;10468:13:0;;10458:4;10440:24;;;;:9;:24;;;;;;:41;;10365:116;10358:123;;10292:197;:::o;13506:172::-;13550:4;13574:10;;13587:1;13574:14;;:47;;;;;13609:12;13592:10;;13605:1;13592:14;:29;13574:47;:95;;;;;13654:15;13625:12;;13640:10;13625:25;:44;;13567:102;;13506:172;:::o;9439:113::-;9525:19;;9501:4;9525:19;;;:11;:19;;;;;;;;9524:20;;9439:113::o;9561:722::-;9646:7;9666:17;9698:10;:8;:10::i;:::-;9697:11;:31;;;;-1:-1:-1;9724:4:0;;;9712:16;;;9724:4;;9712:16;;9697:31;9694:46;;;9737:1;9730:8;;;;;9694:46;9753:12;:10;:12::i;:::-;:37;;;;;9778:12;;9769:6;:21;9753:37;9750:268;;;9822:12;;9811:24;;:6;;:10;:24::i;:::-;9898:4;9880:24;;;;:9;:24;;;;;;9799:36;;-1:-1:-1;9880:39:0;;9799:36;9880:28;:39::i;:::-;9871:4;9853:24;;;;:9;:24;;;;;;;;;:66;;;;9935:42;;;;;;;9871:4;;9853:24;9935:42;;;;;;;;;;;;;9995:21;:6;10006:9;9995:10;:21::i;:::-;9988:28;;;;;9750:268;10086:14;;10075:4;;10040:61;;10086:14;10040:41;;10051:29;;10075:4;10063:16;;;10075:4;;10063:16;10051:11;:29::i;:::-;10040:6;;:10;:41::i;:61::-;10157:4;10139:24;;;;:9;:24;;;;;;10028:73;;-1:-1:-1;10139:39:0;;10028:73;10139:28;:39::i;:::-;10130:4;10112:24;;;;:9;:24;;;;;;;;;:66;;;;10194:42;;;;;;;10130:4;;10112:24;10194:42;;;;;;;;;;;;;10254:21;:6;10265:9;10254:10;:21::i;:::-;10247:28;9561:722;-1:-1:-1;;;;;9561:722:0:o;977:346::-;1063:7;1165:12;1158:5;1150:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1189:9;1205:1;1201;:5;;;;;;;977:346;-1:-1:-1;;;;;977:346:0:o

Swarm Source

ipfs://2a1d7031cec5cc1d1678df0727a98471bb92d4c6e4ac8eb7eb9a62b98394360b
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.