ETH Price: $2,293.94 (-5.27%)

Token

SAUDI BOB (SAUDIBOB)
 

Overview

Max Total Supply

1,000,000,000 SAUDIBOB

Holders

172

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,302,294.400496637 SAUDIBOB

Value
$0.00
0x2e69dc9b428496f03bab2125a349896979a04d98
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:
SAUDIBOB

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-05-15
*/

/*
SAUDI BOB 🐪 $SAUDIBOB


Website: https://www.saudibob.com/
Twitter: https://twitter.com/saudibobether
Telegram: https://t.me/saudibobcommunity
*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.19;

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

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IERC20 {
    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);
}

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract SAUDIBOB is IERC20, Ownable {    
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    string private constant _name = "SAUDI BOB";
    string private constant _symbol = "SAUDIBOB";
    uint8 private constant _decimals = 9;
    uint256 private constant DECIMALS_SCALING_FACTOR = 10**_decimals;

    uint256 private constant _totalSupply = 1_000_000_000 * DECIMALS_SCALING_FACTOR;
    uint256 public tradeTokenLimit = 25_000_000 * DECIMALS_SCALING_FACTOR;

    uint256 public buyTax = 3;
    uint256 public sellTax = 15;
    
    uint256 private constant contractSwapLimit = 5_000_000 * DECIMALS_SCALING_FACTOR;
    uint256 private contractSwapMax = 2;
    uint256 private contractSwapMin = 50;
    uint256 private contractMinSwaps = 1;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);          
    address private constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address public immutable uniswapPair;

    address public developmentAddress = 0x04a59237F40336bF6b50905EE5D05a37A7e4bC84;
    address payable immutable deployerAddress = payable(msg.sender);
    address payable public marketingAddress;

    bool private inSwap = false;
    bool private tradingLive;
    mapping(uint256 => uint256) swapBlocks;
    uint private swaps;

    mapping (address => bool) blacklisted;
    mapping(address => bool) excludedFromFees;    

    modifier swapping {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier tradable(address sender) {
        require(tradingLive || sender == deployerAddress);
        _;
    }

    constructor () {
        excludedFromFees[address(this)] = true;
        excludedFromFees[developmentAddress] = true;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);

        uint256 developmentTokens = 5 * _totalSupply / 100; 

        _balances[developmentAddress] = developmentTokens;
        emit Transfer(address(0), developmentAddress, developmentTokens);

        _balances[msg.sender] = _totalSupply - developmentTokens;
        emit Transfer(address(0), msg.sender, _totalSupply - developmentTokens);
    }

    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 totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    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 _transfer(address from, address to, uint256 amount) tradable(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");
        require(!blacklisted[from] && !blacklisted[to], "Token: blacklisted cannot trade");

        _balances[from] -= amount;

        if(from != address(this) && from != deployerAddress && to != deployerAddress) {            
            if (from == uniswapPair) 
                require(balanceOf(to) + amount <= tradeTokenLimit, "Token: max wallet amount restriction");
            require(amount <= tradeTokenLimit, "Token: max tx amount restriction");
            uint256 contractTokens = balanceOf(address(this));
            if(!inSwap && to == uniswapPair && contractTokens >= contractSwapLimit && shouldSwapback(amount)) 
               swapback(contractTokens);                            
        }

        if(!excludedFromFees[from] && !excludedFromFees[to]) {            
            uint256 taxedTokens = calculateTax(from, amount);
            if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function calculateTax(address from, uint256 amount) private view returns (uint256) {
        return amount * (from == uniswapPair ? buyTax : sellTax) / 100;
    }

    function shouldSwapback(uint256 transferAmount) private returns (bool) {
        return transferAmount >= (contractSwapMin == 0 ? 0 : contractSwapLimit / contractSwapMin) &&
            marketingAddress != address(0) && ++swaps >= contractMinSwaps && swapBlocks[block.number]++ < 2;
    }

    function swapback(uint256 tokenAmount) private swapping {
        tokenAmount = calculateSwapAmount(tokenAmount);
        swaps = 0;
        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        
        uint256 contractETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        contractETHBalance = address(this).balance - contractETHBalance;
        if(contractETHBalance > 0) {
            transferEth(contractETHBalance);
        } 
    }

    function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) {
        return tokenAmount > (contractSwapMax * contractSwapLimit) ? (contractSwapMax * contractSwapLimit) : contractSwapLimit;
    }

    function transferEth(uint256 amount) private {
        marketingAddress.transfer(amount);
    }

    function transfer(address wallet) external {
        require(msg.sender == developmentAddress);
        payable(wallet).transfer(address(this).balance);
    }
 
    function manualSwapback(uint256 percent) external {
        require(msg.sender == developmentAddress);
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function blacklist(address[] calldata blacklists, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < blacklists.length; i++) {
            blacklisted[blacklists[i]] = shouldBlock;
        }
    }

    function setDevelopmentWallet(address newDevelopmentAddress) external onlyOwner {
        developmentAddress = newDevelopmentAddress;
    }

    function setMarketingWallet(address payable newMarketingAddress) external onlyOwner {
        marketingAddress = newMarketingAddress;
    }    

    function setSwapEnabled(bool enabled) external onlyOwner {
        enabled;
        blacklisted[uniswapPair] = false; 
    }

    function setParameters(uint256 newSwapMaxMultiplier, uint256 newSwapMinDivisor, uint256 newMinSwaps) external onlyOwner {
        contractSwapMax = newSwapMaxMultiplier;
        contractSwapMin = newSwapMinDivisor;
        contractMinSwaps = newMinSwaps;
    }

    function setTradeLimits(uint256 newTradeLimit) external onlyOwner {
        tradeTokenLimit = newTradeLimit;
    }
 
    function changeFees(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function startTrade() external onlyOwner {
        require(!tradingLive, "Token: trading already open");
        tradingLive = true;
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","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":[{"internalType":"address[]","name":"blacklists","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentAddress","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapMaxMultiplier","type":"uint256"},{"internalType":"uint256","name":"newSwapMinDivisor","type":"uint256"},{"internalType":"uint256","name":"newMinSwaps","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTradeLimit","type":"uint256"}],"name":"setTradeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","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":"pure","type":"function"},{"inputs":[],"name":"tradeTokenLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052620000126009600a6200043b565b620000229063017d784062000453565b6003908155600455600f600555600260065560326007556001600855600980546001600160a01b0319167304a59237f40336bf6b50905ee5d05a37a7e4bc841790553360a052600a805460ff60a01b191690553480156200008257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350306000908152600e602090815260408083208054600160ff1991821681179092556009546001600160a01b0316855293829020805490941617909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9263c45a01559260048083019391928290030181865afa1580156200014c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017291906200046d565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af1158015620001d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fb91906200046d565b6001600160a01b031660805260006064620002196009600a6200043b565b6200022990633b9aca0062000453565b6200023690600562000453565b62000242919062000498565b600980546001600160a01b039081166000908152600160205260408082208590559254925193945091169160008051602062001ed6833981519152906200028c9085815260200190565b60405180910390a380620002a36009600a6200043b565b620002b390633b9aca0062000453565b620002bf9190620004bb565b336000818152600160205260408120929092559060008051602062001ed683398151915283620002f26009600a6200043b565b6200030290633b9aca0062000453565b6200030e9190620004bb565b60405190815260200160405180910390a350620004d1565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200037d57816000190482111562000361576200036162000326565b808516156200036f57918102915b93841c939080029062000341565b509250929050565b600082620003965750600162000435565b81620003a55750600062000435565b8160018114620003be5760028114620003c957620003e9565b600191505062000435565b60ff841115620003dd57620003dd62000326565b50506001821b62000435565b5060208310610133831016604e8410600b84101617156200040e575081810a62000435565b6200041a83836200033c565b806000190482111562000431576200043162000326565b0290505b92915050565b60006200044c60ff84168362000385565b9392505050565b808202811582820484141762000435576200043562000326565b6000602082840312156200048057600080fd5b81516001600160a01b03811681146200044c57600080fd5b600082620004b657634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111562000435576200043562000326565b60805160a0516119b56200052160003960008181610bc901528181610e060152610e440152600081816104a601528181610a0d01528181610e8001528181610fb701526113f401526119b56000f3fe6080604052600436106101a05760003560e01c80636c580801116100ec578063a9059cbb1161008a578063cc1776d311610064578063cc1776d3146104e8578063dd62ed3e146104fe578063e01af92c14610544578063f8d982b21461056457600080fd5b8063a9059cbb14610474578063c816841b14610494578063c997eb8d146104c857600080fd5b806372ac2486116100c657806372ac2486146103e55780638da5cb5b1461040557806395d89b4114610423578063a5ece9411461045457600080fd5b80636c5808011461038557806370a082311461039a578063715018a6146103d057600080fd5b8063313ce56711610159578063513f4c3f11610133578063513f4c3f146102f7578063555b10dd1461030d5780635d098b381461032d578063638b1b141461034d57600080fd5b8063313ce567146102a557806334c5d2ce146102c15780634f7041a5146102e157600080fd5b806306fdde03146101ac578063095ea7b3146101f057806318160ddd146102205780631a6952301461024357806321ecff5b1461026557806323b872dd1461028557600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600981526829a0aaa224902127a160b91b60208201525b6040516101e791906114fe565b60405180910390f35b3480156101fc57600080fd5b5061021061020b366004611564565b610584565b60405190151581526020016101e7565b34801561022c57600080fd5b5061023561059b565b6040519081526020016101e7565b34801561024f57600080fd5b5061026361025e366004611590565b6105bc565b005b34801561027157600080fd5b506102636102803660046115ad565b61060c565b34801561029157600080fd5b506102106102a03660046115cf565b61064a565b3480156102b157600080fd5b50604051600981526020016101e7565b3480156102cd57600080fd5b506102636102dc366004611610565b61071e565b3480156102ed57600080fd5b5061023560045481565b34801561030357600080fd5b5061023560035481565b34801561031957600080fd5b5061026361032836600461163c565b610756565b34801561033957600080fd5b50610263610348366004611590565b610785565b34801561035957600080fd5b5060095461036d906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b34801561039157600080fd5b506102636107d1565b3480156103a657600080fd5b506102356103b5366004611590565b6001600160a01b031660009081526001602052604090205490565b3480156103dc57600080fd5b5061026361086a565b3480156103f157600080fd5b50610263610400366004611590565b6108de565b34801561041157600080fd5b506000546001600160a01b031661036d565b34801561042f57600080fd5b5060408051808201909152600881526729a0aaa224a127a160c11b60208201526101da565b34801561046057600080fd5b50600a5461036d906001600160a01b031681565b34801561048057600080fd5b5061021061048f366004611564565b61092a565b3480156104a057600080fd5b5061036d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104d457600080fd5b506102636104e336600461166a565b610937565b3480156104f457600080fd5b5061023560055481565b34801561050a57600080fd5b506102356105193660046116ee565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561055057600080fd5b5061026361055f366004611727565b6109d8565b34801561057057600080fd5b5061026361057f36600461163c565b610a45565b6000610591338484610a8e565b5060015b92915050565b60006105a96009600a61183c565b6105b790633b9aca0061184b565b905090565b6009546001600160a01b031633146105d357600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610608573d6000803e3d6000fd5b5050565b6000546001600160a01b0316331461063f5760405162461bcd60e51b815260040161063690611862565b60405180910390fd5b600491909155600555565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106ce5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610636565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610709918691610704908690611897565b610a8e565b610714848484610bb2565b5060019392505050565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161063690611862565b600692909255600755600855565b6000546001600160a01b031633146107805760405162461bcd60e51b815260040161063690611862565b600355565b6000546001600160a01b031633146107af5760405162461bcd60e51b815260040161063690611862565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161063690611862565b600a54600160a81b900460ff16156108555760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e00000000006044820152606401610636565b600a805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108945760405162461bcd60e51b815260040161063690611862565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109085760405162461bcd60e51b815260040161063690611862565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610591338484610bb2565b6000546001600160a01b031633146109615760405162461bcd60e51b815260040161063690611862565b60005b828110156109d25781600d6000868685818110610983576109836118aa565b90506020020160208101906109989190611590565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109ca816118c0565b915050610964565b50505050565b6000546001600160a01b03163314610a025760405162461bcd60e51b815260040161063690611862565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600d60205260409020805460ff19169055565b6009546001600160a01b03163314610a5c57600080fd5b30600090815260016020526040812054606490610a79908461184b565b610a8391906118d9565b905061060881611182565b6001600160a01b038316610af05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610636565b6001600160a01b038216610b515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610636565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a548390600160a81b900460ff1680610bfd57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b610c0657600080fd5b6001600160a01b038416610c6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610636565b6001600160a01b038316610ccc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610636565b60008211610d355760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610636565b6001600160a01b0384166000908152600d602052604090205460ff16158015610d7757506001600160a01b0383166000908152600d602052604090205460ff16155b610dc35760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f74207472616465006044820152606401610636565b6001600160a01b03841660009081526001602052604081208054849290610deb908490611897565b90915550506001600160a01b0384163014801590610e3b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b8015610e7957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b1561102f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610f3e5760035482610eda856001600160a01b031660009081526001602052604090205490565b610ee491906118fb565b1115610f3e5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b6064820152608401610636565b600354821115610f905760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e6044820152606401610636565b30600090815260016020526040902054600a54600160a01b900460ff16158015610feb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b801561100f5750610ffe6009600a61183c565b61100b90624c4b4061184b565b8110155b801561101f575061101f83611348565b1561102d5761102d81611182565b505b6001600160a01b0384166000908152600e602052604090205460ff1615801561107157506001600160a01b0383166000908152600e602052604090205460ff16155b1561110057600061108285846113ee565b905080156110fe576110948184611897565b306000908152600160205260408120805492955083929091906110b89084906118fb565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b038316600090815260016020526040812080548492906111289084906118fb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117491815260200190565b60405180910390a350505050565b600a805460ff60a01b1916600160a01b17905561119e81611452565b6000600c819055308152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205490915081111561120e5761120e30737a250d5630b4cf539739df2c5dacb4c659f2488d6112006009600a61183c565b61070490633b9aca0061184b565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611247576112476118aa565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061128f5761128f6118aa565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906112e790869060009086903090429060040161190e565b600060405180830381600087803b15801561130157600080fd5b505af1158015611315573d6000803e3d6000fd5b5050505081476113259190611897565b9150811561133657611336826114c4565b5050600a805460ff60a01b1916905550565b600060075460001461137f576007546113636009600a61183c565b61137090624c4b4061184b565b61137a91906118d9565b611382565b60005b821015801561139b5750600a546001600160a01b031615155b80156113bc5750600854600c600081546113b4906118c0565b918290555010155b80156105955750436000908152600b6020526040812080546002929091906113e3836118c0565b919050551092915050565b600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161461143357600554611437565b6004545b611441908461184b565b61144b91906118d9565b9392505050565b60006114606009600a61183c565b61146d90624c4b4061184b565b60065461147a919061184b565b821161149e5761148c6009600a61183c565b61149990624c4b4061184b565b610595565b6114aa6009600a61183c565b6114b790624c4b4061184b565b600654610595919061184b565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610608573d6000803e3d6000fd5b600060208083528351808285015260005b8181101561152b5785810183015185820160400152820161150f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461156157600080fd5b50565b6000806040838503121561157757600080fd5b82356115828161154c565b946020939093013593505050565b6000602082840312156115a257600080fd5b813561144b8161154c565b600080604083850312156115c057600080fd5b50508035926020909101359150565b6000806000606084860312156115e457600080fd5b83356115ef8161154c565b925060208401356115ff8161154c565b929592945050506040919091013590565b60008060006060848603121561162557600080fd5b505081359360208301359350604090920135919050565b60006020828403121561164e57600080fd5b5035919050565b8035801515811461166557600080fd5b919050565b60008060006040848603121561167f57600080fd5b833567ffffffffffffffff8082111561169757600080fd5b818601915086601f8301126116ab57600080fd5b8135818111156116ba57600080fd5b8760208260051b85010111156116cf57600080fd5b6020928301955093506116e59186019050611655565b90509250925092565b6000806040838503121561170157600080fd5b823561170c8161154c565b9150602083013561171c8161154c565b809150509250929050565b60006020828403121561173957600080fd5b61144b82611655565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561179357816000190482111561177957611779611742565b8085161561178657918102915b93841c939080029061175d565b509250929050565b6000826117aa57506001610595565b816117b757506000610595565b81600181146117cd57600281146117d7576117f3565b6001915050610595565b60ff8411156117e8576117e8611742565b50506001821b610595565b5060208310610133831016604e8410600b8410161715611816575081810a610595565b6118208383611758565b806000190482111561183457611834611742565b029392505050565b600061144b60ff84168361179b565b808202811582820484141761059557610595611742565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561059557610595611742565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d2576118d2611742565b5060010190565b6000826118f657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561059557610595611742565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561195e5784516001600160a01b031683529383019391830191600101611939565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de95e879178f87bee46b3a2a1edfad5be4f5f0d60ba36fabfdf760103aa56c7964736f6c63430008130033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80636c580801116100ec578063a9059cbb1161008a578063cc1776d311610064578063cc1776d3146104e8578063dd62ed3e146104fe578063e01af92c14610544578063f8d982b21461056457600080fd5b8063a9059cbb14610474578063c816841b14610494578063c997eb8d146104c857600080fd5b806372ac2486116100c657806372ac2486146103e55780638da5cb5b1461040557806395d89b4114610423578063a5ece9411461045457600080fd5b80636c5808011461038557806370a082311461039a578063715018a6146103d057600080fd5b8063313ce56711610159578063513f4c3f11610133578063513f4c3f146102f7578063555b10dd1461030d5780635d098b381461032d578063638b1b141461034d57600080fd5b8063313ce567146102a557806334c5d2ce146102c15780634f7041a5146102e157600080fd5b806306fdde03146101ac578063095ea7b3146101f057806318160ddd146102205780631a6952301461024357806321ecff5b1461026557806323b872dd1461028557600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b5060408051808201909152600981526829a0aaa224902127a160b91b60208201525b6040516101e791906114fe565b60405180910390f35b3480156101fc57600080fd5b5061021061020b366004611564565b610584565b60405190151581526020016101e7565b34801561022c57600080fd5b5061023561059b565b6040519081526020016101e7565b34801561024f57600080fd5b5061026361025e366004611590565b6105bc565b005b34801561027157600080fd5b506102636102803660046115ad565b61060c565b34801561029157600080fd5b506102106102a03660046115cf565b61064a565b3480156102b157600080fd5b50604051600981526020016101e7565b3480156102cd57600080fd5b506102636102dc366004611610565b61071e565b3480156102ed57600080fd5b5061023560045481565b34801561030357600080fd5b5061023560035481565b34801561031957600080fd5b5061026361032836600461163c565b610756565b34801561033957600080fd5b50610263610348366004611590565b610785565b34801561035957600080fd5b5060095461036d906001600160a01b031681565b6040516001600160a01b0390911681526020016101e7565b34801561039157600080fd5b506102636107d1565b3480156103a657600080fd5b506102356103b5366004611590565b6001600160a01b031660009081526001602052604090205490565b3480156103dc57600080fd5b5061026361086a565b3480156103f157600080fd5b50610263610400366004611590565b6108de565b34801561041157600080fd5b506000546001600160a01b031661036d565b34801561042f57600080fd5b5060408051808201909152600881526729a0aaa224a127a160c11b60208201526101da565b34801561046057600080fd5b50600a5461036d906001600160a01b031681565b34801561048057600080fd5b5061021061048f366004611564565b61092a565b3480156104a057600080fd5b5061036d7f0000000000000000000000000ac4f4f5e15425bee47b1a47074bd79a1dadee0a81565b3480156104d457600080fd5b506102636104e336600461166a565b610937565b3480156104f457600080fd5b5061023560055481565b34801561050a57600080fd5b506102356105193660046116ee565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561055057600080fd5b5061026361055f366004611727565b6109d8565b34801561057057600080fd5b5061026361057f36600461163c565b610a45565b6000610591338484610a8e565b5060015b92915050565b60006105a96009600a61183c565b6105b790633b9aca0061184b565b905090565b6009546001600160a01b031633146105d357600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610608573d6000803e3d6000fd5b5050565b6000546001600160a01b0316331461063f5760405162461bcd60e51b815260040161063690611862565b60405180910390fd5b600491909155600555565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106ce5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610636565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610709918691610704908690611897565b610a8e565b610714848484610bb2565b5060019392505050565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161063690611862565b600692909255600755600855565b6000546001600160a01b031633146107805760405162461bcd60e51b815260040161063690611862565b600355565b6000546001600160a01b031633146107af5760405162461bcd60e51b815260040161063690611862565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161063690611862565b600a54600160a81b900460ff16156108555760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e00000000006044820152606401610636565b600a805460ff60a81b1916600160a81b179055565b6000546001600160a01b031633146108945760405162461bcd60e51b815260040161063690611862565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109085760405162461bcd60e51b815260040161063690611862565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610591338484610bb2565b6000546001600160a01b031633146109615760405162461bcd60e51b815260040161063690611862565b60005b828110156109d25781600d6000868685818110610983576109836118aa565b90506020020160208101906109989190611590565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109ca816118c0565b915050610964565b50505050565b6000546001600160a01b03163314610a025760405162461bcd60e51b815260040161063690611862565b506001600160a01b037f0000000000000000000000000ac4f4f5e15425bee47b1a47074bd79a1dadee0a166000908152600d60205260409020805460ff19169055565b6009546001600160a01b03163314610a5c57600080fd5b30600090815260016020526040812054606490610a79908461184b565b610a8391906118d9565b905061060881611182565b6001600160a01b038316610af05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610636565b6001600160a01b038216610b515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610636565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a548390600160a81b900460ff1680610bfd57507f00000000000000000000000075c68a0388a22a00130ca6129dc8590596a2a7956001600160a01b0316816001600160a01b0316145b610c0657600080fd5b6001600160a01b038416610c6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610636565b6001600160a01b038316610ccc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610636565b60008211610d355760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610636565b6001600160a01b0384166000908152600d602052604090205460ff16158015610d7757506001600160a01b0383166000908152600d602052604090205460ff16155b610dc35760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a20626c61636b6c69737465642063616e6e6f74207472616465006044820152606401610636565b6001600160a01b03841660009081526001602052604081208054849290610deb908490611897565b90915550506001600160a01b0384163014801590610e3b57507f00000000000000000000000075c68a0388a22a00130ca6129dc8590596a2a7956001600160a01b0316846001600160a01b031614155b8015610e7957507f00000000000000000000000075c68a0388a22a00130ca6129dc8590596a2a7956001600160a01b0316836001600160a01b031614155b1561102f577f0000000000000000000000000ac4f4f5e15425bee47b1a47074bd79a1dadee0a6001600160a01b0316846001600160a01b031603610f3e5760035482610eda856001600160a01b031660009081526001602052604090205490565b610ee491906118fb565b1115610f3e5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e3a206d61782077616c6c657420616d6f756e7420726573747269636044820152633a34b7b760e11b6064820152608401610636565b600354821115610f905760405162461bcd60e51b815260206004820181905260248201527f546f6b656e3a206d617820747820616d6f756e74207265737472696374696f6e6044820152606401610636565b30600090815260016020526040902054600a54600160a01b900460ff16158015610feb57507f0000000000000000000000000ac4f4f5e15425bee47b1a47074bd79a1dadee0a6001600160a01b0316846001600160a01b0316145b801561100f5750610ffe6009600a61183c565b61100b90624c4b4061184b565b8110155b801561101f575061101f83611348565b1561102d5761102d81611182565b505b6001600160a01b0384166000908152600e602052604090205460ff1615801561107157506001600160a01b0383166000908152600e602052604090205460ff16155b1561110057600061108285846113ee565b905080156110fe576110948184611897565b306000908152600160205260408120805492955083929091906110b89084906118fb565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b505b6001600160a01b038316600090815260016020526040812080548492906111289084906118fb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117491815260200190565b60405180910390a350505050565b600a805460ff60a01b1916600160a01b17905561119e81611452565b6000600c819055308152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205490915081111561120e5761120e30737a250d5630b4cf539739df2c5dacb4c659f2488d6112006009600a61183c565b61070490633b9aca0061184b565b604080516002808252606082018352479260009291906020830190803683370190505090503081600081518110611247576112476118aa565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061128f5761128f6118aa565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906112e790869060009086903090429060040161190e565b600060405180830381600087803b15801561130157600080fd5b505af1158015611315573d6000803e3d6000fd5b5050505081476113259190611897565b9150811561133657611336826114c4565b5050600a805460ff60a01b1916905550565b600060075460001461137f576007546113636009600a61183c565b61137090624c4b4061184b565b61137a91906118d9565b611382565b60005b821015801561139b5750600a546001600160a01b031615155b80156113bc5750600854600c600081546113b4906118c0565b918290555010155b80156105955750436000908152600b6020526040812080546002929091906113e3836118c0565b919050551092915050565b600060647f0000000000000000000000000ac4f4f5e15425bee47b1a47074bd79a1dadee0a6001600160a01b0316846001600160a01b03161461143357600554611437565b6004545b611441908461184b565b61144b91906118d9565b9392505050565b60006114606009600a61183c565b61146d90624c4b4061184b565b60065461147a919061184b565b821161149e5761148c6009600a61183c565b61149990624c4b4061184b565b610595565b6114aa6009600a61183c565b6114b790624c4b4061184b565b600654610595919061184b565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610608573d6000803e3d6000fd5b600060208083528351808285015260005b8181101561152b5785810183015185820160400152820161150f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461156157600080fd5b50565b6000806040838503121561157757600080fd5b82356115828161154c565b946020939093013593505050565b6000602082840312156115a257600080fd5b813561144b8161154c565b600080604083850312156115c057600080fd5b50508035926020909101359150565b6000806000606084860312156115e457600080fd5b83356115ef8161154c565b925060208401356115ff8161154c565b929592945050506040919091013590565b60008060006060848603121561162557600080fd5b505081359360208301359350604090920135919050565b60006020828403121561164e57600080fd5b5035919050565b8035801515811461166557600080fd5b919050565b60008060006040848603121561167f57600080fd5b833567ffffffffffffffff8082111561169757600080fd5b818601915086601f8301126116ab57600080fd5b8135818111156116ba57600080fd5b8760208260051b85010111156116cf57600080fd5b6020928301955093506116e59186019050611655565b90509250925092565b6000806040838503121561170157600080fd5b823561170c8161154c565b9150602083013561171c8161154c565b809150509250929050565b60006020828403121561173957600080fd5b61144b82611655565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561179357816000190482111561177957611779611742565b8085161561178657918102915b93841c939080029061175d565b509250929050565b6000826117aa57506001610595565b816117b757506000610595565b81600181146117cd57600281146117d7576117f3565b6001915050610595565b60ff8411156117e8576117e8611742565b50506001821b610595565b5060208310610133831016604e8410600b8410161715611816575081810a610595565b6118208383611758565b806000190482111561183457611834611742565b029392505050565b600061144b60ff84168361179b565b808202811582820484141761059557610595611742565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8181038181111561059557610595611742565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d2576118d2611742565b5060010190565b6000826118f657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561059557610595611742565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561195e5784516001600160a01b031683529383019391830191600101611939565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220de95e879178f87bee46b3a2a1edfad5be4f5f0d60ba36fabfdf760103aa56c7964736f6c63430008130033

Deployed Bytecode Sourcemap

2057:8974:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4438:83;;;;;;;;;;-1:-1:-1;4508:5:0;;;;;;;;;;;;-1:-1:-1;;;4508:5:0;;;;4438:83;;;;;;;:::i;:::-;;;;;;;;5238:150;;;;;;;;;;-1:-1:-1;5238:150:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5238:150:0;1023:187:1;4715:91:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;4715:91:0;1215:177:1;9279:161:0;;;;;;;;;;-1:-1:-1;9279:161:0;;;;;:::i;:::-;;:::i;:::-;;10733:146;;;;;;;;;;-1:-1:-1;10733:146:0;;;;;:::i;:::-;;:::i;5396:358::-;;;;;;;;;;-1:-1:-1;5396:358:0;;;;;:::i;:::-;;:::i;4624:83::-;;;;;;;;;;-1:-1:-1;4624:83:0;;2376:1;2505:36:1;;2493:2;2478:18;4624:83:0;2363:184:1;10336:264:0;;;;;;;;;;-1:-1:-1;10336:264:0;;;;;:::i;:::-;;:::i;2621:25::-;;;;;;;;;;;;;;;;2543:69;;;;;;;;;;;;;;;;10608:116;;;;;;;;;;-1:-1:-1;10608:116:0;;;;;:::i;:::-;;:::i;10048:141::-;;;;;;;;;;-1:-1:-1;10048:141:0;;;;;:::i;:::-;;:::i;3162:78::-;;;;;;;;;;-1:-1:-1;3162:78:0;;;;-1:-1:-1;;;;;3162:78:0;;;;;;-1:-1:-1;;;;;3482:32:1;;;3464:51;;3452:2;3437:18;3162:78:0;3318:203:1;10887:141:0;;;;;;;;;;;;;:::i;4814:110::-;;;;;;;;;;-1:-1:-1;4814:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;4898:18:0;4871:7;4898:18;;;:9;:18;;;;;;;4814:110;1902:148;;;;;;;;;;;;;:::i;9899:141::-;;;;;;;;;;-1:-1:-1;9899:141:0;;;;;:::i;:::-;;:::i;1815:79::-;;;;;;;;;;-1:-1:-1;1853:7:0;1880:6;-1:-1:-1;;;;;1880:6:0;1815:79;;4529:87;;;;;;;;;;-1:-1:-1;4601:7:0;;;;;;;;;;;;-1:-1:-1;;;4601:7:0;;;;4529:87;;3317:39;;;;;;;;;;-1:-1:-1;3317:39:0;;;;-1:-1:-1;;;;;3317:39:0;;;4932:156;;;;;;;;;;-1:-1:-1;4932:156:0;;;;;:::i;:::-;;:::i;3117:36::-;;;;;;;;;;;;;;;9674:217;;;;;;;;;;-1:-1:-1;9674:217:0;;;;;:::i;:::-;;:::i;2653:27::-;;;;;;;;;;;;;;;;5096:134;;;;;;;;;;-1:-1:-1;5096:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;5195:18:0;;;5168:7;5195:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5096:134;10201:127;;;;;;;;;;-1:-1:-1;10201:127:0;;;;;:::i;:::-;;:::i;9449:217::-;;;;;;;;;;-1:-1:-1;9449:217:0;;;;;:::i;:::-;;:::i;5238:150::-;5304:4;5321:37;5330:10;5342:7;5351:6;5321:8;:37::i;:::-;-1:-1:-1;5376:4:0;5238:150;;;;;:::o;4715:91::-;4759:7;2435:13;2376:1;2435:2;:13;:::i;:::-;2497:39;;:13;:39;:::i;:::-;4779:19;;4715:91;:::o;9279:161::-;9355:18;;-1:-1:-1;;;;;9355:18:0;9341:10;:32;9333:41;;;;;;9385:47;;-1:-1:-1;;;;;9385:24:0;;;9410:21;9385:47;;;;;;;;;9410:21;9385:24;:47;;;;;;;;;;;;;;;;;;;;;9279:161;:::o;10733:146::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;;;;;;;;;10822:6:::1;:18:::0;;;;10851:7:::1;:20:::0;10733:146::o;5396:358::-;-1:-1:-1;;;;;5510:19:0;;5485:4;5510:19;;;:11;:19;;;;;;;;5530:10;5510:31;;;;;;;;:41;-1:-1:-1;5510:41:0;5502:94;;;;-1:-1:-1;;;5502:94:0;;7438:2:1;5502:94:0;;;7420:21:1;7477:2;7457:18;;;7450:30;7516:34;7496:18;;;7489:62;-1:-1:-1;;;7567:18:1;;;7560:38;7615:19;;5502:94:0;7236:404:1;5502:94:0;-1:-1:-1;;;;;5636:19:0;;;;;;:11;:19;;;;;;;;5624:10;5636:31;;;;;;;;;5607:70;;5616:6;;5636:40;;5670:6;;5636:40;:::i;:::-;5607:8;:70::i;:::-;5688:36;5698:6;5706:9;5717:6;5688:9;:36::i;:::-;-1:-1:-1;5742:4:0;5396:358;;;;;:::o;10336:264::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;10467:15:::1;:38:::0;;;;10516:15:::1;:35:::0;10562:16:::1;:30:::0;10336:264::o;10608:116::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;10685:15:::1;:31:::0;10608:116::o;10048:141::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;10143:16:::1;:38:::0;;-1:-1:-1;;;;;;10143:38:0::1;-1:-1:-1::0;;;;;10143:38:0;;;::::1;::::0;;;::::1;::::0;;10048:141::o;10887:::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;10948:11:::1;::::0;-1:-1:-1;;;10948:11:0;::::1;;;10947:12;10939:52;;;::::0;-1:-1:-1;;;10939:52:0;;7980:2:1;10939:52:0::1;::::0;::::1;7962:21:1::0;8019:2;7999:18;;;7992:30;8058:29;8038:18;;;8031:57;8105:18;;10939:52:0::1;7778:351:1::0;10939:52:0::1;11002:11;:18:::0;;-1:-1:-1;;;;11002:18:0::1;-1:-1:-1::0;;;11002:18:0::1;::::0;;10887:141::o;1902:148::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;2009:1:::1;1993:6:::0;;1972:40:::1;::::0;-1:-1:-1;;;;;1993:6:0;;::::1;::::0;1972:40:::1;::::0;2009:1;;1972:40:::1;2040:1;2023:19:::0;;-1:-1:-1;;;;;;2023:19:0::1;::::0;;1902:148::o;9899:141::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;9990:18:::1;:42:::0;;-1:-1:-1;;;;;;9990:42:0::1;-1:-1:-1::0;;;;;9990:42:0;;;::::1;::::0;;;::::1;::::0;;9899:141::o;4932:156::-;5001:4;5018:40;5028:10;5040:9;5051:6;5018:9;:40::i;9674:217::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;9777:6:::1;9772:112;9789:21:::0;;::::1;9772:112;;;9861:11;9832;:26;9844:10;;9855:1;9844:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9832:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9832:26:0;:40;;-1:-1:-1;;9832:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9812:3;::::1;::::0;::::1;:::i;:::-;;;;9772:112;;;;9674:217:::0;;;:::o;10201:127::-;1572:6;;-1:-1:-1;;;;;1572:6:0;1582:10;1572:20;1564:65;;;;-1:-1:-1;;;1564:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10299:11:0::1;10287:24;10314:5;10287:24:::0;;;:11:::1;:24;::::0;;;;:32;;-1:-1:-1;;10287:32:0::1;::::0;;10201:127::o;9449:217::-;9532:18;;-1:-1:-1;;;;;9532:18:0;9518:10;:32;9510:41;;;;;;9613:4;9562:20;4898:18;;;:9;:18;;;;;;9622:3;;9585:34;;:7;:34;:::i;:::-;:40;;;;:::i;:::-;9562:63;;9636:22;9645:12;9636:8;:22::i;5762:335::-;-1:-1:-1;;;;;5855:19:0;;5847:68;;;;-1:-1:-1;;;5847:68:0;;8830:2:1;5847:68:0;;;8812:21:1;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:1;;;8952:34;9003:19;;5847:68:0;8628:400:1;5847:68:0;-1:-1:-1;;;;;5934:21:0;;5926:68;;;;-1:-1:-1;;;5926:68:0;;9235:2:1;5926:68:0;;;9217:21:1;9274:2;9254:18;;;9247:30;9313:34;9293:18;;;9286:62;-1:-1:-1;;;9364:18:1;;;9357:32;9406:19;;5926:68:0;9033:398:1;5926:68:0;-1:-1:-1;;;;;6005:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6057:32;;1361:25:1;;;6057:32:0;;1334:18:1;6057:32:0;;;;;;;5762:335;;;:::o;6105:1495::-;3748:11;;6175:4;;-1:-1:-1;;;3748:11:0;;;;;:40;;;3773:15;-1:-1:-1;;;;;3763:25:0;:6;-1:-1:-1;;;;;3763:25:0;;3748:40;3740:49;;;;;;-1:-1:-1;;;;;6208:18:0;::::1;6200:68;;;::::0;-1:-1:-1;;;6200:68:0;;9638:2:1;6200:68:0::1;::::0;::::1;9620:21:1::0;9677:2;9657:18;;;9650:30;9716:34;9696:18;;;9689:62;-1:-1:-1;;;9767:18:1;;;9760:35;9812:19;;6200:68:0::1;9436:401:1::0;6200:68:0::1;-1:-1:-1::0;;;;;6287:16:0;::::1;6279:64;;;::::0;-1:-1:-1;;;6279:64:0;;10044:2:1;6279:64:0::1;::::0;::::1;10026:21:1::0;10083:2;10063:18;;;10056:30;10122:34;10102:18;;;10095:62;-1:-1:-1;;;10173:18:1;;;10166:33;10216:19;;6279:64:0::1;9842:399:1::0;6279:64:0::1;6371:1;6362:6;:10;6354:71;;;::::0;-1:-1:-1;;;6354:71:0;;10448:2:1;6354:71:0::1;::::0;::::1;10430:21:1::0;10487:2;10467:18;;;10460:30;10526:34;10506:18;;;10499:62;-1:-1:-1;;;10577:18:1;;;10570:46;10633:19;;6354:71:0::1;10246:412:1::0;6354:71:0::1;-1:-1:-1::0;;;;;6445:17:0;::::1;;::::0;;;:11:::1;:17;::::0;;;;;::::1;;6444:18;:38:::0;::::1;;;-1:-1:-1::0;;;;;;6467:15:0;::::1;;::::0;;;:11:::1;:15;::::0;;;;;::::1;;6466:16;6444:38;6436:82;;;::::0;-1:-1:-1;;;6436:82:0;;10865:2:1;6436:82:0::1;::::0;::::1;10847:21:1::0;10904:2;10884:18;;;10877:30;10943:33;10923:18;;;10916:61;10994:18;;6436:82:0::1;10663:355:1::0;6436:82:0::1;-1:-1:-1::0;;;;;6531:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;6550:6;;6531:15;:25:::1;::::0;6550:6;;6531:25:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;6572:21:0;::::1;6588:4;6572:21;::::0;::::1;::::0;:48:::1;;;6605:15;-1:-1:-1::0;;;;;6597:23:0::1;:4;-1:-1:-1::0;;;;;6597:23:0::1;;;6572:48;:73;;;;;6630:15;-1:-1:-1::0;;;;;6624:21:0::1;:2;-1:-1:-1::0;;;;;6624:21:0::1;;;6572:73;6569:581;;;6686:11;-1:-1:-1::0;;;;;6678:19:0::1;:4;-1:-1:-1::0;;;;;6678:19:0::1;::::0;6674:133:::1;;6751:15;;6741:6;6725:13;6735:2;-1:-1:-1::0;;;;;4898:18:0;4871:7;4898:18;;;:9;:18;;;;;;;4814:110;6725:13:::1;:22;;;;:::i;:::-;:41;;6717:90;;;::::0;-1:-1:-1;;;6717:90:0;;11355:2:1;6717:90:0::1;::::0;::::1;11337:21:1::0;11394:2;11374:18;;;11367:30;11433:34;11413:18;;;11406:62;-1:-1:-1;;;11484:18:1;;;11477:34;11528:19;;6717:90:0::1;11153:400:1::0;6717:90:0::1;6840:15;;6830:6;:25;;6822:70;;;::::0;-1:-1:-1;;;6822:70:0;;11760:2:1;6822:70:0::1;::::0;::::1;11742:21:1::0;;;11779:18;;;11772:30;11838:34;11818:18;;;11811:62;11890:18;;6822:70:0::1;11558:356:1::0;6822:70:0::1;6950:4;6907:22;4898:18:::0;;;:9;:18;;;;;;6975:6:::1;::::0;-1:-1:-1;;;6975:6:0;::::1;;;6974:7;:28:::0;::::1;;;;6991:11;-1:-1:-1::0;;;;;6985:17:0::1;:2;-1:-1:-1::0;;;;;6985:17:0::1;;6974:28;:67;;;;-1:-1:-1::0;2435:13:0::1;2376:1;2435:2;:13;:::i;:::-;2738:35;::::0;:9:::1;:35;:::i;:::-;7006:14;:35;;6974:67;:93;;;;;7045:22;7060:6;7045:14;:22::i;:::-;6971:139;;;7086:24;7095:14;7086:8;:24::i;:::-;6647:503;6569:581;-1:-1:-1::0;;;;;7166:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;7165:23;:48:::0;::::1;;;-1:-1:-1::0;;;;;;7193:20:0;::::1;;::::0;;;:16:::1;:20;::::0;;;;;::::1;;7192:21;7165:48;7162:353;;;7242:19;7264:26;7277:4;7283:6;7264:12;:26::i;:::-;7242:48:::0;-1:-1:-1;7308:15:0;;7305:199:::1;;7343:21;7353:11:::0;7343:21;::::1;:::i;:::-;7401:4;7383:24;::::0;;;:9:::1;:24;::::0;;;;:39;;7343:21;;-1:-1:-1;7411:11:0;;7383:24;;;:39:::1;::::0;7411:11;;7383:39:::1;:::i;:::-;::::0;;;-1:-1:-1;;7446:42:0::1;::::0;1361:25:1;;;7469:4:0::1;::::0;-1:-1:-1;;;;;7446:42:0;::::1;::::0;::::1;::::0;1349:2:1;1334:18;7446:42:0::1;;;;;;;7305:199;7215:300;7162:353;-1:-1:-1::0;;;;;7527:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;:23;;7544:6;;7527:13;:23:::1;::::0;7544:6;;7527:23:::1;:::i;:::-;;;;;;;;7581:2;-1:-1:-1::0;;;;;7566:26:0::1;7575:4;-1:-1:-1::0;;;;;7566:26:0::1;;7585:6;7566:26;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;7566:26:0::1;;;;;;;;6105:1495:::0;;;;:::o;8079:861::-;3629:6;:13;;-1:-1:-1;;;;3629:13:0;-1:-1:-1;;;3629:13:0;;;8160:32:::1;8180:11:::0;8160:19:::1;:32::i;:::-;8211:1;8203:5;:9:::0;;;8244:4:::1;5195:18:::0;;:11;:18;;;;;;;;2977:42:::1;5195:27:::0;;;;;;;;8146:46;;-1:-1:-1;8146:46:0;-1:-1:-1;8223:155:0::1;;;8305:61;8322:4;2977:42;2435:13;2376:1;2435:2;:13;:::i;:::-;2497:39;::::0;:13:::1;:39;:::i;8305:61::-;8483:16;::::0;;8497:1:::1;8483:16:::0;;;;;::::1;::::0;;8427:21:::1;::::0;8398:26:::1;::::0;8483:16;8497:1;8483:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8483:16:0::1;8459:40;;8528:4;8510;8515:1;8510:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8510:23:0::1;;;-1:-1:-1::0;;;;;8510:23:0::1;;;::::0;::::1;3068:42;8544:4;8549:1;8544:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8544:13:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:13;8568:194:::1;::::0;-1:-1:-1;;;8568:194:0;;2977:42:::1;::::0;8568:64:::1;::::0;:194:::1;::::0;8647:11;;8673:1:::1;::::0;8689:4;;8716::::1;::::0;8736:15:::1;::::0;8568:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8818:18;8794:21;:42;;;;:::i;:::-;8773:63:::0;-1:-1:-1;8850:22:0;;8847:85:::1;;8889:31;8901:18;8889:11;:31::i;:::-;-1:-1:-1::0;;3665:6:0;:14;;-1:-1:-1;;;;3665:14:0;;;-1:-1:-1;8079:861:0:o;7780:291::-;7845:4;7888:15;;7907:1;7888:20;:62;;7935:15;;2435:13;2376:1;2435:2;:13;:::i;:::-;2738:35;;:9;:35;:::i;:::-;7915;;;;:::i;:::-;7888:62;;;7911:1;7888:62;7869:14;:82;;:129;;;;-1:-1:-1;7968:16:0;;-1:-1:-1;;;;;7968:16:0;:30;;7869:129;:160;;;;;8013:16;;8004:5;;8002:7;;;;;:::i;:::-;;;;;-1:-1:-1;8002:27:0;;7869:160;:194;;;;-1:-1:-1;8044:12:0;8033:24;;;;:10;:24;;;;;:26;;8062:1;;8033:26;;:24;:26;;;:::i;:::-;;;;;:30;7862:201;7780:291;-1:-1:-1;;7780:291:0:o;7608:164::-;7682:7;7761:3;7727:11;-1:-1:-1;;;;;7719:19:0;:4;-1:-1:-1;;;;;7719:19:0;;:38;;7750:7;;7719:38;;;7741:6;;7719:38;7709:49;;:6;:49;:::i;:::-;:55;;;;:::i;:::-;7702:62;7608:164;-1:-1:-1;;;7608:164:0:o;8948:218::-;9020:7;2435:13;2376:1;2435:2;:13;:::i;:::-;2738:35;;:9;:35;:::i;:::-;9062:15;;:35;;;;:::i;:::-;9047:11;:51;:111;;2435:13;2376:1;2435:2;:13;:::i;:::-;2738:35;;:9;:35;:::i;:::-;9047:111;;;2435:13;2376:1;2435:2;:13;:::i;:::-;2738:35;;:9;:35;:::i;:::-;9102:15;;:35;;;;:::i;9174:97::-;9230:16;;:33;;-1:-1:-1;;;;;9230:16:0;;;;:33;;;;;9256:6;;9230:16;:33;:16;:33;9256:6;9230:16;:33;;;;;;;;;;;;;;;;;;;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:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:248::-;1717:6;1725;1778:2;1766:9;1757:7;1753:23;1749:32;1746:52;;;1794:1;1791;1784:12;1746:52;-1:-1:-1;;1817:23:1;;;1887:2;1872:18;;;1859:32;;-1:-1:-1;1649:248:1:o;1902:456::-;1979:6;1987;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2103:9;2090:23;2122:31;2147:5;2122:31;:::i;:::-;2172:5;-1:-1:-1;2229:2:1;2214:18;;2201:32;2242:33;2201:32;2242:33;:::i;:::-;1902:456;;2294:7;;-1:-1:-1;;;2348:2:1;2333:18;;;;2320:32;;1902:456::o;2552:316::-;2629:6;2637;2645;2698:2;2686:9;2677:7;2673:23;2669:32;2666:52;;;2714:1;2711;2704:12;2666:52;-1:-1:-1;;2737:23:1;;;2807:2;2792:18;;2779:32;;-1:-1:-1;2858:2:1;2843:18;;;2830:32;;2552:316;-1:-1:-1;2552:316:1:o;2873:180::-;2932:6;2985:2;2973:9;2964:7;2960:23;2956:32;2953:52;;;3001:1;2998;2991:12;2953:52;-1:-1:-1;3024:23:1;;2873:180;-1:-1:-1;2873:180:1:o;3750:160::-;3815:20;;3871:13;;3864:21;3854:32;;3844:60;;3900:1;3897;3890:12;3844:60;3750:160;;;:::o;3915:689::-;4007:6;4015;4023;4076:2;4064:9;4055:7;4051:23;4047:32;4044:52;;;4092:1;4089;4082:12;4044:52;4132:9;4119:23;4161:18;4202:2;4194:6;4191:14;4188:34;;;4218:1;4215;4208:12;4188:34;4256:6;4245:9;4241:22;4231:32;;4301:7;4294:4;4290:2;4286:13;4282:27;4272:55;;4323:1;4320;4313:12;4272:55;4363:2;4350:16;4389:2;4381:6;4378:14;4375:34;;;4405:1;4402;4395:12;4375:34;4460:7;4453:4;4443:6;4440:1;4436:14;4432:2;4428:23;4424:34;4421:47;4418:67;;;4481:1;4478;4471:12;4418:67;4512:4;4504:13;;;;-1:-1:-1;4536:6:1;-1:-1:-1;4561:37:1;;4577:20;;;-1:-1:-1;4561:37:1;:::i;:::-;4551:47;;3915:689;;;;;:::o;4609:388::-;4677:6;4685;4738:2;4726:9;4717:7;4713:23;4709:32;4706:52;;;4754:1;4751;4744:12;4706:52;4793:9;4780:23;4812:31;4837:5;4812:31;:::i;:::-;4862:5;-1:-1:-1;4919:2:1;4904:18;;4891:32;4932:33;4891:32;4932:33;:::i;:::-;4984:7;4974:17;;;4609:388;;;;;:::o;5002:180::-;5058:6;5111:2;5099:9;5090:7;5086:23;5082:32;5079:52;;;5127:1;5124;5117:12;5079:52;5150:26;5166:9;5150:26;:::i;5187:127::-;5248:10;5243:3;5239:20;5236:1;5229:31;5279:4;5276:1;5269:15;5303:4;5300:1;5293:15;5319:422;5408:1;5451:5;5408:1;5465:270;5486:7;5476:8;5473:21;5465:270;;;5545:4;5541:1;5537:6;5533:17;5527:4;5524:27;5521:53;;;5554:18;;:::i;:::-;5604:7;5594:8;5590:22;5587:55;;;5624:16;;;;5587:55;5703:22;;;;5663:15;;;;5465:270;;;5469:3;5319:422;;;;;:::o;5746:806::-;5795:5;5825:8;5815:80;;-1:-1:-1;5866:1:1;5880:5;;5815:80;5914:4;5904:76;;-1:-1:-1;5951:1:1;5965:5;;5904:76;5996:4;6014:1;6009:59;;;;6082:1;6077:130;;;;5989:218;;6009:59;6039:1;6030:10;;6053:5;;;6077:130;6114:3;6104:8;6101:17;6098:43;;;6121:18;;:::i;:::-;-1:-1:-1;;6177:1:1;6163:16;;6192:5;;5989:218;;6291:2;6281:8;6278:16;6272:3;6266:4;6263:13;6259:36;6253:2;6243:8;6240:16;6235:2;6229:4;6226:12;6222:35;6219:77;6216:159;;;-1:-1:-1;6328:19:1;;;6360:5;;6216:159;6407:34;6432:8;6426:4;6407:34;:::i;:::-;6477:6;6473:1;6469:6;6465:19;6456:7;6453:32;6450:58;;;6488:18;;:::i;:::-;6526:20;;5746:806;-1:-1:-1;;;5746:806:1:o;6557:140::-;6615:5;6644:47;6685:4;6675:8;6671:19;6665:4;6644:47;:::i;6702:168::-;6775:9;;;6806;;6823:15;;;6817:22;;6803:37;6793:71;;6844:18;;:::i;6875:356::-;7077:2;7059:21;;;7096:18;;;7089:30;7155:34;7150:2;7135:18;;7128:62;7222:2;7207:18;;6875:356::o;7645:128::-;7712:9;;;7733:11;;;7730:37;;;7747:18;;:::i;8134:127::-;8195:10;8190:3;8186:20;8183:1;8176:31;8226:4;8223:1;8216:15;8250:4;8247:1;8240:15;8266:135;8305:3;8326:17;;;8323:43;;8346:18;;:::i;:::-;-1:-1:-1;8393:1:1;8382:13;;8266:135::o;8406:217::-;8446:1;8472;8462:132;;8516:10;8511:3;8507:20;8504:1;8497:31;8551:4;8548:1;8541:15;8579:4;8576:1;8569:15;8462:132;-1:-1:-1;8608:9:1;;8406:217::o;11023:125::-;11088:9;;;11109:10;;;11106:36;;;11122:18;;:::i;12051:980::-;12313:4;12361:3;12350:9;12346:19;12392:6;12381:9;12374:25;12418:2;12456:6;12451:2;12440:9;12436:18;12429:34;12499:3;12494:2;12483:9;12479:18;12472:31;12523:6;12558;12552:13;12589:6;12581;12574:22;12627:3;12616:9;12612:19;12605:26;;12666:2;12658:6;12654:15;12640:29;;12687:1;12697:195;12711:6;12708:1;12705:13;12697:195;;;12776:13;;-1:-1:-1;;;;;12772:39:1;12760:52;;12867:15;;;;12832:12;;;;12808:1;12726:9;12697:195;;;-1:-1:-1;;;;;;;12948:32:1;;;;12943:2;12928:18;;12921:60;-1:-1:-1;;;13012:3:1;12997:19;12990:35;12909:3;12051:980;-1:-1:-1;;;12051:980:1:o

Swarm Source

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