ETH Price: $3,489.21 (+3.66%)
Gas: 3 Gwei

Token

ForthBox (FBX)
 

Overview

Max Total Supply

1,000,000,000 FBX

Holders

108

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
ravensclaw.eth
Balance
9,525,013.383390418 FBX

Value
$0.00
0xe5837770047dbb05719fbee80b42d42f8432a47e
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:
FBX

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

// SPDX-License-Identifier: Unlicensed

/**
A Web3 Game aggregation platform that provides blockchain-based services for traditional games. We are bringing Web2 game users into the Web3.

Website: https://www.forthbox.pro
Telegram: https://t.me/fbx_erc
Twitter: https://twitter.com/fbx_erc
 */

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



//--- Interface for ERC20 ---//
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

//--- Contract ---//
contract FBX is Context, Ownable, IERC20 {

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => bool) private isPresaleAddress;
    mapping (address => uint256) private balance;


    uint256 constant public _totalSupply = 10 ** 9 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 100_000;
    uint256 public buyfee = 250;
    uint256 public sellfee = 250;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_000;
    uint256 private maxWallet = 25 * _totalSupply / 1000;
    bool private canSwapFees = true;
    address payable private marketingAddress = payable(address(0xd58d95f52FD13FeD1F10e4E21dE4F70DeBF590cb));

    IRouter02 public swapRouter;
    string constant private _name = "ForthBox";
    string constant private _symbol = "FBX";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;
    bool private avoidMaxTxLimits = false;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }
    event SwapAndLiquify();


    constructor () {
        _noFee[msg.sender] = true;
        _noFee[marketingAddress] = true;

        if (block.chainid == 56) {
            swapRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 42161) {
            swapRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        } else if (block.chainid == 5) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else {
            revert("Chain not valid");
        }
        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);


    }

    receive() external payable {}

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

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

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

        function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner()
            && msg.sender != owner()
            && !liquidityAdd[ins]  && !liquidityAdd[out] && out != address(0) && out != address(this);
            return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function is_transfer(address ins, address out) internal view returns (bool) { 
        bool _is_transfer = !isLpPair[out] && !isLpPair[ins];
        return _is_transfer;
    }

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees && !_noFee[ins];

        return canswap;
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
                    if(!isLpPair[to] && from != address(this) && to != address(this) || is_transfer(from,to) && !avoidMaxTxLimits)  { require(balanceOf(to) + amount <= maxWallet,"maxWallet exceed"); }}


        if(is_sell(from, to) &&  !inSwap && canSwap(from, to)) {

            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) { 
                if(amount > swapThreshold) internalSwap(contractTokenBalance);
             }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }
        uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount;
        uint256 amountBeforeFee = (takeFee) ? amount : (!isTradingEnabled ? amount : 0);
        balance[from] -= amountBeforeFee; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }

    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 
        if (fee == 0)  return amount; 
        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }


    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        if(address(this).balance > 0) marketingAddress.transfer(address(this).balance);
        
    } 

        function enableTrading() external onlyOwner {
            require(!isTradingEnabled, "Trading already enabled");
            isTradingEnabled = true;
        }

        event _changeMaxWallet(uint256 newLimit);
        function changeMaxWallet(uint256 base1000) external onlyOwner {
            require(!avoidMaxTxLimits,"Already initalized");
            require(base1000 > 0,"Not less than 0.1%"); 

            maxWallet = (_totalSupply * base1000) / 1_000;
            emit _changeMaxWallet(maxWallet);
        }

        function zeroLimits() external onlyOwner {
            require(!avoidMaxTxLimits,"Already initalized");
            maxWallet = _totalSupply;
            avoidMaxTxLimits = true;
            buyfee = 30;
            sellfee = 30;
        }

        function returnLimits() external view returns(uint256) {
            return(maxWallet);
        }
}

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":[],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"_changeMaxWallet","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"base1000","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260fa60078190556008556103e862000026670de0b6b3a7640000601962000583565b620000329190620005af565b600955600a80546001600160a81b03191674d58d95f52fd13fed1f10e4e21de4f70debf590cb01179055600c805462ff00ff60a01b191690553480156200007857600080fd5b5062000084336200046b565b33600090815260026020526040808220805460ff199081166001908117909255600a5461010090046001600160a01b03168452919092208054909116909117905546603803620000fa57600b80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000227565b466061036200012f57600b80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000227565b46600114806200013f5750466004145b806200014b5750466003145b156200017d57600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000227565b4661a4b103620001b357600b80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b4799750617905562000227565b46600503620001e857600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000227565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b336000818152600360209081526040808320805460ff1916600117905560068252808320670de0b6b3a76400009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600b60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003029190620005d2565b6001600160a01b031663c9c65396600b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038a9190620005d2565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620003d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fd9190620005d2565b600c80546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff19166001179055600b546200044991339116600019620004bb565b600b54620004659030906001600160a01b0316600019620004bb565b62000604565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620005095760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200021e565b6001600160a01b038216620005575760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200021e565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b8082028115828204841417620005a957634e487b7160e01b600052601160045260246000fd5b92915050565b600082620005cd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005e557600080fd5b81516001600160a01b0381168114620005fd57600080fd5b9392505050565b6115e580620006146000396000f3fe6080604052600436106101a05760003560e01c8063452ed4f1116100ec57806395d89b411161008a578063dc9d75b011610064578063dc9d75b014610481578063dd62ed3e14610497578063e9451f5f146104dd578063f2fde38b146104f357600080fd5b806395d89b4114610415578063a9059cbb14610441578063c31c9c071461046157600080fd5b8063715018a6116100c6578063715018a6146103cd578063893d20e8146103e25780638a8c523c146104005780638da5cb5b146103e257600080fd5b8063452ed4f11461036257806354de7bee1461038257806370a082311461039757600080fd5b806318160ddd1161015957806323b872dd1161013357806323b872dd146102f55780632cd077b514610315578063313ce5671461032a5780633eaaf86b1461034657600080fd5b806318160ddd146102af5780631dc36945146102ca5780631f91af65146102e057600080fd5b806303fd2a45146101ac5780630445b667146101df578063064a59d01461020257806306fdde0314610233578063095ea7b31461026d5780630b006d601461028d57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101eb57600080fd5b506101f4610513565b6040519081526020016101d6565b34801561020e57600080fd5b50600c5461022390600160a01b900460ff1681565b60405190151581526020016101d6565b34801561023f57600080fd5b5060408051808201909152600881526708cdee4e8d084def60c31b60208201525b6040516101d6919061131b565b34801561027957600080fd5b5061022361028836600461137e565b61052b565b34801561029957600080fd5b506102ad6102a83660046113aa565b610542565b005b3480156102bb57600080fd5b50670de0b6b3a76400006101f4565b3480156102d657600080fd5b506101f460075481565b3480156102ec57600080fd5b506102ad610663565b34801561030157600080fd5b506102236103103660046113c3565b610707565b34801561032157600080fd5b506009546101f4565b34801561033657600080fd5b50604051600981526020016101d6565b34801561035257600080fd5b506101f4670de0b6b3a764000081565b34801561036e57600080fd5b50600c546101c2906001600160a01b031681565b34801561038e57600080fd5b506101f4600081565b3480156103a357600080fd5b506101f46103b2366004611404565b6001600160a01b031660009081526006602052604090205490565b3480156103d957600080fd5b506102ad61077f565b3480156103ee57600080fd5b506000546001600160a01b03166101c2565b34801561040c57600080fd5b506102ad6107b5565b34801561042157600080fd5b5060408051808201909152600381526208c84b60eb1b6020820152610260565b34801561044d57600080fd5b5061022361045c36600461137e565b61084e565b34801561046d57600080fd5b50600b546101c2906001600160a01b031681565b34801561048d57600080fd5b506101f46103e881565b3480156104a357600080fd5b506101f46104b2366004611428565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104e957600080fd5b506101f460085481565b3480156104ff57600080fd5b506102ad61050e366004611404565b610865565b610528620186a0670de0b6b3a7640000611477565b81565b6000610538338484610900565b5060015b92915050565b6000546001600160a01b031633146105755760405162461bcd60e51b815260040161056c90611499565b60405180910390fd5b600c54600160b01b900460ff16156105c45760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161056c565b600081116106095760405162461bcd60e51b81526020600482015260126024820152714e6f74206c657373207468616e20302e312560701b604482015260640161056c565b6103e861061e82670de0b6b3a76400006114ce565b6106289190611477565b60098190556040519081527fc365d73c512551dfb70ad4540e9046c32972c5da0fb74b2b8ec7b9304a178c5d9060200160405180910390a150565b6000546001600160a01b0316331461068d5760405162461bcd60e51b815260040161056c90611499565b600c54600160b01b900460ff16156106dc5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161056c565b670de0b6b3a7640000600955600c805460ff60b01b1916600160b01b179055601e6007819055600855565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000191461076c576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906107669084906114e5565b90915550505b6107778484846109c4565b949350505050565b6000546001600160a01b031633146107a95760405162461bcd60e51b815260040161056c90611499565b6107b36000610e11565b565b6000546001600160a01b031633146107df5760405162461bcd60e51b815260040161056c90611499565b600c54600160a01b900460ff16156108395760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161056c565b600c805460ff60a01b1916600160a01b179055565b600061085b3384846109c4565b5060019392505050565b6000546001600160a01b0316331461088f5760405162461bcd60e51b815260040161056c90611499565b6001600160a01b0381166108f45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161056c565b6108fd81610e11565b50565b6001600160a01b03831661094c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056c565b6001600160a01b0382166109985760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056c565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610a2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056c565b6001600160a01b038516610a8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056c565b60008311610af05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161056c565b610afa8585610e61565b15610c3157600c54600160a01b900460ff16610b515760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161056c565b6001600160a01b03841660009081526004602052604090205460ff16158015610b8357506001600160a01b0385163014155b8015610b9857506001600160a01b0384163014155b80610bbe5750610ba88585610f36565b8015610bbe5750600c54600160b01b900460ff16155b15610c315760095483610be6866001600160a01b031660009081526006602052604090205490565b610bf091906114f8565b1115610c315760405162461bcd60e51b815260206004820152601060248201526f1b585e15d85b1b195d08195e18d9595960821b604482015260640161056c565b610c3b8585610f7e565b8015610c515750600c54600160a81b900460ff16155b8015610c625750610c628585610fc5565b15610cb95730600090815260066020526040902054610c8c620186a0670de0b6b3a7640000611477565b8110610cb757610ca7620186a0670de0b6b3a7640000611477565b841115610cb757610cb781610ff9565b505b6001600160a01b03851660009081526002602052604090205460ff1680610cf857506001600160a01b03841660009081526002602052604090205460ff165b15610d01575060005b600081610d0e5783610d2c565b610d2c86610d1c8888611203565b610d268989610f7e565b8761124a565b9050600082610d5457600c54600160a01b900460ff1615610d4e576000610d56565b84610d56565b845b6001600160a01b038816600090815260066020526040812080549293508392909190610d839084906114e5565b90915550506001600160a01b03861660009081526006602052604081208054849290610db09084906114f8565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dfc91815260200190565b60405180910390a35060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080610e766000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610ea557506000546001600160a01b03848116911614155b8015610ebc57506000546001600160a01b03163314155b8015610ee157506001600160a01b03841660009081526003602052604090205460ff16155b8015610f0657506001600160a01b03831660009081526003602052604090205460ff16155b8015610f1a57506001600160a01b03831615155b801561077757506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff1615801561077757505050506001600160a01b031660009081526004602052604090205460ff161590565b6001600160a01b038116600090815260046020526040812054819060ff16801561077757505050506001600160a01b031660009081526004602052604090205460ff161590565b600a54600090819060ff16801561077757505050506001600160a01b031660009081526002602052604090205460ff161590565b600c805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110415761104161150b565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561109a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190611521565b816001815181106110d1576110d161150b565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600b5490941682529290915220546000191461113b57306000908152600160209081526040808320600b546001600160a01b03168452909152902060001990555b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061117490859060009086903090429060040161153e565b600060405180830381600087803b15801561118e57600080fd5b505af192505050801561119f575060015b6111a957506111f3565b47156111f157600a546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156111ef573d6000803e3d6000fd5b505b505b50600c805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561077757505050506001600160a01b031660009081526004602052604090205460ff1690565b600080841561125c575060075461126f565b831561126b575060085461126f565b5060005b806000036112805782915050610777565b60006103e861128f83866114ce565b6112999190611477565b905080156113065730600090815260066020526040812080548392906112c09084906114f8565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61131081856114e5565b979650505050505050565b600060208083528351808285015260005b818110156113485785810183015185820160400152820161132c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108fd57600080fd5b6000806040838503121561139157600080fd5b823561139c81611369565b946020939093013593505050565b6000602082840312156113bc57600080fd5b5035919050565b6000806000606084860312156113d857600080fd5b83356113e381611369565b925060208401356113f381611369565b929592945050506040919091013590565b60006020828403121561141657600080fd5b813561142181611369565b9392505050565b6000806040838503121561143b57600080fd5b823561144681611369565b9150602083013561145681611369565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261149457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761053c5761053c611461565b8181038181111561053c5761053c611461565b8082018082111561053c5761053c611461565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561153357600080fd5b815161142181611369565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561158e5784516001600160a01b031683529383019391830191600101611569565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206e9b847efbd22d5fa390952cbcfd0001889b4b69a50c9624f4b13d7da9cd6d3e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063452ed4f1116100ec57806395d89b411161008a578063dc9d75b011610064578063dc9d75b014610481578063dd62ed3e14610497578063e9451f5f146104dd578063f2fde38b146104f357600080fd5b806395d89b4114610415578063a9059cbb14610441578063c31c9c071461046157600080fd5b8063715018a6116100c6578063715018a6146103cd578063893d20e8146103e25780638a8c523c146104005780638da5cb5b146103e257600080fd5b8063452ed4f11461036257806354de7bee1461038257806370a082311461039757600080fd5b806318160ddd1161015957806323b872dd1161013357806323b872dd146102f55780632cd077b514610315578063313ce5671461032a5780633eaaf86b1461034657600080fd5b806318160ddd146102af5780631dc36945146102ca5780631f91af65146102e057600080fd5b806303fd2a45146101ac5780630445b667146101df578063064a59d01461020257806306fdde0314610233578063095ea7b31461026d5780630b006d601461028d57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101c261dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101eb57600080fd5b506101f4610513565b6040519081526020016101d6565b34801561020e57600080fd5b50600c5461022390600160a01b900460ff1681565b60405190151581526020016101d6565b34801561023f57600080fd5b5060408051808201909152600881526708cdee4e8d084def60c31b60208201525b6040516101d6919061131b565b34801561027957600080fd5b5061022361028836600461137e565b61052b565b34801561029957600080fd5b506102ad6102a83660046113aa565b610542565b005b3480156102bb57600080fd5b50670de0b6b3a76400006101f4565b3480156102d657600080fd5b506101f460075481565b3480156102ec57600080fd5b506102ad610663565b34801561030157600080fd5b506102236103103660046113c3565b610707565b34801561032157600080fd5b506009546101f4565b34801561033657600080fd5b50604051600981526020016101d6565b34801561035257600080fd5b506101f4670de0b6b3a764000081565b34801561036e57600080fd5b50600c546101c2906001600160a01b031681565b34801561038e57600080fd5b506101f4600081565b3480156103a357600080fd5b506101f46103b2366004611404565b6001600160a01b031660009081526006602052604090205490565b3480156103d957600080fd5b506102ad61077f565b3480156103ee57600080fd5b506000546001600160a01b03166101c2565b34801561040c57600080fd5b506102ad6107b5565b34801561042157600080fd5b5060408051808201909152600381526208c84b60eb1b6020820152610260565b34801561044d57600080fd5b5061022361045c36600461137e565b61084e565b34801561046d57600080fd5b50600b546101c2906001600160a01b031681565b34801561048d57600080fd5b506101f46103e881565b3480156104a357600080fd5b506101f46104b2366004611428565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104e957600080fd5b506101f460085481565b3480156104ff57600080fd5b506102ad61050e366004611404565b610865565b610528620186a0670de0b6b3a7640000611477565b81565b6000610538338484610900565b5060015b92915050565b6000546001600160a01b031633146105755760405162461bcd60e51b815260040161056c90611499565b60405180910390fd5b600c54600160b01b900460ff16156105c45760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161056c565b600081116106095760405162461bcd60e51b81526020600482015260126024820152714e6f74206c657373207468616e20302e312560701b604482015260640161056c565b6103e861061e82670de0b6b3a76400006114ce565b6106289190611477565b60098190556040519081527fc365d73c512551dfb70ad4540e9046c32972c5da0fb74b2b8ec7b9304a178c5d9060200160405180910390a150565b6000546001600160a01b0316331461068d5760405162461bcd60e51b815260040161056c90611499565b600c54600160b01b900460ff16156106dc5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161056c565b670de0b6b3a7640000600955600c805460ff60b01b1916600160b01b179055601e6007819055600855565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000191461076c576001600160a01b0384166000908152600160209081526040808320338452909152812080548492906107669084906114e5565b90915550505b6107778484846109c4565b949350505050565b6000546001600160a01b031633146107a95760405162461bcd60e51b815260040161056c90611499565b6107b36000610e11565b565b6000546001600160a01b031633146107df5760405162461bcd60e51b815260040161056c90611499565b600c54600160a01b900460ff16156108395760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161056c565b600c805460ff60a01b1916600160a01b179055565b600061085b3384846109c4565b5060019392505050565b6000546001600160a01b0316331461088f5760405162461bcd60e51b815260040161056c90611499565b6001600160a01b0381166108f45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161056c565b6108fd81610e11565b50565b6001600160a01b03831661094c5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056c565b6001600160a01b0382166109985760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161056c565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b038416610a2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161056c565b6001600160a01b038516610a8e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161056c565b60008311610af05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161056c565b610afa8585610e61565b15610c3157600c54600160a01b900460ff16610b515760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161056c565b6001600160a01b03841660009081526004602052604090205460ff16158015610b8357506001600160a01b0385163014155b8015610b9857506001600160a01b0384163014155b80610bbe5750610ba88585610f36565b8015610bbe5750600c54600160b01b900460ff16155b15610c315760095483610be6866001600160a01b031660009081526006602052604090205490565b610bf091906114f8565b1115610c315760405162461bcd60e51b815260206004820152601060248201526f1b585e15d85b1b195d08195e18d9595960821b604482015260640161056c565b610c3b8585610f7e565b8015610c515750600c54600160a81b900460ff16155b8015610c625750610c628585610fc5565b15610cb95730600090815260066020526040902054610c8c620186a0670de0b6b3a7640000611477565b8110610cb757610ca7620186a0670de0b6b3a7640000611477565b841115610cb757610cb781610ff9565b505b6001600160a01b03851660009081526002602052604090205460ff1680610cf857506001600160a01b03841660009081526002602052604090205460ff165b15610d01575060005b600081610d0e5783610d2c565b610d2c86610d1c8888611203565b610d268989610f7e565b8761124a565b9050600082610d5457600c54600160a01b900460ff1615610d4e576000610d56565b84610d56565b845b6001600160a01b038816600090815260066020526040812080549293508392909190610d839084906114e5565b90915550506001600160a01b03861660009081526006602052604081208054849290610db09084906114f8565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dfc91815260200190565b60405180910390a35060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080610e766000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610ea557506000546001600160a01b03848116911614155b8015610ebc57506000546001600160a01b03163314155b8015610ee157506001600160a01b03841660009081526003602052604090205460ff16155b8015610f0657506001600160a01b03831660009081526003602052604090205460ff16155b8015610f1a57506001600160a01b03831615155b801561077757506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff1615801561077757505050506001600160a01b031660009081526004602052604090205460ff161590565b6001600160a01b038116600090815260046020526040812054819060ff16801561077757505050506001600160a01b031660009081526004602052604090205460ff161590565b600a54600090819060ff16801561077757505050506001600160a01b031660009081526002602052604090205460ff161590565b600c805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110415761104161150b565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561109a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110be9190611521565b816001815181106110d1576110d161150b565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220600b5490941682529290915220546000191461113b57306000908152600160209081526040808320600b546001600160a01b03168452909152902060001990555b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061117490859060009086903090429060040161153e565b600060405180830381600087803b15801561118e57600080fd5b505af192505050801561119f575060015b6111a957506111f3565b47156111f157600a546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f193505050501580156111ef573d6000803e3d6000fd5b505b505b50600c805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561077757505050506001600160a01b031660009081526004602052604090205460ff1690565b600080841561125c575060075461126f565b831561126b575060085461126f565b5060005b806000036112805782915050610777565b60006103e861128f83866114ce565b6112999190611477565b905080156113065730600090815260066020526040812080548392906112c09084906114f8565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61131081856114e5565b979650505050505050565b600060208083528351808285015260005b818110156113485785810183015185820160400152820161132c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108fd57600080fd5b6000806040838503121561139157600080fd5b823561139c81611369565b946020939093013593505050565b6000602082840312156113bc57600080fd5b5035919050565b6000806000606084860312156113d857600080fd5b83356113e381611369565b925060208401356113f381611369565b929592945050506040919091013590565b60006020828403121561141657600080fd5b813561142181611369565b9392505050565b6000806040838503121561143b57600080fd5b823561144681611369565b9150602083013561145681611369565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261149457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761053c5761053c611461565b8181038181111561053c5761053c611461565b8082018082111561053c5761053c611461565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561153357600080fd5b815161142181611369565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561158e5784516001600160a01b031683529383019391830191600101611569565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206e9b847efbd22d5fa390952cbcfd0001889b4b69a50c9624f4b13d7da9cd6d3e64736f6c63430008130033

Deployed Bytecode Sourcemap

5141:9110:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6990:73;;;;;;;;;;;;7021:42;6990:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;6990:73:0;;;;;;;;6371:62;;;;;;;;;;;;;:::i;:::-;;;368:25:1;;;356:2;341:18;6371:62:0;222:177:1;7098:36:0;;;;;;;;;;-1:-1:-1;7098:36:0;;;;-1:-1:-1;;;7098:36:0;;;;;;;;;569:14:1;;562:22;544:41;;532:2;517:18;7098:36:0;404:187:1;5535:80:0;;;;;;;;;;-1:-1:-1;5607:5:0;;;;;;;;;;;;-1:-1:-1;;;5607:5:0;;;;5535:80;;;;;;;:::i;8832:161::-;;;;;;;;;;-1:-1:-1;8832:161:0;;;;;:::i;:::-;;:::i;13577:303::-;;;;;;;;;;-1:-1:-1;13577:303:0;;;;;:::i;:::-;;:::i;:::-;;5191:125;;;;;;;;;;-1:-1:-1;6349:15:0;5191:125;;6440:27;;;;;;;;;;;;;;;;13892:245;;;;;;;;;;;;;:::i;9278:306::-;;;;;;;;;;-1:-1:-1;9278:306:0;;;;;:::i;:::-;;:::i;14149:99::-;;;;;;;;;;-1:-1:-1;14226:9:0;;14149:99;;5322:117;;;;;;;;;;-1:-1:-1;5322:117:0;;6982:1;2393:36:1;;2381:2;2366:18;5322:117:0;2251:184:1;6310:54:0;;;;;;;;;;;;6349:15;6310:54;;7070:21;;;;;;;;;;-1:-1:-1;7070:21:0;;;;-1:-1:-1;;;;;7070:21:0;;;6509:39;;;;;;;;;;;;6547:1;6509:39;;5846:117;;;;;;;;;;-1:-1:-1;5846:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5939:16:0;5912:7;5939:16;;;:7;:16;;;;;;;5846:117;1121:94;;;;;;;;;;;;;:::i;5621:80::-;;;;;;;;;;-1:-1:-1;5673:7:0;971:6;-1:-1:-1;;;;;971:6:0;5621:80;;13352:162;;;;;;;;;;;;;:::i;5445:84::-;;;;;;;;;;-1:-1:-1;5519:7:0;;;;;;;;;;;;-1:-1:-1;;;5519:7:0;;;;5445:84;;8655:165;;;;;;;;;;-1:-1:-1;8655:165:0;;;;;:::i;:::-;;:::i;6818:27::-;;;;;;;;;;-1:-1:-1;6818:27:0;;;;-1:-1:-1;;;;;6818:27:0;;;6555:47;;;;;;;;;;;;6597:5;6555:47;;5707:133;;;;;;;;;;-1:-1:-1;5707:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5809:19:0;;;5791:7;5809:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5707:133;6474:28;;;;;;;;;;;;;;;;1223:192;;;;;;;;;;-1:-1:-1;1223:192:0;;;;;:::i;:::-;;:::i;6371:62::-;6411:22;6426:7;6349:15;6411:22;:::i;:::-;6371:62;:::o;8832:161::-;8909:4;8926:37;8935:10;8947:7;8956:6;8926:8;:37::i;:::-;-1:-1:-1;8981:4:0;8832:161;;;;;:::o;13577:303::-;944:7;971:6;-1:-1:-1;;;;;971:6:0;506:10;1033:23;1025:68;;;;-1:-1:-1;;;1025:68:0;;;;;;;:::i;:::-;;;;;;;;;13663:16:::1;::::0;-1:-1:-1;;;13663:16:0;::::1;;;13662:17;13654:47;;;::::0;-1:-1:-1;;;13654:47:0;;4227:2:1;13654:47:0::1;::::0;::::1;4209:21:1::0;4266:2;4246:18;;;4239:30;-1:-1:-1;;;4285:18:1;;;4278:48;4343:18;;13654:47:0::1;4025:342:1::0;13654:47:0::1;13735:1;13724:8;:12;13716:42;;;::::0;-1:-1:-1;;;13716:42:0;;4574:2:1;13716:42:0::1;::::0;::::1;4556:21:1::0;4613:2;4593:18;;;4586:30;-1:-1:-1;;;4632:18:1;;;4625:48;4690:18;;13716:42:0::1;4372:342:1::0;13716:42:0::1;13816:5;13789:23;13804:8:::0;6349:15:::1;13789:23;:::i;:::-;13788:33;;;;:::i;:::-;13776:9;:45:::0;;;13841:27:::1;::::0;368:25:1;;;13841:27:0::1;::::0;356:2:1;341:18;13841:27:0::1;;;;;;;13577:303:::0;:::o;13892:245::-;944:7;971:6;-1:-1:-1;;;;;971:6:0;506:10;1033:23;1025:68;;;;-1:-1:-1;;;1025:68:0;;;;;;;:::i;:::-;13957:16:::1;::::0;-1:-1:-1;;;13957:16:0;::::1;;;13956:17;13948:47;;;::::0;-1:-1:-1;;;13948:47:0;;4227:2:1;13948:47:0::1;::::0;::::1;4209:21:1::0;4266:2;4246:18;;;4239:30;-1:-1:-1;;;4285:18:1;;;4278:48;4343:18;;13948:47:0::1;4025:342:1::0;13948:47:0::1;6349:15;14010:9;:24:::0;14049:16:::1;:23:::0;;-1:-1:-1;;;;14049:23:0::1;-1:-1:-1::0;;;14049:23:0::1;::::0;;14096:2:::1;14087:6;:11:::0;;;14113:7:::1;:12:::0;13892:245::o;9278:306::-;-1:-1:-1;;;;;9399:19:0;;9378:4;9399:19;;;:11;:19;;;;;;;;9419:10;9399:31;;;;;;;;-1:-1:-1;;9399:52:0;9395:126;;-1:-1:-1;;;;;9468:19:0;;;;;;:11;:19;;;;;;;;9488:10;9468:31;;;;;;;:41;;9503:6;;9468:19;:41;;9503:6;;9468:41;:::i;:::-;;;;-1:-1:-1;;9395:126:0;9540:36;9550:6;9558:9;9569:6;9540:9;:36::i;:::-;9533:43;9278:306;-1:-1:-1;;;;9278:306:0:o;1121:94::-;944:7;971:6;-1:-1:-1;;;;;971:6:0;506:10;1033:23;1025:68;;;;-1:-1:-1;;;1025:68:0;;;;;;;:::i;:::-;1186:21:::1;1204:1;1186:9;:21::i;:::-;1121:94::o:0;13352:162::-;944:7;971:6;-1:-1:-1;;;;;971:6:0;506:10;1033:23;1025:68;;;;-1:-1:-1;;;1025:68:0;;;;;;;:::i;:::-;13420:16:::1;::::0;-1:-1:-1;;;13420:16:0;::::1;;;13419:17;13411:53;;;::::0;-1:-1:-1;;;13411:53:0;;5227:2:1;13411:53:0::1;::::0;::::1;5209:21:1::0;5266:2;5246:18;;;5239:30;5305:25;5285:18;;;5278:53;5348:18;;13411:53:0::1;5025:347:1::0;13411:53:0::1;13479:16;:23:::0;;-1:-1:-1;;;;13479:23:0::1;-1:-1:-1::0;;;13479:23:0::1;::::0;;13352:162::o;8655:165::-;8733:4;8750:40;8760:10;8772:9;8783:6;8750:9;:40::i;:::-;-1:-1:-1;8808:4:0;;8655:165;-1:-1:-1;;;8655:165:0:o;1223:192::-;944:7;971:6;-1:-1:-1;;;;;971:6:0;506:10;1033:23;1025:68;;;;-1:-1:-1;;;1025:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1312:22:0;::::1;1304:73;;;::::0;-1:-1:-1;;;1304:73:0;;5579:2:1;1304:73:0::1;::::0;::::1;5561:21:1::0;5618:2;5598:18;;;5591:30;5657:34;5637:18;;;5630:62;-1:-1:-1;;;5708:18:1;;;5701:36;5754:19;;1304:73:0::1;5377:402:1::0;1304:73:0::1;1388:19;1398:8;1388:9;:19::i;:::-;1223:192:::0;:::o;9005:261::-;-1:-1:-1;;;;;9100:20:0;;9092:52;;;;-1:-1:-1;;;9092:52:0;;5986:2:1;9092:52:0;;;5968:21:1;6025:2;6005:18;;;5998:30;-1:-1:-1;;;6044:18:1;;;6037:49;6103:18;;9092:52:0;5784:343:1;9092:52:0;-1:-1:-1;;;;;9163:21:0;;9155:53;;;;-1:-1:-1;;;9155:53:0;;5986:2:1;9155:53:0;;;5968:21:1;6025:2;6005:18;;;5998:30;-1:-1:-1;;;6044:18:1;;;6037:49;6103:18;;9155:53:0;5784:343:1;9155:53:0;-1:-1:-1;;;;;9221:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9005:261::o;10632:1405::-;10712:4;10744;-1:-1:-1;;;;;10767:16:0;;10759:64;;;;-1:-1:-1;;;10759:64:0;;6334:2:1;10759:64:0;;;6316:21:1;6373:2;6353:18;;;6346:30;6412:34;6392:18;;;6385:62;-1:-1:-1;;;6463:18:1;;;6456:33;6506:19;;10759:64:0;6132:399:1;10759:64:0;-1:-1:-1;;;;;10842:18:0;;10834:68;;;;-1:-1:-1;;;10834:68:0;;6738:2:1;10834:68:0;;;6720:21:1;6777:2;6757:18;;;6750:30;6816:34;6796:18;;;6789:62;-1:-1:-1;;;6867:18:1;;;6860:35;6912:19;;10834:68:0;6536:401:1;10834:68:0;10930:1;10921:6;:10;10913:64;;;;-1:-1:-1;;;10913:64:0;;7144:2:1;10913:64:0;;;7126:21:1;7183:2;7163:18;;;7156:30;7222:34;7202:18;;;7195:62;-1:-1:-1;;;7273:18:1;;;7266:39;7322:19;;10913:64:0;6942:405:1;10913:64:0;10994:25;11011:4;11016:2;10994:16;:25::i;:::-;10990:300;;;11044:16;;-1:-1:-1;;;11044:16:0;;;;11036:50;;;;-1:-1:-1;;;11036:50:0;;7554:2:1;11036:50:0;;;7536:21:1;7593:2;7573:18;;;7566:30;-1:-1:-1;;;7612:18:1;;;7605:52;7674:18;;11036:50:0;7352:346:1;11036:50:0;-1:-1:-1;;;;;11113:12:0;;;;;;:8;:12;;;;;;;;11112:13;:38;;;;-1:-1:-1;;;;;;11129:21:0;;11145:4;11129:21;;11112:38;:61;;;;-1:-1:-1;;;;;;11154:19:0;;11168:4;11154:19;;11112:61;:106;;;;11177:20;11189:4;11194:2;11177:11;:20::i;:::-;:41;;;;-1:-1:-1;11202:16:0;;-1:-1:-1;;;11202:16:0;;;;11201:17;11177:41;11109:180;;;11257:9;;11247:6;11231:13;11241:2;-1:-1:-1;;;;;5939:16:0;5912:7;5939:16;;;:7;:16;;;;;;;5846:117;11231:13;:22;;;;:::i;:::-;:35;;11223:63;;;;-1:-1:-1;;;11223:63:0;;8035:2:1;11223:63:0;;;8017:21:1;8074:2;8054:18;;;8047:30;-1:-1:-1;;;8093:18:1;;;8086:46;8149:18;;11223:63:0;7833:340:1;11223:63:0;11307:17;11315:4;11321:2;11307:7;:17::i;:::-;:29;;;;-1:-1:-1;11330:6:0;;-1:-1:-1;;;11330:6:0;;;;11329:7;11307:29;:50;;;;;11340:17;11348:4;11354:2;11340:7;:17::i;:::-;11304:293;;;11425:4;11376:28;5939:16;;;:7;:16;;;;;;6411:22;6426:7;6349:15;6411:22;:::i;:::-;11449:20;:37;11446:140;;6411:22;6426:7;6349:15;6411:22;:::i;:::-;11511:6;:22;11508:61;;;11535:34;11548:20;11535:12;:34::i;:::-;11359:238;11304:293;-1:-1:-1;;;;;11613:12:0;;;;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;11629:10:0;;;;;;:6;:10;;;;;;;;11613:26;11609:73;;;-1:-1:-1;11665:5:0;11609:73;11692:22;11718:7;11717:81;;11792:6;11717:81;;;11729:60;11739:4;11745:16;11752:4;11758:2;11745:6;:16::i;:::-;11763:17;11771:4;11777:2;11763:7;:17::i;:::-;11782:6;11729:9;:60::i;:::-;11692:106;;11809:23;11836:7;11835:53;;11858:16;;-1:-1:-1;;;11858:16:0;;;;11857:17;:30;;11886:1;11835:53;;11857:30;11877:6;11835:53;;;11847:6;11835:53;-1:-1:-1;;;;;11899:13:0;;;;;;:7;:13;;;;;:32;;11809:79;;-1:-1:-1;11809:79:0;;11899:13;;;:32;;11809:79;;11899:32;:::i;:::-;;;;-1:-1:-1;;;;;;;11933:11:0;;;;;;:7;:11;;;;;:29;;11948:14;;11933:11;:29;;11948:14;;11933:29;:::i;:::-;;;;;;;;11984:2;-1:-1:-1;;;;;11969:34:0;11978:4;-1:-1:-1;;;;;11969:34:0;;11988:14;11969:34;;;;368:25:1;;356:2;341:18;;222:177;11969:34:0;;;;;;;;-1:-1:-1;12023:4:0;;10632:1405;-1:-1:-1;;;;;;10632:1405:0:o;1423:173::-;1479:16;1498:6;;-1:-1:-1;;;;;1515:17:0;;;-1:-1:-1;;;;;;1515:17:0;;;;;;1548:40;;1498:6;;;;;;;1548:40;;1479:16;1548:40;1468:128;1423:173;:::o;9592:336::-;9667:4;9686:14;9710:7;944;971:6;-1:-1:-1;;;;;971:6:0;;898:87;9710:7;-1:-1:-1;;;;;9703:14:0;:3;-1:-1:-1;;;;;9703:14:0;;;:45;;;;-1:-1:-1;944:7:0;971:6;-1:-1:-1;;;;;9734:14:0;;;971:6;;9734:14;;9703:45;:83;;;;-1:-1:-1;944:7:0;971:6;-1:-1:-1;;;;;971:6:0;9765:10;:21;;9703:83;:118;;;;-1:-1:-1;;;;;;9804:17:0;;;;;;:12;:17;;;;;;;;9803:18;9703:118;:141;;;;-1:-1:-1;;;;;;9827:17:0;;;;;;:12;:17;;;;;;;;9826:18;9703:141;:162;;;;-1:-1:-1;;;;;;9848:17:0;;;;9703:162;:186;;;;-1:-1:-1;;;;;;9869:20:0;;9884:4;9869:20;;9686:203;9592:336;-1:-1:-1;;;;9592:336:0:o;10278:178::-;-1:-1:-1;;;;;10387:13:0;;10348:4;10387:13;;;:8;:13;;;;;;10348:4;;10387:13;;10386:14;:32;;;;-1:-1:-1;;;;;;;;;10405:13:0;;;;;:8;:13;;;;;;;;10404:14;;10278:178::o;10105:165::-;-1:-1:-1;;;;;10205:13:0;;10171:4;10205:13;;;:8;:13;;;;;;10171:4;;10205:13;;:31;;;;-1:-1:-1;;;;;;;;;10223:13:0;;;;;:8;:13;;;;;;;;10222:14;;10105:165::o;10464:160::-;10562:11;;10530:4;;;;10562:11;;:27;;;;-1:-1:-1;;;;;;;;;10578:11:0;;;;;:6;:11;;;;;;;;10577:12;;10464:160::o;12586:753::-;7248:6;:13;;-1:-1:-1;;;;7248:13:0;-1:-1:-1;;;7248:13:0;;;12703:16:::1;::::0;;12717:1:::1;12703:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12703:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12703:16:0::1;12679:40;;12748:4;12730;12735:1;12730:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12730:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12774:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;12774:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;12730:7;;12774:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12764:4;12769:1;12764:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12764:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;12828:4:::1;12808:26;::::0;;;:11:::1;:26:::0;;;;;;12843:10:::1;::::0;;;::::1;12808:47:::0;;;;;;;;-1:-1:-1;;12808:68:0::1;12804:168;;12913:4;12893:26;::::0;;;:11:::1;:26;::::0;;;;;;;12928:10:::1;::::0;-1:-1:-1;;;;;12928:10:0::1;12893:47:::0;;;;;;;-1:-1:-1;;12893:67:0;;12804:168:::1;12988:10;::::0;:200:::1;::::0;-1:-1:-1;;;12988:200:0;;-1:-1:-1;;;;;12988:10:0;;::::1;::::0;:61:::1;::::0;:200:::1;::::0;13064:20;;12988:10:::1;::::0;13115:4;;13142::::1;::::0;13162:15:::1;::::0;12988:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;12984:247;;13213:7;;;12984:247;13246:21;:25:::0;13243:78:::1;;13273:16;::::0;:48:::1;::::0;-1:-1:-1;;;;;13273:16:0::1;::::0;;::::1;::::0;;;::::1;::::0;13299:21:::1;13273:48:::0;::::1;;;::::0;::::1;::::0;;;13299:21;13273:16;:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13243:78;12658:681;7272:1;-1:-1:-1::0;7284:6:0;:14;;-1:-1:-1;;;;7284:14:0;;;12586:753::o;9936:161::-;-1:-1:-1;;;;;10034:13:0;;10001:4;10034:13;;;:8;:13;;;;;;10001:4;;10034:13;;10033:14;:31;;;;-1:-1:-1;;;;;;;;;10051:13:0;;;;;:8;:13;;;;;;;;;9936:161::o;12045:531::-;12137:7;12157:11;12183:5;12179:84;;;-1:-1:-1;12197:6:0;;12179:84;;;12215:6;12211:52;;;-1:-1:-1;12230:7:0;;12211:52;;;-1:-1:-1;6547:1:0;12211:52;12279:3;12286:1;12279:8;12275:28;;12297:6;12290:13;;;;;12275:28;12315:17;6597:5;12335:12;12344:3;12335:6;:12;:::i;:::-;:30;;;;:::i;:::-;12315:50;-1:-1:-1;12380:13:0;;12376:157;;12428:4;12412:22;;;;:7;:22;;;;;:35;;12438:9;;12412:22;:35;;12438:9;;12412:35;:::i;:::-;;;;-1:-1:-1;;12467:40:0;;368:25:1;;;12490:4:0;;-1:-1:-1;;;;;12467:40:0;;;;;356:2:1;341:18;12467:40:0;;;;;;;12376:157;12550:18;12559:9;12550:6;:18;:::i;:::-;12543:25;12045:531;-1:-1:-1;;;;;;;12045:531:0:o;596:548:1:-;708:4;737:2;766;755:9;748:21;798:6;792:13;841:6;836:2;825:9;821:18;814:34;866:1;876:140;890:6;887:1;884:13;876:140;;;985:14;;;981:23;;975:30;951:17;;;970:2;947:26;940:66;905:10;;876:140;;;880:3;1065:1;1060:2;1051:6;1040:9;1036:22;1032:31;1025:42;1135:2;1128;1124:7;1119:2;1111:6;1107:15;1103:29;1092:9;1088:45;1084:54;1076:62;;;;596:548;;;;:::o;1149:131::-;-1:-1:-1;;;;;1224:31:1;;1214:42;;1204:70;;1270:1;1267;1260:12;1285:315;1353:6;1361;1414:2;1402:9;1393:7;1389:23;1385:32;1382:52;;;1430:1;1427;1420:12;1382:52;1469:9;1456:23;1488:31;1513:5;1488:31;:::i;:::-;1538:5;1590:2;1575:18;;;;1562:32;;-1:-1:-1;;;1285:315:1:o;1605:180::-;1664:6;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;-1:-1:-1;1756:23:1;;1605:180;-1:-1:-1;1605:180:1:o;1790:456::-;1867:6;1875;1883;1936:2;1924:9;1915:7;1911:23;1907:32;1904:52;;;1952:1;1949;1942:12;1904:52;1991:9;1978:23;2010:31;2035:5;2010:31;:::i;:::-;2060:5;-1:-1:-1;2117:2:1;2102:18;;2089:32;2130:33;2089:32;2130:33;:::i;:::-;1790:456;;2182:7;;-1:-1:-1;;;2236:2:1;2221:18;;;;2208:32;;1790:456::o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2917:388::-;2985:6;2993;3046:2;3034:9;3025:7;3021:23;3017:32;3014:52;;;3062:1;3059;3052:12;3014:52;3101:9;3088:23;3120:31;3145:5;3120:31;:::i;:::-;3170:5;-1:-1:-1;3227:2:1;3212:18;;3199:32;3240:33;3199:32;3240:33;:::i;:::-;3292:7;3282:17;;;2917:388;;;;;:::o;3310:127::-;3371:10;3366:3;3362:20;3359:1;3352:31;3402:4;3399:1;3392:15;3426:4;3423:1;3416:15;3442:217;3482:1;3508;3498:132;;3552:10;3547:3;3543:20;3540:1;3533:31;3587:4;3584:1;3577:15;3615:4;3612:1;3605:15;3498:132;-1:-1:-1;3644:9:1;;3442:217::o;3664:356::-;3866:2;3848:21;;;3885:18;;;3878:30;3944:34;3939:2;3924:18;;3917:62;4011:2;3996:18;;3664:356::o;4719:168::-;4792:9;;;4823;;4840:15;;;4834:22;;4820:37;4810:71;;4861:18;;:::i;4892:128::-;4959:9;;;4980:11;;;4977:37;;;4994:18;;:::i;7703:125::-;7768:9;;;7789:10;;;7786:36;;;7802:18;;:::i;8310:127::-;8371:10;8366:3;8362:20;8359:1;8352:31;8402:4;8399:1;8392:15;8426:4;8423:1;8416:15;8442:251;8512:6;8565:2;8553:9;8544:7;8540:23;8536:32;8533:52;;;8581:1;8578;8571:12;8533:52;8613:9;8607:16;8632:31;8657:5;8632:31;:::i;8698:980::-;8960:4;9008:3;8997:9;8993:19;9039:6;9028:9;9021:25;9065:2;9103:6;9098:2;9087:9;9083:18;9076:34;9146:3;9141:2;9130:9;9126:18;9119:31;9170:6;9205;9199:13;9236:6;9228;9221:22;9274:3;9263:9;9259:19;9252:26;;9313:2;9305:6;9301:15;9287:29;;9334:1;9344:195;9358:6;9355:1;9352:13;9344:195;;;9423:13;;-1:-1:-1;;;;;9419:39:1;9407:52;;9514:15;;;;9479:12;;;;9455:1;9373:9;9344:195;;;-1:-1:-1;;;;;;;9595:32:1;;;;9590:2;9575:18;;9568:60;-1:-1:-1;;;9659:3:1;9644:19;9637:35;9556:3;8698:980;-1:-1:-1;;;8698:980:1:o

Swarm Source

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