ETH Price: $3,243.39 (+0.20%)

Token

HISOMU (LURK)
 

Overview

Max Total Supply

1,000,000,000 LURK

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,506,898.272326129 LURK

Value
$0.00
0x2313ca97164f1bf41a03694742dbec737c48b132
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:
HisomuETH

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-25
*/

// Telegram : https://telegram.me/HisomuETH

// Twitter : https://twitter.com/HisomuETH

// Medium : https://medium.com/@HisomuETH

/*

The $HISOMU team is building MEV:TRAP, a lightweight proxy system that can be easily plugged-in into any token’s source 
code before they deploy!

Let's hunt Front Run Bots 🚀

Listing On Uniswapv2 🦄

*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.17;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
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 is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        HM[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping (address => bool) internal HM;
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    modifier HME() {
        require(isHME(msg.sender), "!HME"); _;
    }

    function isHME(address adr) public view returns (bool) {
        return HM[adr];
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract HisomuETH is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "HISOMU"; 
    string private constant _symbol = "LURK"; 
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 1000000000 * 10**9; 
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
 
    //Buy Fee
    uint256 private _feeOnBuy = 0;  
    uint256 private _taxOnBuy = 1;   
 
    //Sell Fee
    uint256 private _feeOnSell = 0; 
    uint256 private _taxOnSell = 2;  

    uint256 public totalFees;
 
    //Original Fee
    uint256 private _redisFee = _feeOnSell;
    uint256 private _taxFee = _taxOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => uint256) private cooldown;
 
    address payable private _developmentWalletAddress = payable(0x2e35d9B2a015A86BBB1F7b37dd789C4CC311F6ff);
    address payable private _marketingWalletAddress = payable(0x2e35d9B2a015A86BBB1F7b37dd789C4CC311F6ff);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal * 4/100;
    uint256 public _maxWalletSize = _tTotal * 5/100; 
    uint256 public _swapTokensAtAmount = _tTotal * 20/10000; 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentWalletAddress] = true;
        _isExcludedFromFee[_marketingWalletAddress] = true;
        _isExcludedFromFee[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
 
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    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 override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    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
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

        if(!HM[from] && !HM[to]){
            require(tradingOpen, "");
        }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _feeOnBuy;
                _taxFee = _taxOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _feeOnSell;
                _taxFee = _taxOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _developmentWalletAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentWalletAddress || _msgSender() == _marketingWalletAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentWalletAddress || _msgSender() == _marketingWalletAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        _transferStandard(sender, recipient, amount);
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
 
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
 
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
 
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
 
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
 
        return (rSupply, tSupply);
    }
 
    function NewFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public HME
     {
        _feeOnBuy = redisFeeOnBuy;
        _feeOnSell = redisFeeOnSell;
        _taxOnBuy = taxFeeOnBuy;
        _taxOnSell = taxFeeOnSell;
        totalFees = _feeOnBuy + _feeOnSell + _taxOnBuy + _taxOnSell;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"NewFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isHME","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a670de0b6b3a764000060001962000410565b62000028906000196200043d565b600755600060098190556001600a55600b8190556002600c819055600e829055600f81905560109190915560115560138054732e35d9b2a015a86bbb1f7b37dd789c4cc311f6ff6001600160a01b031991821681179092556014805490911690911790556016805462ffffff60a01b19166201000160a01b1790556064620000ba670de0b6b3a7640000600462000459565b620000c6919062000473565b6017556064620000e0670de0b6b3a7640000600562000459565b620000ec919062000473565b60185561271062000107670de0b6b3a7640000601462000459565b62000113919062000473565b6019553480156200012357600080fd5b50600080546001600160a01b03191633908117825580825260026020526040808320805460ff1916600117905551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021d91906200048a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029191906200048a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030591906200048a565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600660209081526040808320805460ff199081166001908117909255308552828520805482168317905560135486168552828520805482168317905560145490951684528184208054861682179055737a250d5630b4cf539739df2c5dacb4c659f2488d84527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b48054909516179093559151670de0b6b3a7640000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004bc565b634e487b7160e01b600052601260045260246000fd5b600082620004225762000422620003fa565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000453576200045362000427565b92915050565b808202811582820484141762000453576200045362000427565b600082620004855762000485620003fa565b500490565b6000602082840312156200049d57600080fd5b81516001600160a01b0381168114620004b557600080fd5b9392505050565b61160780620004cc6000396000f3fe60806040526004361061012e5760003560e01c806349bd5a5e116100ab5780638da5cb5b1161006f5780638da5cb5b1461034f5780638f9a55c01461036d57806395d89b4114610383578063a9059cbb146103b0578063c3c8cd80146103d0578063dd62ed3e146103e557600080fd5b806349bd5a5e146102cf5780636fc3eaec146102ef57806370a0823114610304578063715018a6146103245780637d1db4a51461033957600080fd5b806318160ddd116100f257806318160ddd1461022957806323b872dd146102445780632bd62993146102645780632fd689e31461029d578063313ce567146102b357600080fd5b80630272af611461013a57806306fdde031461015c578063095ea7b31461019d57806313114a9d146101cd5780631694505e146101f157600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015a610155366004611338565b61042b565b005b34801561016857600080fd5b506040805180820190915260068152654849534f4d5560d01b60208201525b604051610194919061136a565b60405180910390f35b3480156101a957600080fd5b506101bd6101b83660046113cd565b6104b9565b6040519015158152602001610194565b3480156101d957600080fd5b506101e3600d5481565b604051908152602001610194565b3480156101fd57600080fd5b50601554610211906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b34801561023557600080fd5b50670de0b6b3a76400006101e3565b34801561025057600080fd5b506101bd61025f3660046113f9565b6104d0565b34801561027057600080fd5b506101bd61027f36600461143a565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156102a957600080fd5b506101e360195481565b3480156102bf57600080fd5b5060405160098152602001610194565b3480156102db57600080fd5b50601654610211906001600160a01b031681565b3480156102fb57600080fd5b5061015a610539565b34801561031057600080fd5b506101e361031f36600461143a565b610584565b34801561033057600080fd5b5061015a6105a6565b34801561034557600080fd5b506101e360175481565b34801561035b57600080fd5b506000546001600160a01b0316610211565b34801561037957600080fd5b506101e360185481565b34801561038f57600080fd5b506040805180820190915260048152634c55524b60e01b6020820152610187565b3480156103bc57600080fd5b506101bd6103cb3660046113cd565b61064a565b3480156103dc57600080fd5b5061015a610657565b3480156103f157600080fd5b506101e3610400366004611457565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3360009081526002602052604090205460ff1661047c5760405162461bcd60e51b81526004016104739060208082526004908201526321484d4560e01b604082015260600190565b60405180910390fd5b6009849055600b839055600a829055600c819055808261049c85876114a6565b6104a691906114a6565b6104b091906114a6565b600d5550505050565b60006104c63384846106ab565b5060015b92915050565b60006104dd8484846107cf565b61052f843361052a856040518060600160405280602881526020016115aa602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610c0a565b6106ab565b5060019392505050565b6013546001600160a01b0316336001600160a01b0316148061056e57506014546001600160a01b0316336001600160a01b0316145b61057757600080fd5b4761058181610c44565b50565b6001600160a01b0381166000908152600360205260408120546104ca90610ccd565b6000546001600160a01b031633146106005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610473565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104c63384846107cf565b6013546001600160a01b0316336001600160a01b0316148061068c57506014546001600160a01b0316336001600160a01b0316145b61069557600080fd5b60006106a030610584565b905061058181610d51565b6001600160a01b03831661070d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b03821661076e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b0382166108955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b600081116108f75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b6000546001600160a01b0384811691161480159061092357506000546001600160a01b03838116911614155b15610afe57601654600160a01b900460ff166109bc576000546001600160a01b038481169116146109bc5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610473565b6001600160a01b03831660009081526002602052604090205460ff161580156109fe57506001600160a01b03821660009081526002602052604090205460ff16155b15610a3657601654600160a01b900460ff16610a365760405162461bcd60e51b81526020600482015260006024820152604401610473565b6000610a4130610584565b60195490915081108015908190610a625750601654600160a81b900460ff16155b8015610a7c57506016546001600160a01b03868116911614155b8015610a915750601654600160b01b900460ff165b8015610ab657506001600160a01b03851660009081526006602052604090205460ff16155b8015610adb57506001600160a01b03841660009081526006602052604090205460ff16155b15610afb57610ae982610d51565b478015610af957610af947610c44565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610b4057506001600160a01b03831660009081526006602052604090205460ff165b80610b7257506016546001600160a01b03858116911614801590610b7257506016546001600160a01b03848116911614155b15610b7f57506000610bf9565b6016546001600160a01b038581169116148015610baa57506015546001600160a01b03848116911614155b15610bbc57600954600e55600a54600f555b6016546001600160a01b038481169116148015610be757506015546001600160a01b03858116911614155b15610bf957600b54600e55600c54600f555b610c04848484610ecb565b50505050565b60008184841115610c2e5760405162461bcd60e51b8152600401610473919061136a565b506000610c3b84866114b9565b95945050505050565b6013546001600160a01b03166108fc610c5e836002610edb565b6040518115909202916000818181858888f19350505050158015610c86573d6000803e3d6000fd5b506014546001600160a01b03166108fc610ca1836002610edb565b6040518115909202916000818181858888f19350505050158015610cc9573d6000803e3d6000fd5b5050565b6000600754821115610d345760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610473565b6000610d3e610f1d565b9050610d4a8382610edb565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9957610d996114cc565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1691906114e2565b81600181518110610e2957610e296114cc565b6001600160a01b039283166020918202929092010152601554610e4f91309116846106ab565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e889085906000908690309042906004016114ff565b600060405180830381600087803b158015610ea257600080fd5b505af1158015610eb6573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b610ed6838383610f40565b505050565b6000610d4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611037565b6000806000610f2a611065565b9092509050610f398282610edb565b9250505090565b600080600080600080610f52876110a5565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150610f849087611102565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054610fb39086611144565b6001600160a01b038916600090815260036020526040902055610fd5816111a3565b610fdf84836111ed565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161102491815260200190565b60405180910390a3505050505050505050565b600081836110585760405162461bcd60e51b8152600401610473919061136a565b506000610c3b8486611570565b6007546000908190670de0b6b3a76400006110808282610edb565b82101561109c57505060075492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006110c28a600e54600f54611211565b92509250925060006110d2610f1d565b905060008060006110e58e878787611266565b919e509c509a509598509396509194505050505091939550919395565b6000610d4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c0a565b60008061115183856114a6565b905083811015610d4a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b60006111ad610f1d565b905060006111bb83836112b6565b306000908152600360205260409020549091506111d89082611144565b30600090815260036020526040902055505050565b6007546111fa9083611102565b60075560085461120a9082611144565b6008555050565b600080808061122b606461122589896112b6565b90610edb565b9050600061123e60646112258a896112b6565b90506000611256826112508b86611102565b90611102565b9992985090965090945050505050565b600080808061127588866112b6565b9050600061128388876112b6565b9050600061129188886112b6565b905060006112a3826112508686611102565b939b939a50919850919650505050505050565b6000826000036112c8575060006104ca565b60006112d48385611592565b9050826112e18583611570565b14610d4a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b6000806000806080858703121561134e57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156113975785810183015185820160400152820161137b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058157600080fd5b600080604083850312156113e057600080fd5b82356113eb816113b8565b946020939093013593505050565b60008060006060848603121561140e57600080fd5b8335611419816113b8565b92506020840135611429816113b8565b929592945050506040919091013590565b60006020828403121561144c57600080fd5b8135610d4a816113b8565b6000806040838503121561146a57600080fd5b8235611475816113b8565b91506020830135611485816113b8565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104ca576104ca611490565b818103818111156104ca576104ca611490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114f457600080fd5b8151610d4a816113b8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561154f5784516001600160a01b03168352938301939183019160010161152a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261158d57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104ca576104ca61149056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bcddc18aecc27a66215b14e2c160847dc21884e37aca30f61de6add6cfd1d2e964736f6c63430008110033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806349bd5a5e116100ab5780638da5cb5b1161006f5780638da5cb5b1461034f5780638f9a55c01461036d57806395d89b4114610383578063a9059cbb146103b0578063c3c8cd80146103d0578063dd62ed3e146103e557600080fd5b806349bd5a5e146102cf5780636fc3eaec146102ef57806370a0823114610304578063715018a6146103245780637d1db4a51461033957600080fd5b806318160ddd116100f257806318160ddd1461022957806323b872dd146102445780632bd62993146102645780632fd689e31461029d578063313ce567146102b357600080fd5b80630272af611461013a57806306fdde031461015c578063095ea7b31461019d57806313114a9d146101cd5780631694505e146101f157600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015a610155366004611338565b61042b565b005b34801561016857600080fd5b506040805180820190915260068152654849534f4d5560d01b60208201525b604051610194919061136a565b60405180910390f35b3480156101a957600080fd5b506101bd6101b83660046113cd565b6104b9565b6040519015158152602001610194565b3480156101d957600080fd5b506101e3600d5481565b604051908152602001610194565b3480156101fd57600080fd5b50601554610211906001600160a01b031681565b6040516001600160a01b039091168152602001610194565b34801561023557600080fd5b50670de0b6b3a76400006101e3565b34801561025057600080fd5b506101bd61025f3660046113f9565b6104d0565b34801561027057600080fd5b506101bd61027f36600461143a565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156102a957600080fd5b506101e360195481565b3480156102bf57600080fd5b5060405160098152602001610194565b3480156102db57600080fd5b50601654610211906001600160a01b031681565b3480156102fb57600080fd5b5061015a610539565b34801561031057600080fd5b506101e361031f36600461143a565b610584565b34801561033057600080fd5b5061015a6105a6565b34801561034557600080fd5b506101e360175481565b34801561035b57600080fd5b506000546001600160a01b0316610211565b34801561037957600080fd5b506101e360185481565b34801561038f57600080fd5b506040805180820190915260048152634c55524b60e01b6020820152610187565b3480156103bc57600080fd5b506101bd6103cb3660046113cd565b61064a565b3480156103dc57600080fd5b5061015a610657565b3480156103f157600080fd5b506101e3610400366004611457565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3360009081526002602052604090205460ff1661047c5760405162461bcd60e51b81526004016104739060208082526004908201526321484d4560e01b604082015260600190565b60405180910390fd5b6009849055600b839055600a829055600c819055808261049c85876114a6565b6104a691906114a6565b6104b091906114a6565b600d5550505050565b60006104c63384846106ab565b5060015b92915050565b60006104dd8484846107cf565b61052f843361052a856040518060600160405280602881526020016115aa602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610c0a565b6106ab565b5060019392505050565b6013546001600160a01b0316336001600160a01b0316148061056e57506014546001600160a01b0316336001600160a01b0316145b61057757600080fd5b4761058181610c44565b50565b6001600160a01b0381166000908152600360205260408120546104ca90610ccd565b6000546001600160a01b031633146106005760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610473565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104c63384846107cf565b6013546001600160a01b0316336001600160a01b0316148061068c57506014546001600160a01b0316336001600160a01b0316145b61069557600080fd5b60006106a030610584565b905061058181610d51565b6001600160a01b03831661070d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b03821661076e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b0382166108955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b600081116108f75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b6000546001600160a01b0384811691161480159061092357506000546001600160a01b03838116911614155b15610afe57601654600160a01b900460ff166109bc576000546001600160a01b038481169116146109bc5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610473565b6001600160a01b03831660009081526002602052604090205460ff161580156109fe57506001600160a01b03821660009081526002602052604090205460ff16155b15610a3657601654600160a01b900460ff16610a365760405162461bcd60e51b81526020600482015260006024820152604401610473565b6000610a4130610584565b60195490915081108015908190610a625750601654600160a81b900460ff16155b8015610a7c57506016546001600160a01b03868116911614155b8015610a915750601654600160b01b900460ff165b8015610ab657506001600160a01b03851660009081526006602052604090205460ff16155b8015610adb57506001600160a01b03841660009081526006602052604090205460ff16155b15610afb57610ae982610d51565b478015610af957610af947610c44565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610b4057506001600160a01b03831660009081526006602052604090205460ff165b80610b7257506016546001600160a01b03858116911614801590610b7257506016546001600160a01b03848116911614155b15610b7f57506000610bf9565b6016546001600160a01b038581169116148015610baa57506015546001600160a01b03848116911614155b15610bbc57600954600e55600a54600f555b6016546001600160a01b038481169116148015610be757506015546001600160a01b03858116911614155b15610bf957600b54600e55600c54600f555b610c04848484610ecb565b50505050565b60008184841115610c2e5760405162461bcd60e51b8152600401610473919061136a565b506000610c3b84866114b9565b95945050505050565b6013546001600160a01b03166108fc610c5e836002610edb565b6040518115909202916000818181858888f19350505050158015610c86573d6000803e3d6000fd5b506014546001600160a01b03166108fc610ca1836002610edb565b6040518115909202916000818181858888f19350505050158015610cc9573d6000803e3d6000fd5b5050565b6000600754821115610d345760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610473565b6000610d3e610f1d565b9050610d4a8382610edb565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9957610d996114cc565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1691906114e2565b81600181518110610e2957610e296114cc565b6001600160a01b039283166020918202929092010152601554610e4f91309116846106ab565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e889085906000908690309042906004016114ff565b600060405180830381600087803b158015610ea257600080fd5b505af1158015610eb6573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b610ed6838383610f40565b505050565b6000610d4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611037565b6000806000610f2a611065565b9092509050610f398282610edb565b9250505090565b600080600080600080610f52876110a5565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150610f849087611102565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054610fb39086611144565b6001600160a01b038916600090815260036020526040902055610fd5816111a3565b610fdf84836111ed565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161102491815260200190565b60405180910390a3505050505050505050565b600081836110585760405162461bcd60e51b8152600401610473919061136a565b506000610c3b8486611570565b6007546000908190670de0b6b3a76400006110808282610edb565b82101561109c57505060075492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006110c28a600e54600f54611211565b92509250925060006110d2610f1d565b905060008060006110e58e878787611266565b919e509c509a509598509396509194505050505091939550919395565b6000610d4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c0a565b60008061115183856114a6565b905083811015610d4a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b60006111ad610f1d565b905060006111bb83836112b6565b306000908152600360205260409020549091506111d89082611144565b30600090815260036020526040902055505050565b6007546111fa9083611102565b60075560085461120a9082611144565b6008555050565b600080808061122b606461122589896112b6565b90610edb565b9050600061123e60646112258a896112b6565b90506000611256826112508b86611102565b90611102565b9992985090965090945050505050565b600080808061127588866112b6565b9050600061128388876112b6565b9050600061129188886112b6565b905060006112a3826112508686611102565b939b939a50919850919650505050505050565b6000826000036112c8575060006104ca565b60006112d48385611592565b9050826112e18583611570565b14610d4a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b6000806000806080858703121561134e57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b818110156113975785810183015185820160400152820161137b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058157600080fd5b600080604083850312156113e057600080fd5b82356113eb816113b8565b946020939093013593505050565b60008060006060848603121561140e57600080fd5b8335611419816113b8565b92506020840135611429816113b8565b929592945050506040919091013590565b60006020828403121561144c57600080fd5b8135610d4a816113b8565b6000806040838503121561146a57600080fd5b8235611475816113b8565b91506020830135611485816113b8565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104ca576104ca611490565b818103818111156104ca576104ca611490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114f457600080fd5b8151610d4a816113b8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561154f5784516001600160a01b03168352938301939183019160010161152a565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261158d57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104ca576104ca61149056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bcddc18aecc27a66215b14e2c160847dc21884e37aca30f61de6add6cfd1d2e964736f6c63430008110033

Deployed Bytecode Sourcemap

4461:11743:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15856:345;;;;;;;;;;-1:-1:-1;15856:345:0;;;;;:::i;:::-;;:::i;:::-;;7109:83;;;;;;;;;;-1:-1:-1;7179:5:0;;;;;;;;;;;;-1:-1:-1;;;7179:5:0;;;;7109:83;;;;;;;:::i;:::-;;;;;;;;8041:193;;;;;;;;;;-1:-1:-1;8041:193:0;;;;;:::i;:::-;;:::i;:::-;;;1578:14:1;;1571:22;1553:41;;1541:2;1526:18;8041:193:0;1413:187:1;5322:24:0;;;;;;;;;;;;;;;;;;;1751:25:1;;;1739:2;1724:18;5322:24:0;1605:177:1;5843:41:0;;;;;;;;;;-1:-1:-1;5843:41:0;;;;-1:-1:-1;;;;;5843:41:0;;;;;;-1:-1:-1;;;;;1977:32:1;;;1959:51;;1947:2;1932:18;5843:41:0;1787:229:1;7389:95:0;;;;;;;;;;-1:-1:-1;5014:18:0;7389:95;;8243:446;;;;;;;;;;-1:-1:-1;8243:446:0;;;;;:::i;:::-;;:::i;2090:88::-;;;;;;;;;;-1:-1:-1;2090:88:0;;;;;:::i;:::-;-1:-1:-1;;;;;2163:7:0;2139:4;2163:7;;;:2;:7;;;;;;;;;2090:88;6149:55;;;;;;;;;;;;;;;;7297:83;;;;;;;;;;-1:-1:-1;7297:83:0;;4685:1;2876:36:1;;2864:2;2849:18;7297:83:0;2734:184:1;5891:28:0;;;;;;;;;;-1:-1:-1;5891:28:0;;;;-1:-1:-1;;;;;5891:28:0;;;12279:247;;;;;;;;;;;;;:::i;7493:138::-;;;;;;;;;;-1:-1:-1;7493:138:0;;;;;:::i;:::-;;:::i;2187:148::-;;;;;;;;;;;;;:::i;6042:45::-;;;;;;;;;;;;;;;;1796:79;;;;;;;;;;-1:-1:-1;1834:7:0;1861:6;-1:-1:-1;;;;;1861:6:0;1796:79;;6094:47;;;;;;;;;;;;;;;;7201:87;;;;;;;;;;-1:-1:-1;7273:7:0;;;;;;;;;;;;-1:-1:-1;;;7273:7:0;;;;7201:87;;7640:199;;;;;;;;;;-1:-1:-1;7640:199:0;;;;;:::i;:::-;;:::i;12022:248::-;;;;;;;;;;;;;:::i;7848:184::-;;;;;;;;;;-1:-1:-1;7848:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7997:18:0;;;7965:7;7997:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7848:184;15856:345;2051:10;2139:4;2163:7;;;:2;:7;;;;;;;;2037:34;;;;-1:-1:-1;;;2037:34:0;;;;;;3726:2:1;3708:21;;;3765:1;3745:18;;;3738:29;-1:-1:-1;;;3798:2:1;3783:18;;3776:34;3842:2;3827:18;;3524:327;2037:34:0;;;;;;;;;15990:9:::1;:25:::0;;;16026:10:::1;:27:::0;;;16064:9:::1;:23:::0;;;16098:10:::1;:25:::0;;;16111:12;16076:11;16146:22:::1;16039:14:::0;16002:13;16146:22:::1;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;16134:9;:59:::0;-1:-1:-1;;;;15856:345:0:o;8041:193::-;8143:4;8165:39;551:10;8188:7;8197:6;8165:8;:39::i;:::-;-1:-1:-1;8222:4:0;8041:193;;;;;:::o;8243:446::-;8375:4;8392:36;8402:6;8410:9;8421:6;8392:9;:36::i;:::-;8439:220;8462:6;551:10;8510:138;8566:6;8510:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8510:19:0;;;;;;:11;:19;;;;;;;;551:10;8510:33;;;;;;;;;;:37;:138::i;:::-;8439:8;:220::i;:::-;-1:-1:-1;8677:4:0;8243:446;;;;;:::o;12279:247::-;12345:25;;-1:-1:-1;;;;;12345:25:0;551:10;-1:-1:-1;;;;;12329:41:0;;:84;;;-1:-1:-1;12390:23:0;;-1:-1:-1;;;;;12390:23:0;551:10;-1:-1:-1;;;;;12374:39:0;;12329:84;12321:93;;;;;;12454:21;12486:32;12454:21;12486:12;:32::i;:::-;12310:216;12279:247::o;7493:138::-;-1:-1:-1;;;;;7606:16:0;;7559:7;7606:16;;;:7;:16;;;;;;7586:37;;:19;:37::i;2187:148::-;1924:6;;-1:-1:-1;;;;;1924:6:0;551:10;1924:22;1916:67;;;;-1:-1:-1;;;1916:67:0;;4320:2:1;1916:67:0;;;4302:21:1;;;4339:18;;;4332:30;4398:34;4378:18;;;4371:62;4450:18;;1916:67:0;4118:356:1;1916:67:0;2294:1:::1;2278:6:::0;;2257:40:::1;::::0;-1:-1:-1;;;;;2278:6:0;;::::1;::::0;2257:40:::1;::::0;2294:1;;2257:40:::1;2325:1;2308:19:::0;;-1:-1:-1;;;;;;2308:19:0::1;::::0;;2187:148::o;7640:199::-;7745:4;7767:42;551:10;7791:9;7802:6;7767:9;:42::i;12022:248::-;12088:25;;-1:-1:-1;;;;;12088:25:0;551:10;-1:-1:-1;;;;;12072:41:0;;:84;;;-1:-1:-1;12133:23:0;;-1:-1:-1;;;;;12133:23:0;551:10;-1:-1:-1;;;;;12117:39:0;;12072:84;12064:93;;;;;;12168:23;12194:24;12212:4;12194:9;:24::i;:::-;12168:50;;12229:33;12246:15;12229:16;:33::i;9029:369::-;-1:-1:-1;;;;;9156:19:0;;9148:68;;;;-1:-1:-1;;;9148:68:0;;4681:2:1;9148:68:0;;;4663:21:1;4720:2;4700:18;;;4693:30;4759:34;4739:18;;;4732:62;-1:-1:-1;;;4810:18:1;;;4803:34;4854:19;;9148:68:0;4479:400:1;9148:68:0;-1:-1:-1;;;;;9235:21:0;;9227:68;;;;-1:-1:-1;;;9227:68:0;;5086:2:1;9227:68:0;;;5068:21:1;5125:2;5105:18;;;5098:30;5164:34;5144:18;;;5137:62;-1:-1:-1;;;5215:18:1;;;5208:32;5257:19;;9227:68:0;4884:398:1;9227:68:0;-1:-1:-1;;;;;9306:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9358:32;;1751:25:1;;;9358:32:0;;1724:18:1;9358:32:0;;;;;;;9029:369;;;:::o;9407:1933::-;-1:-1:-1;;;;;9529:18:0;;9521:68;;;;-1:-1:-1;;;9521:68:0;;5489:2:1;9521:68:0;;;5471:21:1;5528:2;5508:18;;;5501:30;5567:34;5547:18;;;5540:62;-1:-1:-1;;;5618:18:1;;;5611:35;5663:19;;9521:68:0;5287:401:1;9521:68:0;-1:-1:-1;;;;;9608:16:0;;9600:64;;;;-1:-1:-1;;;9600:64:0;;5895:2:1;9600:64:0;;;5877:21:1;5934:2;5914:18;;;5907:30;5973:34;5953:18;;;5946:62;-1:-1:-1;;;6024:18:1;;;6017:33;6067:19;;9600:64:0;5693:399:1;9600:64:0;9692:1;9683:6;:10;9675:64;;;;-1:-1:-1;;;9675:64:0;;6299:2:1;9675:64:0;;;6281:21:1;6338:2;6318:18;;;6311:30;6377:34;6357:18;;;6350:62;-1:-1:-1;;;6428:18:1;;;6421:39;6477:19;;9675:64:0;6097:405:1;9675:64:0;1834:7;1861:6;-1:-1:-1;;;;;9757:15:0;;;1861:6;;9757:15;;;;:32;;-1:-1:-1;1834:7:0;1861:6;-1:-1:-1;;;;;9776:13:0;;;1861:6;;9776:13;;9757:32;9753:880;;;9847:11;;-1:-1:-1;;;9847:11:0;;;;9842:144;;1834:7;1861:6;-1:-1:-1;;;;;9887:15:0;;;1861:6;;9887:15;9879:91;;;;-1:-1:-1;;;9879:91:0;;6709:2:1;9879:91:0;;;6691:21:1;6748:2;6728:18;;;6721:30;6787:34;6767:18;;;6760:62;6858:33;6838:18;;;6831:61;6909:19;;9879:91:0;6507:427:1;9879:91:0;-1:-1:-1;;;;;10002:8:0;;;;;;:2;:8;;;;;;;;10001:9;:20;;;;-1:-1:-1;;;;;;10015:6:0;;;;;;:2;:6;;;;;;;;10014:7;10001:20;9998:75;;;10045:11;;-1:-1:-1;;;10045:11:0;;;;10037:24;;;;-1:-1:-1;;;10037:24:0;;7141:2:1;10037:24:0;;;7123:21:1;-1:-1:-1;7160:18:1;;;7153:29;7199:18;;10037:24:0;6939:284:1;10037:24:0;10090:28;10121:24;10139:4;10121:9;:24::i;:::-;10199:19;;10090:55;;-1:-1:-1;10175:43:0;;;;;;;10240:18;;-1:-1:-1;10252:6:0;;-1:-1:-1;;;10252:6:0;;;;10251:7;10240:18;:43;;;;-1:-1:-1;10270:13:0;;-1:-1:-1;;;;;10262:21:0;;;10270:13;;10262:21;;10240:43;:58;;;;-1:-1:-1;10287:11:0;;-1:-1:-1;;;10287:11:0;;;;10240:58;:87;;;;-1:-1:-1;;;;;;10303:24:0;;;;;;:18;:24;;;;;;;;10302:25;10240:87;:114;;;;-1:-1:-1;;;;;;10332:22:0;;;;;;:18;:22;;;;;;;;10331:23;10240:114;10236:386;;;10375:38;10392:20;10375:16;:38::i;:::-;10461:21;10505:22;;10501:106;;10552:35;10565:21;10552:12;:35::i;:::-;10356:266;10236:386;9791:842;;9753:880;-1:-1:-1;;;;;10711:24:0;;10646:12;10711:24;;;:18;:24;;;;;;10661:4;;10711:24;;;:50;;-1:-1:-1;;;;;;10739:22:0;;;;;;:18;:22;;;;;;;;10711:50;10710:102;;;-1:-1:-1;10775:13:0;;-1:-1:-1;;;;;10767:21:0;;;10775:13;;10767:21;;;;:44;;-1:-1:-1;10798:13:0;;-1:-1:-1;;;;;10792:19:0;;;10798:13;;10792:19;;10767:44;10706:581;;;-1:-1:-1;10839:5:0;10706:581;;;10923:13;;-1:-1:-1;;;;;10915:21:0;;;10923:13;;10915:21;:55;;;;-1:-1:-1;10954:15:0;;-1:-1:-1;;;;;10940:30:0;;;10954:15;;10940:30;;10915:55;10912:154;;;11003:9;;10991;:21;11041:9;;11031:7;:19;10912:154;11126:13;;-1:-1:-1;;;;;11120:19:0;;;11126:13;;11120:19;:55;;;;-1:-1:-1;11159:15:0;;-1:-1:-1;;;;;11143:32:0;;;11159:15;;11143:32;;11120:55;11116:157;;;11208:10;;11196:9;:22;11247:10;;11237:7;:20;11116:157;11300:32;11315:4;11321:2;11325:6;11300:14;:32::i;:::-;9510:1830;9407:1933;;;:::o;2703:224::-;2823:7;2859:12;2851:6;;;;2843:29;;;;-1:-1:-1;;;2843:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2883:9:0;2895:5;2899:1;2895;:5;:::i;:::-;2883:17;2703:224;-1:-1:-1;;;;;2703:224:0:o;11841:172::-;11898:25;;-1:-1:-1;;;;;11898:25:0;:49;11933:13;:6;11944:1;11933:10;:13::i;:::-;11898:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11958:23:0;;-1:-1:-1;;;;;11958:23:0;:47;11991:13;:6;12002:1;11991:10;:13::i;:::-;11958:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11841:172;:::o;8698:323::-;8793:7;8851;;8840;:18;;8818:110;;;;-1:-1:-1;;;8818:110:0;;7563:2:1;8818:110:0;;;7545:21:1;7602:2;7582:18;;;7575:30;7641:34;7621:18;;;7614:62;-1:-1:-1;;;7692:18:1;;;7685:40;7742:19;;8818:110:0;7361:406:1;8818:110:0;8939:19;8961:10;:8;:10::i;:::-;8939:32;-1:-1:-1;8989:24:0;:7;8939:32;8989:11;:24::i;:::-;8982:31;8698:323;-1:-1:-1;;;8698:323:0:o;11349:483::-;6300:6;:13;;-1:-1:-1;;;;6300:13:0;-1:-1:-1;;;6300:13:0;;;11451:16:::1;::::0;;11465:1:::1;11451:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11451:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11451:16:0::1;11427:40;;11496:4;11478;11483:1;11478:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11478:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11522:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11522:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11478:7;;11522:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11512:4;11517:1;11512:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11512:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11587:15:::1;::::0;11555:62:::1;::::0;11572:4:::1;::::0;11587:15:::1;11605:11:::0;11555:8:::1;:62::i;:::-;11628:15;::::0;:196:::1;::::0;-1:-1:-1;;;11628:196:0;;-1:-1:-1;;;;;11628:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11709:11;;11628:15:::1;::::0;11751:4;;11778::::1;::::0;11798:15:::1;::::0;11628:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6336:6:0;:14;;-1:-1:-1;;;;6336:14:0;;;-1:-1:-1;;;;11349:483:0:o;12535:180::-;12663:44;12681:6;12689:9;12700:6;12663:17;:44::i;:::-;12535:180;;;:::o;3191:132::-;3249:7;3276:39;3280:1;3283;3276:39;;;;;;;;;;;;;;;;;:3;:39::i;15411:167::-;15453:7;15474:15;15491;15510:19;:17;:19::i;:::-;15473:56;;-1:-1:-1;15473:56:0;-1:-1:-1;15550:20:0;15473:56;;15550:11;:20::i;:::-;15543:27;;;;15411:167;:::o;12724:610::-;12871:15;12901:23;12939:12;12966:23;13004:12;13031:13;13058:19;13069:7;13058:10;:19::i;:::-;-1:-1:-1;;;;;13106:15:0;;;;;;:7;:15;;;;;;12856:221;;-1:-1:-1;12856:221:0;;-1:-1:-1;12856:221:0;;-1:-1:-1;12856:221:0;-1:-1:-1;12856:221:0;-1:-1:-1;12856:221:0;-1:-1:-1;13106:28:0;;12856:221;13106:19;:28::i;:::-;-1:-1:-1;;;;;13088:15:0;;;;;;;:7;:15;;;;;;:46;;;;13166:18;;;;;;;:39;;13189:15;13166:22;:39::i;:::-;-1:-1:-1;;;;;13145:18:0;;;;;;:7;:18;;;;;:60;13216:16;13226:5;13216:9;:16::i;:::-;13243:23;13255:4;13261;13243:11;:23::i;:::-;13299:9;-1:-1:-1;;;;;13282:44:0;13291:6;-1:-1:-1;;;;;13282:44:0;;13310:15;13282:44;;;;1751:25:1;;1739:2;1724:18;;1605:177;13282:44:0;;;;;;;;12845:489;;;;;;12724:610;;;:::o;3332:223::-;3452:7;3487:12;3480:5;3472:28;;;;-1:-1:-1;;;3472:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3511:9:0;3523:5;3527:1;3523;:5;:::i;15587:260::-;15685:7;;15638;;;;5014:18;15753:20;15685:7;5014:18;15753:11;:20::i;:::-;15743:7;:30;15739:61;;;-1:-1:-1;;15783:7:0;;;5014:18;;-1:-1:-1;15587:260:0;-1:-1:-1;15587:260:0:o;15739:61::-;15822:7;;15831;;-1:-1:-1;15587:260:0;-1:-1:-1;15587:260:0:o;13757:618::-;13857:7;13879;13901;13923;13945;13967;14003:23;14028:12;14042:13;14072:40;14084:7;14093:9;;14104:7;;14072:11;:40::i;:::-;14002:110;;;;;;14123:19;14145:10;:8;:10::i;:::-;14123:32;;14167:15;14184:23;14209:12;14238:46;14250:7;14259:4;14265:5;14272:11;14238;:46::i;:::-;14166:118;;-1:-1:-1;14166:118:0;-1:-1:-1;14166:118:0;-1:-1:-1;14338:15:0;;-1:-1:-1;14355:4:0;;-1:-1:-1;14361:5:0;;-1:-1:-1;;;;;13757:618:0;;;;;;;:::o;2558:136::-;2616:7;2643:43;2647:1;2650;2643:43;;;;;;;;;;;;;;;;;:3;:43::i;2370:179::-;2428:7;;2460:5;2464:1;2460;:5;:::i;:::-;2448:17;;2489:1;2484;:6;;2476:46;;;;-1:-1:-1;;;2476:46:0;;9701:2:1;2476:46:0;;;9683:21:1;9740:2;9720:18;;;9713:30;9779:29;9759:18;;;9752:57;9826:18;;2476:46:0;9499:351:1;13343:211:0;13396:19;13418:10;:8;:10::i;:::-;13396:32;-1:-1:-1;13439:13:0;13455:22;:5;13396:32;13455:9;:22::i;:::-;13529:4;13513:22;;;;:7;:22;;;;;;13439:38;;-1:-1:-1;13513:33:0;;13439:38;13513:26;:33::i;:::-;13504:4;13488:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13343:211:0:o;13563:147::-;13641:7;;:17;;13653:4;13641:11;:17::i;:::-;13631:7;:27;13682:10;;:20;;13697:4;13682:14;:20::i;:::-;13669:10;:33;-1:-1:-1;;13563:147:0:o;14384:472::-;14553:7;;;;14647:30;14673:3;14647:21;:7;14659:8;14647:11;:21::i;:::-;:25;;:30::i;:::-;14632:45;-1:-1:-1;14688:13:0;14704:28;14728:3;14704:19;:7;14716:6;14704:11;:19::i;:28::-;14688:44;-1:-1:-1;14743:23:0;14769:28;14688:44;14769:17;:7;14781:4;14769:11;:17::i;:::-;:21;;:28::i;:::-;14743:54;14836:4;;-1:-1:-1;14842:5:0;;-1:-1:-1;14384:472:0;;-1:-1:-1;;;;;14384:472:0:o;14865:537::-;15059:7;;;;15156:24;:7;15168:11;15156;:24::i;:::-;15138:42;-1:-1:-1;15191:12:0;15206:21;:4;15215:11;15206:8;:21::i;:::-;15191:36;-1:-1:-1;15238:13:0;15254:22;:5;15264:11;15254:9;:22::i;:::-;15238:38;-1:-1:-1;15287:23:0;15313:28;15238:38;15313:17;:7;15325:4;15313:11;:17::i;:28::-;15363:7;;;;-1:-1:-1;15389:4:0;;-1:-1:-1;14865:537:0;;-1:-1:-1;;;;;;;14865:537:0:o;2936:246::-;2994:7;3018:1;3023;3018:6;3014:47;;-1:-1:-1;3048:1:0;3041:8;;3014:47;3071:9;3083:5;3087:1;3083;:5;:::i;:::-;3071:17;-1:-1:-1;3116:1:0;3107:5;3111:1;3071:17;3107:5;:::i;:::-;:10;3099:56;;;;-1:-1:-1;;;3099:56:0;;10230:2:1;3099:56:0;;;10212:21:1;10269:2;10249:18;;;10242:30;10308:34;10288:18;;;10281:62;-1:-1:-1;;;10359:18:1;;;10352:31;10400:19;;3099:56:0;10028:397:1;14:385;100:6;108;116;124;177:3;165:9;156:7;152:23;148:33;145:53;;;194:1;191;184:12;145:53;-1:-1:-1;;217:23:1;;;287:2;272:18;;259:32;;-1:-1:-1;338:2:1;323:18;;310:32;;389:2;374:18;361:32;;-1:-1:-1;14:385:1;-1:-1:-1;14:385:1:o;404:548::-;516:4;545:2;574;563:9;556:21;606:6;600:13;649:6;644:2;633:9;629:18;622:34;674:1;684:140;698:6;695:1;692:13;684:140;;;793:14;;;789:23;;783:30;759:17;;;778:2;755:26;748:66;713:10;;684:140;;;688:3;873:1;868:2;859:6;848:9;844:22;840:31;833:42;943:2;936;932:7;927:2;919:6;915:15;911:29;900:9;896:45;892:54;884:62;;;;404:548;;;;:::o;957:131::-;-1:-1:-1;;;;;1032:31:1;;1022:42;;1012:70;;1078:1;1075;1068:12;1093:315;1161:6;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;1398:2;1383:18;;;;1370:32;;-1:-1:-1;;;1093:315:1:o;2021:456::-;2098:6;2106;2114;2167:2;2155:9;2146:7;2142:23;2138:32;2135:52;;;2183:1;2180;2173:12;2135:52;2222:9;2209:23;2241:31;2266:5;2241:31;:::i;:::-;2291:5;-1:-1:-1;2348:2:1;2333:18;;2320:32;2361:33;2320:32;2361:33;:::i;:::-;2021:456;;2413:7;;-1:-1:-1;;;2467:2:1;2452:18;;;;2439:32;;2021:456::o;2482:247::-;2541:6;2594:2;2582:9;2573:7;2569:23;2565:32;2562:52;;;2610:1;2607;2600:12;2562:52;2649:9;2636:23;2668:31;2693:5;2668:31;:::i;3131:388::-;3199:6;3207;3260:2;3248:9;3239:7;3235:23;3231:32;3228:52;;;3276:1;3273;3266:12;3228:52;3315:9;3302:23;3334:31;3359:5;3334:31;:::i;:::-;3384:5;-1:-1:-1;3441:2:1;3426:18;;3413:32;3454:33;3413:32;3454:33;:::i;:::-;3506:7;3496:17;;;3131:388;;;;;:::o;3856:127::-;3917:10;3912:3;3908:20;3905:1;3898:31;3948:4;3945:1;3938:15;3972:4;3969:1;3962:15;3988:125;4053:9;;;4074:10;;;4071:36;;;4087:18;;:::i;7228:128::-;7295:9;;;7316:11;;;7313:37;;;7330:18;;:::i;7904:127::-;7965:10;7960:3;7956:20;7953:1;7946:31;7996:4;7993:1;7986:15;8020:4;8017:1;8010:15;8036:251;8106:6;8159:2;8147:9;8138:7;8134:23;8130:32;8127:52;;;8175:1;8172;8165:12;8127:52;8207:9;8201:16;8226:31;8251:5;8226:31;:::i;8292:980::-;8554:4;8602:3;8591:9;8587:19;8633:6;8622:9;8615:25;8659:2;8697:6;8692:2;8681:9;8677:18;8670:34;8740:3;8735:2;8724:9;8720:18;8713:31;8764:6;8799;8793:13;8830:6;8822;8815:22;8868:3;8857:9;8853:19;8846:26;;8907:2;8899:6;8895:15;8881:29;;8928:1;8938:195;8952:6;8949:1;8946:13;8938:195;;;9017:13;;-1:-1:-1;;;;;9013:39:1;9001:52;;9108:15;;;;9073:12;;;;9049:1;8967:9;8938:195;;;-1:-1:-1;;;;;;;9189:32:1;;;;9184:2;9169:18;;9162:60;-1:-1:-1;;;9253:3:1;9238:19;9231:35;9150:3;8292:980;-1:-1:-1;;;8292:980:1:o;9277:217::-;9317:1;9343;9333:132;;9387:10;9382:3;9378:20;9375:1;9368:31;9422:4;9419:1;9412:15;9450:4;9447:1;9440:15;9333:132;-1:-1:-1;9479:9:1;;9277:217::o;9855:168::-;9928:9;;;9959;;9976:15;;;9970:22;;9956:37;9946:71;;9997:18;;:::i

Swarm Source

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