ETH Price: $2,617.95 (-0.27%)

Token

Bamboo Protocol (BAMBOO)
 

Overview

Max Total Supply

1,000,000,000 BAMBOO

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
104,162,384.360726462 BAMBOO

Value
$0.00
0x13ce24107c2aae8c47895d6df516944f40ef5579
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:
BAMBOO

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-13
*/

// SPDX-License-Identifier: MIT

/*
Website: https://www.bambooprotocol.org
Telegram: https://t.me/bamboo_eth
Twitter: https://twitter.com/bamboo_erc
*/

pragma solidity 0.8.21;

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

interface IUniFactory{
    function createPair(address tokenA, address tokenB) external returns (address pairAddr);
}

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 renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IUniRouter {
    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 BAMBOO is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = unicode"Bamboo Protocol";
    string private constant _symbol = unicode"BAMBOO";

    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

    IUniRouter uniRoute;
    address public pairAddr;

    bool private enableTrade = false;
    bool private swappingActive = true;
    bool private inswap;
    uint256 private numTaxSent;
    uint256 private sendTaxAfter;
    uint256 private swapTaxBelow = ( _totalSupply * 1000 ) / 100000;
    uint256 private swapTaxAbove = ( _totalSupply * 10 ) / 100000;
    
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private devFee = 100;
    uint256 private burnFee = 0;

    uint256 private buyFee = 1600;
    uint256 private sellFee = 1600;
    uint256 private txFee = 1600;
    uint256 private denominator = 10000;

    modifier lockSwapTax {inswap = true; _; inswap = false;}

    address internal developer = 0x18CC9493A97Df9E78E5D4172CB5b8406a91e1fC2; 
    address internal marketer = 0x18CC9493A97Df9E78E5D4172CB5b8406a91e1fC2;
    address internal lpOwner = 0x18CC9493A97Df9E78E5D4172CB5b8406a91e1fC2;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 private _maxTxAm = ( _totalSupply * 340 ) / 10000;
    uint256 private _maxSellAm = ( _totalSupply * 340 ) / 10000;
    uint256 private _maxWalletAm = ( _totalSupply * 340 ) / 10000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcluded;

    constructor() Ownable(msg.sender) {
        IUniRouter _router = IUniRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IUniFactory(_router.factory()).createPair(address(this), _router.WETH());
        uniRoute = _router; pairAddr = _pair;

        isExcluded[lpOwner] = true;
        isExcluded[msg.sender] = true;
        isExcluded[marketer] = true;
        isExcluded[developer] = 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 startTrading() external onlyOwner {enableTrade = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; devFee = _development; buyFee = _total; sellFee = _sell; txFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && txFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }

    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);
        _maxTxAm = newTx; _maxSellAm = newTransfer; _maxWalletAm = 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 canSwapTax(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= swapTaxAbove;
        bool aboveThreshold = balanceOf(address(this)) >= swapTaxBelow;
        return !inswap && swappingActive && enableTrade && aboveMin && !isExcluded[sender] && recipient == pairAddr && numTaxSent >= sendTaxAfter && aboveThreshold;
    }

    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 getTaxAm(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pairAddr){return sellFee;}
        if(sender == pairAddr){return buyFee;}
        return txFee;
    }

    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 swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniRoute.WETH();
        _approve(address(this), address(uniRoute), tokenAmount);
        uniRoute.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    
    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(!isExcluded[sender] && !isExcluded[recipient]){require(enableTrade, "enableTrade");}
        if(!isExcluded[sender] && !isExcluded[recipient] && recipient != address(pairAddr) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletAm, "Exceeds maximum wallet amount.");}
        if(sender != pairAddr){require(amount <= _maxSellAm || isExcluded[sender] || isExcluded[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAm || isExcluded[sender] || isExcluded[recipient], "TX Limit Exceeded"); 
        if(recipient == pairAddr && !isExcluded[sender]){numTaxSent += uint256(1);}
        if(canSwapTax(sender, recipient, amount)){swapBackLockedTokens(swapTaxBelow); numTaxSent = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcluded[sender] ? getFeeAmount(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniRoute), tokenAmount);
        uniRoute.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpOwner,
            block.timestamp);
    }

    function swapBackLockedTokens(uint256 tokens) private lockSwapTax {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(devFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(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(marketer).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(developer).transfer(contractBalance);}
    }

    function getFeeAmount(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcluded[recipient]) {return _maxTxAm;}
        if(getTaxAm(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxAm(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTaxAm(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return 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":"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":"isExcluded","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pairAddr","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"}]

6080604052620000126009600a620004b2565b6200002290633b9aca00620004c9565b60018190556003805461ffff60a01b1916600160a81b179055620186a0906200004e906103e8620004c9565b6200005a9190620004e3565b600655620186a0600154600a620000729190620004c9565b6200007e9190620004e3565b6007555f600881905560098190556064600a55600b55610640600c819055600d819055600e55612710600f819055601080547318cc9493a97df9e78e5d4172cb5b8406a91e1fc26001600160a01b0319918216811790925560118054821683179055601280549091169091179055600154620000fd90610154620004c9565b620001099190620004e3565b601355612710600154610154620001219190620004c9565b6200012d9190620004e3565b601455612710600154610154620001459190620004c9565b620001519190620004e3565b60155534801562000160575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001eb919062000503565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000237573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025d919062000503565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000503565b600280546001600160a01b038581166001600160a01b03199283161790925560038054848416921691909117905560125481165f908152601860209081526040808320805460ff199081166001908117909255338086528386208054831684179055601154871686528386208054831684179055601054909616855282852080549091168217905554848452601683528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200052b565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003f757815f1904821115620003db57620003db620003a3565b80851615620003e957918102915b93841c9390800290620003bc565b509250929050565b5f826200040f57506001620004ac565b816200041d57505f620004ac565b8160018114620004365760028114620004415762000461565b6001915050620004ac565b60ff841115620004555762000455620003a3565b50506001821b620004ac565b5060208310610133831016604e8410600b841016171562000486575081810a620004ac565b620004928383620003b7565b805f1904821115620004a857620004a8620003a3565b0290505b92915050565b5f620004c260ff841683620003ff565b9392505050565b8082028115828204841417620004ac57620004ac620003a3565b5f82620004fe57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000514575f80fd5b81516001600160a01b0381168114620004c2575f80fd5b6117e180620005395f395ff3fe608060405260043610610108575f3560e01c8063715018a611610092578063a9059cbb11610062578063a9059cbb14610312578063cb7f97d714610331578063cba0e99614610350578063dd62ed3e1461037e578063f2fde38b146103c2575f80fd5b8063715018a614610295578063893d20e8146102a957806395d89b41146102c55780639cc35351146102f3575f80fd5b8063293230b8116100d8578063293230b8146101cc5780632f54bf6e146101e2578063313ce5671461020f5780634f4fc99b1461022a57806370a0823114610261575f80fd5b806306fdde0314610113578063095ea7b31461015c57806318160ddd1461018b57806323b872dd146101ad575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600f81526e10985b589bdbc8141c9bdd1bd8dbdb608a1b60208201525b604051610153919061149e565b60405180910390f35b348015610167575f80fd5b5061017b610176366004611500565b6103e1565b6040519015158152602001610153565b348015610196575f80fd5b5061019f6103f7565b604051908152602001610153565b3480156101b8575f80fd5b5061017b6101c736600461152a565b610467565b3480156101d7575f80fd5b506101e06104cf565b005b3480156101ed575f80fd5b5061017b6101fc366004611568565b5f546001600160a01b0391821691161490565b34801561021a575f80fd5b5060405160098152602001610153565b348015610235575f80fd5b50600354610249906001600160a01b031681565b6040516001600160a01b039091168152602001610153565b34801561026c575f80fd5b5061019f61027b366004611568565b6001600160a01b03165f9081526016602052604090205490565b3480156102a0575f80fd5b506101e0610516565b3480156102b4575f80fd5b505f546001600160a01b0316610249565b3480156102d0575f80fd5b5060408051808201909152600681526542414d424f4f60d01b6020820152610146565b3480156102fe575f80fd5b506101e061030d366004611583565b610583565b34801561031d575f80fd5b5061017b61032c366004611500565b6106bf565b34801561033c575f80fd5b506101e061034b3660046115ac565b6106cb565b34801561035b575f80fd5b5061017b61036a366004611568565b60186020525f908152604090205460ff1681565b348015610389575f80fd5b5061019f6103983660046115f3565b6001600160a01b039182165f90815260176020908152604080832093909416825291909152205490565b3480156103cd575f80fd5b506101e06103dc366004611568565b6107bf565b5f6103ed33848461083b565b5060015b92915050565b60166020527f0263c2b778d062355049effc2dece97bc6547ff8a88a3258daa512061c2153dd5461dead5f9081527f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b5754600154919261046292909161045c919061095e565b9061095e565b905090565b5f610473848484610969565b6104c484336104bf85604051806060016040528060288152602001611784602891396001600160a01b038a165f9081526017602090815260408083203384529091529020549190610ea7565b61083b565b5060015b9392505050565b5f546001600160a01b031633146105015760405162461bcd60e51b81526004016104f89061162a565b60405180910390fd5b6003805460ff60a01b1916600160a01b179055565b5f546001600160a01b0316331461053f5760405162461bcd60e51b81526004016104f89061162a565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146105ac5760405162461bcd60e51b81526004016104f89061162a565b5f6105ce6127106105c886600154610ed290919063ffffffff16565b90610edd565b90505f6105ec6127106105c886600154610ed290919063ffffffff16565b90505f61060a6127106105c886600154610ed290919063ffffffff16565b60138490556014839055601581905590505f6106356103e86105c8600561062f6103f7565b90610ed2565b90508084101580156106475750808310155b80156106535750808210155b6106b65760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104f8565b50505050505050565b5f6103ed338484610969565b5f546001600160a01b031633146106f45760405162461bcd60e51b81526004016104f89061162a565b60088790556009869055600b859055600a849055600c839055600d829055600e819055600f54610725906001610edd565b600c54111580156107455750600f5461073f906001610edd565b600d5411155b80156107605750600f5461075a906001610edd565b600e5411155b6106b65760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b60648201526084016104f8565b5f546001600160a01b031633146107e85760405162461bcd60e51b81526004016104f89061162a565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661089d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f8565b6001600160a01b0382166108fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f8565b6001600160a01b038381165f8181526017602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104c8828461165e565b6001600160a01b0383166109cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f8565b6001600160a01b038216610a2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f8565b6001600160a01b0383165f90815260166020526040902054811115610ab05760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104f8565b6001600160a01b0383165f9081526018602052604090205460ff16158015610af057506001600160a01b0382165f9081526018602052604090205460ff16155b15610b3c57600354600160a01b900460ff16610b3c5760405162461bcd60e51b815260206004820152600b60248201526a656e61626c65547261646560a81b60448201526064016104f8565b6001600160a01b0383165f9081526018602052604090205460ff16158015610b7c57506001600160a01b0382165f9081526018602052604090205460ff16155b8015610b9657506003546001600160a01b03838116911614155b8015610bad57506001600160a01b03821661dead14155b15610c25576015546001600160a01b0383165f90815260166020526040902054610bd79083610ee8565b1115610c255760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104f8565b6003546001600160a01b03848116911614610cc45760145481111580610c6257506001600160a01b0383165f9081526018602052604090205460ff165b80610c8457506001600160a01b0382165f9081526018602052604090205460ff165b610cc45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104f8565b60135481111580610cec57506001600160a01b0383165f9081526018602052604090205460ff165b80610d0e57506001600160a01b0382165f9081526018602052604090205460ff165b610d4e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104f8565b6003546001600160a01b038381169116148015610d8357506001600160a01b0383165f9081526018602052604090205460ff16155b15610da057600160045f828254610d9a9190611671565b90915550505b610dab838383610ef3565b15610dc057610dbb600654610fb2565b5f6004555b6001600160a01b0383165f90815260166020526040902054610de2908261095e565b6001600160a01b0384165f90815260166020908152604080832093909355601890529081205460ff1615610e165781610e21565b610e21848484611129565b6001600160a01b0384165f90815260166020526040902054909150610e469082610ee8565b6001600160a01b038085165f8181526016602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e999085815260200190565b60405180910390a350505050565b5f8184841115610eca5760405162461bcd60e51b81526004016104f8919061149e565b505050900390565b5f6104c88284611684565b5f6104c8828461169b565b5f6104c88284611671565b600754600654305f90815260166020526040812054600354919385101592111590600160b01b900460ff16158015610f345750600354600160a81b900460ff165b8015610f495750600354600160a01b900460ff165b8015610f525750815b8015610f7657506001600160a01b0386165f9081526018602052604090205460ff16155b8015610f8f57506003546001600160a01b038681169116145b8015610f9f575060055460045410155b8015610fa85750805b9695505050505050565b6003805460ff60b01b1916600160b01b179055600a546009546008545f92610fef9260029261062f9291610fe99182906001610ee8565b90610ee8565b90505f61100b826105c860085486610ed290919063ffffffff16565b90505f611018848361095e565b90504761102482611253565b5f61102f478361095e565b90505f61105161104a6008548861095e90919063ffffffff16565b8390610edd565b90505f61106960085483610ed290919063ffffffff16565b9050801561107b5761107b86826113a3565b6009545f9061108f9061062f856002610ed2565b905080156110d0576011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110ce573d5f803e3d5ffd5b505b478015611110576010546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561110e573d5f803e3d5ffd5b505b50506003805460ff60b01b191690555050505050505050565b6001600160a01b0382165f9081526018602052604081205460ff161561115257506013546104c8565b5f61115d8585611454565b111561124c575f61117f6111718686611454565b600f5461062f908690610edd565b305f9081526016602052604090205490915061119b9082610ee8565b305f81815260166020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111eb9085815260200190565b60405180910390a35f600b5411801561120e5750600b5461120c8686611454565b115b1561123a5761123a3061dead611235600b5461062f600f5489610edd90919063ffffffff16565b610969565b611244838261095e565b9150506104c8565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611286576112866116ba565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130191906116ce565b81600181518110611314576113146116ba565b6001600160a01b03928316602091820292909201015260025461133a913091168461083b565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113729085905f908690309042906004016116e9565b5f604051808303815f87803b158015611389575f80fd5b505af115801561139b573d5f803e3d5ffd5b505050505050565b6002546113bb9030906001600160a01b03168461083b565b60025460125460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611428573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061144d9190611758565b5050505050565b6003545f906001600160a01b03908116908316036114755750600d546103f1565b6003546001600160a01b03908116908416036114945750600c546103f1565b50600e5492915050565b5f6020808352835180828501525f5b818110156114c9578581018301518582016040015282016114ad565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114fd575f80fd5b50565b5f8060408385031215611511575f80fd5b823561151c816114e9565b946020939093013593505050565b5f805f6060848603121561153c575f80fd5b8335611547816114e9565b92506020840135611557816114e9565b929592945050506040919091013590565b5f60208284031215611578575f80fd5b81356104c8816114e9565b5f805f60608486031215611595575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a0312156115c2575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611604575f80fd5b823561160f816114e9565b9150602083013561161f816114e9565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103f1576103f161164a565b808201808211156103f1576103f161164a565b80820281158282048414176103f1576103f161164a565b5f826116b557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116de575f80fd5b81516104c8816114e9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117375784516001600160a01b031683529383019391830191600101611712565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561176a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c32781b882407fb38ba1568b5337dce144577e08df6a2b6ad0a772b0a857ab0564736f6c63430008150033

Deployed Bytecode

0x608060405260043610610108575f3560e01c8063715018a611610092578063a9059cbb11610062578063a9059cbb14610312578063cb7f97d714610331578063cba0e99614610350578063dd62ed3e1461037e578063f2fde38b146103c2575f80fd5b8063715018a614610295578063893d20e8146102a957806395d89b41146102c55780639cc35351146102f3575f80fd5b8063293230b8116100d8578063293230b8146101cc5780632f54bf6e146101e2578063313ce5671461020f5780634f4fc99b1461022a57806370a0823114610261575f80fd5b806306fdde0314610113578063095ea7b31461015c57806318160ddd1461018b57806323b872dd146101ad575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5060408051808201909152600f81526e10985b589bdbc8141c9bdd1bd8dbdb608a1b60208201525b604051610153919061149e565b60405180910390f35b348015610167575f80fd5b5061017b610176366004611500565b6103e1565b6040519015158152602001610153565b348015610196575f80fd5b5061019f6103f7565b604051908152602001610153565b3480156101b8575f80fd5b5061017b6101c736600461152a565b610467565b3480156101d7575f80fd5b506101e06104cf565b005b3480156101ed575f80fd5b5061017b6101fc366004611568565b5f546001600160a01b0391821691161490565b34801561021a575f80fd5b5060405160098152602001610153565b348015610235575f80fd5b50600354610249906001600160a01b031681565b6040516001600160a01b039091168152602001610153565b34801561026c575f80fd5b5061019f61027b366004611568565b6001600160a01b03165f9081526016602052604090205490565b3480156102a0575f80fd5b506101e0610516565b3480156102b4575f80fd5b505f546001600160a01b0316610249565b3480156102d0575f80fd5b5060408051808201909152600681526542414d424f4f60d01b6020820152610146565b3480156102fe575f80fd5b506101e061030d366004611583565b610583565b34801561031d575f80fd5b5061017b61032c366004611500565b6106bf565b34801561033c575f80fd5b506101e061034b3660046115ac565b6106cb565b34801561035b575f80fd5b5061017b61036a366004611568565b60186020525f908152604090205460ff1681565b348015610389575f80fd5b5061019f6103983660046115f3565b6001600160a01b039182165f90815260176020908152604080832093909416825291909152205490565b3480156103cd575f80fd5b506101e06103dc366004611568565b6107bf565b5f6103ed33848461083b565b5060015b92915050565b60166020527f0263c2b778d062355049effc2dece97bc6547ff8a88a3258daa512061c2153dd5461dead5f9081527f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b5754600154919261046292909161045c919061095e565b9061095e565b905090565b5f610473848484610969565b6104c484336104bf85604051806060016040528060288152602001611784602891396001600160a01b038a165f9081526017602090815260408083203384529091529020549190610ea7565b61083b565b5060015b9392505050565b5f546001600160a01b031633146105015760405162461bcd60e51b81526004016104f89061162a565b60405180910390fd5b6003805460ff60a01b1916600160a01b179055565b5f546001600160a01b0316331461053f5760405162461bcd60e51b81526004016104f89061162a565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146105ac5760405162461bcd60e51b81526004016104f89061162a565b5f6105ce6127106105c886600154610ed290919063ffffffff16565b90610edd565b90505f6105ec6127106105c886600154610ed290919063ffffffff16565b90505f61060a6127106105c886600154610ed290919063ffffffff16565b60138490556014839055601581905590505f6106356103e86105c8600561062f6103f7565b90610ed2565b90508084101580156106475750808310155b80156106535750808210155b6106b65760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b60648201526084016104f8565b50505050505050565b5f6103ed338484610969565b5f546001600160a01b031633146106f45760405162461bcd60e51b81526004016104f89061162a565b60088790556009869055600b859055600a849055600c839055600d829055600e819055600f54610725906001610edd565b600c54111580156107455750600f5461073f906001610edd565b600d5411155b80156107605750600f5461075a906001610edd565b600e5411155b6106b65760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b60648201526084016104f8565b5f546001600160a01b031633146107e85760405162461bcd60e51b81526004016104f89061162a565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661089d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f8565b6001600160a01b0382166108fe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f8565b6001600160a01b038381165f8181526017602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6104c8828461165e565b6001600160a01b0383166109cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f8565b6001600160a01b038216610a2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f8565b6001600160a01b0383165f90815260166020526040902054811115610ab05760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b60648201526084016104f8565b6001600160a01b0383165f9081526018602052604090205460ff16158015610af057506001600160a01b0382165f9081526018602052604090205460ff16155b15610b3c57600354600160a01b900460ff16610b3c5760405162461bcd60e51b815260206004820152600b60248201526a656e61626c65547261646560a81b60448201526064016104f8565b6001600160a01b0383165f9081526018602052604090205460ff16158015610b7c57506001600160a01b0382165f9081526018602052604090205460ff16155b8015610b9657506003546001600160a01b03838116911614155b8015610bad57506001600160a01b03821661dead14155b15610c25576015546001600160a01b0383165f90815260166020526040902054610bd79083610ee8565b1115610c255760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016104f8565b6003546001600160a01b03848116911614610cc45760145481111580610c6257506001600160a01b0383165f9081526018602052604090205460ff165b80610c8457506001600160a01b0382165f9081526018602052604090205460ff165b610cc45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104f8565b60135481111580610cec57506001600160a01b0383165f9081526018602052604090205460ff165b80610d0e57506001600160a01b0382165f9081526018602052604090205460ff165b610d4e5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016104f8565b6003546001600160a01b038381169116148015610d8357506001600160a01b0383165f9081526018602052604090205460ff16155b15610da057600160045f828254610d9a9190611671565b90915550505b610dab838383610ef3565b15610dc057610dbb600654610fb2565b5f6004555b6001600160a01b0383165f90815260166020526040902054610de2908261095e565b6001600160a01b0384165f90815260166020908152604080832093909355601890529081205460ff1615610e165781610e21565b610e21848484611129565b6001600160a01b0384165f90815260166020526040902054909150610e469082610ee8565b6001600160a01b038085165f8181526016602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e999085815260200190565b60405180910390a350505050565b5f8184841115610eca5760405162461bcd60e51b81526004016104f8919061149e565b505050900390565b5f6104c88284611684565b5f6104c8828461169b565b5f6104c88284611671565b600754600654305f90815260166020526040812054600354919385101592111590600160b01b900460ff16158015610f345750600354600160a81b900460ff165b8015610f495750600354600160a01b900460ff165b8015610f525750815b8015610f7657506001600160a01b0386165f9081526018602052604090205460ff16155b8015610f8f57506003546001600160a01b038681169116145b8015610f9f575060055460045410155b8015610fa85750805b9695505050505050565b6003805460ff60b01b1916600160b01b179055600a546009546008545f92610fef9260029261062f9291610fe99182906001610ee8565b90610ee8565b90505f61100b826105c860085486610ed290919063ffffffff16565b90505f611018848361095e565b90504761102482611253565b5f61102f478361095e565b90505f61105161104a6008548861095e90919063ffffffff16565b8390610edd565b90505f61106960085483610ed290919063ffffffff16565b9050801561107b5761107b86826113a3565b6009545f9061108f9061062f856002610ed2565b905080156110d0576011546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156110ce573d5f803e3d5ffd5b505b478015611110576010546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561110e573d5f803e3d5ffd5b505b50506003805460ff60b01b191690555050505050505050565b6001600160a01b0382165f9081526018602052604081205460ff161561115257506013546104c8565b5f61115d8585611454565b111561124c575f61117f6111718686611454565b600f5461062f908690610edd565b305f9081526016602052604090205490915061119b9082610ee8565b305f81815260166020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111eb9085815260200190565b60405180910390a35f600b5411801561120e5750600b5461120c8686611454565b115b1561123a5761123a3061dead611235600b5461062f600f5489610edd90919063ffffffff16565b610969565b611244838261095e565b9150506104c8565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611286576112866116ba565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112dd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130191906116ce565b81600181518110611314576113146116ba565b6001600160a01b03928316602091820292909201015260025461133a913091168461083b565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113729085905f908690309042906004016116e9565b5f604051808303815f87803b158015611389575f80fd5b505af115801561139b573d5f803e3d5ffd5b505050505050565b6002546113bb9030906001600160a01b03168461083b565b60025460125460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611428573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061144d9190611758565b5050505050565b6003545f906001600160a01b03908116908316036114755750600d546103f1565b6003546001600160a01b03908116908416036114945750600c546103f1565b50600e5492915050565b5f6020808352835180828501525f5b818110156114c9578581018301518582016040015282016114ad565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146114fd575f80fd5b50565b5f8060408385031215611511575f80fd5b823561151c816114e9565b946020939093013593505050565b5f805f6060848603121561153c575f80fd5b8335611547816114e9565b92506020840135611557816114e9565b929592945050506040919091013590565b5f60208284031215611578575f80fd5b81356104c8816114e9565b5f805f60608486031215611595575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a0312156115c2575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f8060408385031215611604575f80fd5b823561160f816114e9565b9150602083013561161f816114e9565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103f1576103f161164a565b808201808211156103f1576103f161164a565b80820281158282048414176103f1576103f161164a565b5f826116b557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156116de575f80fd5b81516104c8816114e9565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117375784516001600160a01b031683529383019391830191600101611712565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561176a575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c32781b882407fb38ba1568b5337dce144577e08df6a2b6ad0a772b0a857ab0564736f6c63430008150033

Deployed Bytecode Sourcemap

3686:9617:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6009:67;;;;;;;;;;-1:-1:-1;6069:5:0;;;;;;;;;;;;-1:-1:-1;;;6069:5:0;;;;6009:67;;;;;;;:::i;:::-;;;;;;;;6766:133;;;;;;;;;;-1:-1:-1;6766:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6766:133:0;1023:187:1;6495:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6495:132:0;1215:177:1;9080:309:0;;;;;;;;;;-1:-1:-1;9080:309:0;;;;;:::i;:::-;;:::i;6232:64::-;;;;;;;;;;;;;:::i;:::-;;2691:87;;;;;;;;;;-1:-1:-1;2691:87:0;;;;;:::i;:::-;2746:4;2771:5;-1:-1:-1;;;;;2760:16:0;;;2771:5;;2760:16;;2691:87;6159:67;;;;;;;;;;-1:-1:-1;6159:67:0;;3919:1;2252:36:1;;2240:2;2225:18;6159:67:0;2110:184:1;4023:23:0;;;;;;;;;;-1:-1:-1;4023:23:0;;;;-1:-1:-1;;;;;4023:23:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;4023:23:0;2299:203:1;6386:103:0;;;;;;;;;;-1:-1:-1;6386:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6469:18:0;6452:7;6469:18;;;:9;:18;;;;;;;6386:103;2784:106;;;;;;;;;;;;;:::i;6302:78::-;;;;;;;;;;-1:-1:-1;6354:7:0;6372:5;-1:-1:-1;;;;;6372:5:0;6302:78;;6082:71;;;;;;;;;;-1:-1:-1;6144:7:0;;;;;;;;;;;;-1:-1:-1;;;6144:7:0;;;;6082:71;;7558:545;;;;;;;;;;-1:-1:-1;7558:545:0;;;;;:::i;:::-;;:::i;6905:139::-;;;;;;;;;;-1:-1:-1;6905:139:0;;;;;:::i;:::-;;:::i;7052:498::-;;;;;;;;;;-1:-1:-1;7052:498:0;;;;;:::i;:::-;;:::i;5375:43::-;;;;;;;;;;-1:-1:-1;5375:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6633:127;;;;;;;;;;-1:-1:-1;6633:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6731:18:0;;;6714:7;6731:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6633:127;2896:111;;;;;;;;;;-1:-1:-1;2896:111:0;;;;;:::i;:::-;;:::i;6766:133::-;6841:4;6848:37;6857:10;6869:7;6878:6;6848:8;:37::i;:::-;-1:-1:-1;6893:4:0;6766:133;;;;;:::o;6495:132::-;6469:9;:18;;;;5003:42;6548:7;6469:18;;;;;6565:12;;6548:7;;6565:60;;6469:18;;6565:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6558:67;;6495:132;:::o;9080:309::-;9178:4;9195:36;9205:6;9213:9;9224:6;9195:9;:36::i;:::-;9242:117;9251:6;9259:10;9271:87;9307:6;9271:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9271:19:0;;;;;;:11;:19;;;;;;;;9291:10;9271:31;;;;;;;;;:87;:35;:87::i;:::-;9242:8;:117::i;:::-;-1:-1:-1;9377:4:0;9080:309;;;;;;:::o;6232:64::-;2746:4;2771:5;-1:-1:-1;;;;;2771:5:0;2658:10;2760:16;2642:38;;;;-1:-1:-1;;;2642:38:0;;;;;;;:::i;:::-;;;;;;;;;6276:11:::1;:18:::0;;-1:-1:-1;;;;6276:18:0::1;-1:-1:-1::0;;;6276:18:0::1;::::0;;6232:64::o;2784:106::-;2746:4;2771:5;-1:-1:-1;;;;;2771:5:0;2658:10;2760:16;2642:38;;;;-1:-1:-1;;;2642:38:0;;;;;;;:::i;:::-;2847:1:::1;2831:18:::0;;-1:-1:-1;;;;;;2831:18:0::1;::::0;;2856:32:::1;::::0;2445:51:1;;;2856:32:0::1;::::0;2433:2:1;2418:18;2856:32:0::1;;;;;;;2784:106::o:0;7558:545::-;2746:4;2771:5;-1:-1:-1;;;;;2771:5:0;2658:10;2760:16;2642:38;;;;-1:-1:-1;;;2642:38:0;;;;;;;:::i;:::-;7664:13:::1;7680:33;7707:5;7680:22;7697:4;7680:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;7664:49;;7715:19;7737:34;7765:5;7737:23;7754:5;7737:12;;:16;;:23;;;;:::i;:34::-;7715:56;;7773:17;7793:36;7823:5;7793:25;7810:7;7793:12;;:16;;:25;;;;:::i;:36::-;7840:8;:16:::0;;;7858:10:::1;:24:::0;;;7884:12:::1;:24:::0;;;7773:56;-1:-1:-1;;7935:30:0::1;7960:4;7935:20;7953:1;7935:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;7919:46;;7993:5;7984;:14;;:38;;;;;8017:5;8002:11;:20;;7984:38;:60;;;;;8039:5;8026:9;:18;;7984:60;7976:119;;;::::0;-1:-1:-1;;;7976:119:0;;4614:2:1;7976: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;;7976:119:0::1;4412:410:1::0;7976:119:0::1;7653:450;;;;7558:545:::0;;;:::o;6905:139::-;6983:4;6990:40;7000:10;7012:9;7023:6;6990:9;:40::i;7052:498::-;2746:4;2771:5;-1:-1:-1;;;;;2771:5:0;2658:10;2760:16;2642:38;;;;-1:-1:-1;;;2642:38:0;;;;;;;:::i;:::-;7242:12:::1;:25:::0;;;7269:12:::1;:25:::0;;;7296:7:::1;:15:::0;;;7313:6:::1;:21:::0;;;7336:6:::1;:15:::0;;;7353:7:::1;:15:::0;;;7370:5:::1;:14:::0;;;7413:11:::1;::::0;:18:::1;::::0;-1:-1:-1;7413:15:0::1;:18::i;:::-;7403:6;;:28;;:61;;;;-1:-1:-1::0;7446:11:0::1;::::0;:18:::1;::::0;7462:1:::1;7446:15;:18::i;:::-;7435:7;;:29;;7403:61;:92;;;;-1:-1:-1::0;7477:11:0::1;::::0;:18:::1;::::0;7493:1:::1;7477:15;:18::i;:::-;7468:5;;:27;;7403:92;7395:147;;;::::0;-1:-1:-1;;;7395:147:0;;5029:2:1;7395:147: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:40;5208:19;;7395:147:0::1;4827:406:1::0;2896:111:0;2746:4;2771:5;-1:-1:-1;;;;;2771:5:0;2658:10;2760:16;2642:38;;;;-1:-1:-1;;;2642:38:0;;;;;;;:::i;:::-;2962:5:::1;:11:::0;;-1:-1:-1;;;;;;2962:11:0::1;-1:-1:-1::0;;;;;2962:11:0;::::1;::::0;;::::1;::::0;;;2980:25:::1;::::0;2445:51:1;;;2980:25:0::1;::::0;2433:2:1;2418:18;2980:25:0::1;;;;;;;2896:111:::0;:::o;8513:335::-;-1:-1:-1;;;;;8606:19:0;;8598:68;;;;-1:-1:-1;;;8598:68:0;;5656:2:1;8598:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;8598:68:0;5454:400:1;8598:68:0;-1:-1:-1;;;;;8685:21:0;;8677:68;;;;-1:-1:-1;;;8677:68:0;;6061:2:1;8677:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;8677:68:0;5859:398:1;8677:68:0;-1:-1:-1;;;;;8756:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8808:32;;1361:25:1;;;8808:32:0;;1334:18:1;8808:32:0;;;;;;;8513:335;;;:::o;317:98::-;375:7;402:5;406:1;402;:5;:::i;9849:1410::-;-1:-1:-1;;;;;9946:20:0;;9938:70;;;;-1:-1:-1;;;9938:70:0;;6729:2:1;9938:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;9938:70:0;6527:401:1;9938:70:0;-1:-1:-1;;;;;10027:23:0;;10019:71;;;;-1:-1:-1;;;10019:71:0;;7135:2:1;10019:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;10019:71:0;6933:399:1;10019:71:0;-1:-1:-1;;;;;6469:18:0;;6452:7;6469:18;;;:9;:18;;;;;;10109:6;:27;;10101:88;;;;-1:-1:-1;;;10101:88:0;;7539:2:1;10101:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;10101:88:0;7337:413:1;10101:88:0;-1:-1:-1;;;;;10204:18:0;;;;;;:10;:18;;;;;;;;10203:19;:45;;;;-1:-1:-1;;;;;;10227:21:0;;;;;;:10;:21;;;;;;;;10226:22;10203:45;10200:87;;;10258:11;;-1:-1:-1;;;10258:11:0;;;;10250:35;;;;-1:-1:-1;;;10250:35:0;;7957:2:1;10250:35:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:41;8066:18;;10250:35:0;7755:335:1;10250:35:0;-1:-1:-1;;;;;10301:18:0;;;;;;:10;:18;;;;;;;;10300:19;:45;;;;-1:-1:-1;;;;;;10324:21:0;;;;;;:10;:21;;;;;;;;10323:22;10300:45;:79;;;;-1:-1:-1;10370:8:0;;-1:-1:-1;;;;;10349:30:0;;;10370:8;;10349:30;;10300:79;:109;;;;-1:-1:-1;;;;;;10383:26:0;;5003:42;10383:26;;10300:109;10297:219;;;10467:12;;-1:-1:-1;;;;;10430:20:0;;;;;;:9;:20;;;;;;:32;;10455:6;10430:24;:32::i;:::-;10429:50;;10421:93;;;;-1:-1:-1;;;10421:93:0;;8297:2:1;10421:93:0;;;8279:21:1;8336:2;8316:18;;;8309:30;8375:32;8355:18;;;8348:60;8425:18;;10421:93:0;8095:354:1;10421:93:0;10539:8;;-1:-1:-1;;;;;10529:18:0;;;10539:8;;10529:18;10526:122;;10567:10;;10557:6;:20;;:42;;;-1:-1:-1;;;;;;10581:18:0;;;;;;:10;:18;;;;;;;;10557:42;:67;;;-1:-1:-1;;;;;;10603:21:0;;;;;;:10;:21;;;;;;;;10557:67;10549:97;;;;-1:-1:-1;;;10549:97:0;;8656:2:1;10549:97:0;;;8638:21:1;8695:2;8675:18;;;8668:30;-1:-1:-1;;;8714:18:1;;;8707:47;8771:18;;10549:97:0;8454:341:1;10549:97:0;10676:8;;10666:6;:18;;:40;;;-1:-1:-1;;;;;;10688:18:0;;;;;;:10;:18;;;;;;;;10666:40;:65;;;-1:-1:-1;;;;;;10710:21:0;;;;;;:10;:21;;;;;;;;10666:65;10658:95;;;;-1:-1:-1;;;10658:95:0;;8656:2:1;10658:95:0;;;8638:21:1;8695:2;8675:18;;;8668:30;-1:-1:-1;;;8714:18:1;;;8707:47;8771:18;;10658:95:0;8454:341:1;10658:95:0;10781:8;;-1:-1:-1;;;;;10768:21:0;;;10781:8;;10768:21;:44;;;;-1:-1:-1;;;;;;10794:18:0;;;;;;:10;:18;;;;;;;;10793:19;10768:44;10765:75;;;10836:1;10814:10;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;10765:75:0;10853:37;10864:6;10872:9;10883:6;10853:10;:37::i;:::-;10850:103;;;10892:34;10913:12;;10892:20;:34::i;:::-;10949:1;10928:10;:23;10850:103;-1:-1:-1;;;;;10983:17:0;;;;;;:9;:17;;;;;;:29;;11005:6;10983:21;:29::i;:::-;-1:-1:-1;;;;;10963:17:0;;;;;;:9;:17;;;;;;;;:49;;;;11049:10;:18;;;;;;;;11048:19;:70;;11112:6;11048:70;;;11070:39;11083:6;11091:9;11102:6;11070:12;:39::i;:::-;-1:-1:-1;;;;;11152:20:0;;;;;;:9;:20;;;;;;11023:95;;-1:-1:-1;11152:40:0;;11023:95;11152:24;:40::i;:::-;-1:-1:-1;;;;;11129:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11208:43;;;;;;;;;;11236:14;1361:25:1;;1349:2;1334:18;;1215:177;11208:43:0;;;;;;;;9927:1332;9849:1410;;;:::o;733:240::-;853:7;914:12;906:6;;;;898:29;;;;-1:-1:-1;;;898:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;949:5:0;;;733:240::o;421:98::-;479:7;506:5;510:1;506;:5;:::i;525:98::-;583:7;610:5;614:1;610;:5;:::i;213:98::-;271:7;298:5;302:1;298;:5;:::i;8109:396::-;8246:12;;8319;;8309:4;8203;6469:18;;;:9;:18;;;;;;8350:6;;8203:4;;8236:22;;;;-1:-1:-1;8291:40:0;;-1:-1:-1;;;8350:6:0;;;;8349:7;:25;;;;-1:-1:-1;8360:14:0;;-1:-1:-1;;;8360:14:0;;;;8349:25;:40;;;;-1:-1:-1;8378:11:0;;-1:-1:-1;;;8378:11:0;;;;8349:40;:52;;;;;8393:8;8349:52;:75;;;;-1:-1:-1;;;;;;8406:18:0;;;;;;:10;:18;;;;;;;;8405:19;8349:75;:100;;;;-1:-1:-1;8441:8:0;;-1:-1:-1;;;;;8428:21:0;;;8441:8;;8428:21;8349:100;:130;;;;;8467:12;;8453:10;;:26;;8349:130;:148;;;;;8483:14;8349:148;8342:155;8109:396;-1:-1:-1;;;;;;8109:396:0:o;11611:1040::-;4696:6;:13;;-1:-1:-1;;;;4696:13:0;-1:-1:-1;;;4696:13:0;;;11754:6:::1;::::0;11736:12:::1;::::0;11712::::1;::::0;4696:13;;11711:58:::1;::::0;11767:1:::1;::::0;11712:49:::1;::::0;11754:6;11712:37:::1;::::0;;;4705:4;11712:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;11711:58::-;11688:81;;11780:32;11815:42;11844:12;11815:24;11826:12;;11815:6;:10;;:24;;;;:::i;:42::-;11780:77:::0;-1:-1:-1;11868:14:0::1;11885:36;:6:::0;11780:77;11885:10:::1;:36::i;:::-;11868:53:::0;-1:-1:-1;11957:21:0::1;11989:24;11868:53:::0;11989:16:::1;:24::i;:::-;12024:20;12047:41;:21;12073:14:::0;12047:25:::1;:41::i;:::-;12024:64;;12099:19;12120:48;12137:30;12154:12;;12137;:16;;:30;;;;:::i;:::-;12120:12:::0;;:16:::1;:48::i;:::-;12099:69;;12179:29;12211;12227:12;;12211:11;:15;;:29;;;;:::i;:::-;12179:61:::0;-1:-1:-1;12254:34:0;;12251:103:::1;;12290:61;12303:24;12329:21;12290:12;:61::i;:::-;12410:12;::::0;12364:20:::1;::::0;12387:36:::1;::::0;:18:::1;:11:::0;12403:1:::1;12387:15;:18::i;:36::-;12364:59:::0;-1:-1:-1;12437:16:0;;12434:63:::1;;12463:8;::::0;12455:40:::1;::::0;-1:-1:-1;;;;;12463:8:0;;::::1;::::0;12455:40;::::1;;;::::0;12482:12;;12463:8:::1;12455:40:::0;12463:8;12455:40;12482:12;12463:8;12455:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12434:63;12533:21;12568:28:::0;;12565:79:::1;;12606:9;::::0;12598:44:::1;::::0;-1:-1:-1;;;;;12606:9:0;;::::1;::::0;12598:44;::::1;;;::::0;12626:15;;12606:9:::1;12598:44:::0;12606:9;12598:44;12626:15;12606:9;12598:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12565:79;-1:-1:-1::0;;4714:6:0;:14;;-1:-1:-1;;;;4714:14:0;;;-1:-1:-1;;;;;;;;11611:1040:0:o;12659:641::-;-1:-1:-1;;;;;12774:21:0;;12750:7;12774:21;;;:10;:21;;;;;;;;12770:45;;;-1:-1:-1;12805:8:0;;12798:15;;12770:45;12858:1;12828:27;12837:6;12845:9;12828:8;:27::i;:::-;:31;12825:453;;;12871:17;12891:56;12919:27;12928:6;12936:9;12919:8;:27::i;:::-;12902:11;;12891:23;;:6;;:10;:23::i;:56::-;13003:4;12985:24;;;;:9;:24;;;;;;12871:76;;-1:-1:-1;12985:39:0;;12871:76;12985:28;:39::i;:::-;12976:4;12958:24;;;;:9;:24;;;;;;;:66;;;;13040:42;;-1:-1:-1;;;;;13040:42:0;;;;;;;13072:9;1361:25:1;;1349:2;1334:18;;1215:177;13040:42:0;;;;;;;;13114:1;13096:7;;:20;:61;;;;;13150:7;;13120:27;13129:6;13137:9;13120:8;:27::i;:::-;:37;13096:61;13093:145;;;13159:77;13177:4;5003:42;13199:36;13227:7;;13199:23;13210:11;;13199:6;:10;;:23;;;;:::i;:36::-;13159:9;:77::i;:::-;13255:21;:6;13266:9;13255:10;:21::i;:::-;13248:28;;;;;12825:453;-1:-1:-1;13286:6:0;12659:641;-1:-1:-1;;12659:641:0:o;9397:440::-;9487:16;;;9501:1;9487:16;;;;;;;;9463:21;;9487:16;;;;;;;;;;-1:-1:-1;9487:16:0;9463:40;;9532:4;9514;9519:1;9514:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9514:23:0;;;:7;;;;;;;;;;:23;;;;9558:8;;:15;;;-1:-1:-1;;;9558:15:0;;;;:8;;;;;:13;;:15;;;;;9514:7;;9558:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9548:4;9553:1;9548:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9548:25:0;;;:7;;;;;;;;;:25;9616:8;;9584:55;;9601:4;;9616:8;9627:11;9584:8;:55::i;:::-;9650:8;;:179;;-1:-1:-1;;;9650:179:0;;-1:-1:-1;;;;;9650:8:0;;;;:59;;:179;;9724:11;;9650:8;;9766:4;;9793;;9813:15;;9650:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9452:385;9397:440;:::o;11267:336::-;11380:8;;11348:55;;11365:4;;-1:-1:-1;;;;;11380:8:0;11391:11;11348:8;:55::i;:::-;11414:8;;11557:7;;11414:181;;-1:-1:-1;;;11414:181:0;;11479:4;11414:181;;;11171:34:1;11221:18;;;11214:34;;;11414:8:0;11264:18:1;;;11257:34;;;11307:18;;;11300:34;-1:-1:-1;;;;;11557:7:0;;;11350:19:1;;;11343:44;11579:15:0;11403:19:1;;;11396:35;11414:8:0;;;:24;;11446:9;;11105:19:1;;11414:181:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11267:336;;:::o;8856:216::-;8968:8;;8932:7;;-1:-1:-1;;;;;8968:8:0;;;8955:21;;;;8952:42;;-1:-1:-1;8985:7:0;;8978:14;;8952:42;9017:8;;-1:-1:-1;;;;;9017:8:0;;;9007:18;;;;9004:38;;-1:-1:-1;9034:6:0;;9027:13;;9004:38;-1:-1:-1;9059:5:0;;8856:216;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703: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;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8800:125::-;8865:9;;;8886:10;;;8883:36;;;8899:18;;:::i;8930:168::-;9003:9;;;9034;;9051:15;;;9045:22;;9031:37;9021:71;;9072:18;;:::i;9103:217::-;9143:1;9169;9159:132;;9213:10;9208:3;9204:20;9201:1;9194:31;9248:4;9245:1;9238:15;9276:4;9273:1;9266:15;9159:132;-1:-1:-1;9305:9:1;;9103:217::o;9457:127::-;9518:10;9513:3;9509:20;9506:1;9499:31;9549:4;9546:1;9539:15;9573:4;9570:1;9563:15;9589:251;9659:6;9712:2;9700:9;9691:7;9687:23;9683:32;9680:52;;;9728:1;9725;9718:12;9680:52;9760:9;9754:16;9779:31;9804:5;9779:31;:::i;9845:980::-;10107:4;10155:3;10144:9;10140:19;10186:6;10175:9;10168:25;10212:2;10250:6;10245:2;10234:9;10230:18;10223:34;10293:3;10288:2;10277:9;10273:18;10266:31;10317:6;10352;10346:13;10383:6;10375;10368:22;10421:3;10410:9;10406:19;10399:26;;10460:2;10452:6;10448:15;10434:29;;10481:1;10491:195;10505:6;10502:1;10499:13;10491:195;;;10570:13;;-1:-1:-1;;;;;10566:39:1;10554:52;;10661:15;;;;10626:12;;;;10602:1;10520:9;10491:195;;;-1:-1:-1;;;;;;;10742:32:1;;;;10737:2;10722:18;;10715:60;-1:-1:-1;;;10806:3:1;10791:19;10784:35;10703:3;9845:980;-1:-1:-1;;;9845:980:1:o;11442:306::-;11530:6;11538;11546;11599:2;11587:9;11578:7;11574:23;11570:32;11567:52;;;11615:1;11612;11605:12;11567:52;11644:9;11638:16;11628:26;;11694:2;11683:9;11679:18;11673:25;11663:35;;11738:2;11727:9;11723:18;11717:25;11707:35;;11442:306;;;;;:::o

Swarm Source

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