ETH Price: $3,314.55 (+0.21%)
Gas: 11 Gwei

Token

Aqua Unicorn (AUNI)
 

Overview

Max Total Supply

10,000,000 AUNI

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
241,496.922296088 AUNI

Value
$0.00
0xa6d215697923cca24a32ee1aa054c47eb6e4de57
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:
AquaUnicorn

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/AquaUnicornERC

// Twitter : https://twitter.com/AquaUnicornERC

/*

🔥 Upcoming fair launch 🦄 AquaUnicorn  ERC 🦄!

👉 TG:          https://t.me/AquaunicornERC

🔥Fair Launch Soon

✅ mobile App, mint NFT & game
✅ CMC & CG FastTrack
✅ SAFU,AUDIT & KYC 
✅ LIQUIDITY LOCK FOR 29Days
✅ TIER 1 EXCHANGE LISTING IN 1 MONTH
✅LOW TAX

*/

// 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;
        AQ[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier AQU() {
        require(isAQU(msg.sender), "!AQU"); _;
    }

    function isAQU(address adr) public view returns (bool) {
        return AQ[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 AquaUnicorn is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Aqua Unicorn"; 
    string private constant _symbol = "AUNI"; 
    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 = 10000000 * 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 = 1;  

    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(0x37e9e19116e62b370e91069C118379692e11c260);
    address payable private _marketingWalletAddress = payable(0x37e9e19116e62b370e91069C118379692e11c260);
 
    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 * 25/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(!AQ[from] && !AQ[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 ChangesFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public AQU
     {
        _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":"ChangesFee","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":"isAQU","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"}]

608060405262000019662386f26fc100006000196200040b565b620000279060001962000438565b600755600060098190556001600a819055600b829055600c819055600e829055600f819055601091909155601155601380547337e9e19116e62b370e91069c118379692e11c2606001600160a01b031991821681179092556014805490911690911790556016805462ffffff60a01b19166201000160a01b1790556064620000b8662386f26fc10000600462000454565b620000c491906200046e565b6017556064620000dd662386f26fc10000600562000454565b620000e991906200046e565b60185561271062000103662386f26fc10000601962000454565b6200010f91906200046e565b6019553480156200011f57600080fd5b50600080546001600160a01b03191633908117825580825260026020526040808320805460ff1916600117905551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000219919062000485565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028d919062000485565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000301919062000485565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600660209081526040808320805460ff199081166001908117909255308552828520805482168317905560135486168552828520805482168317905560145490951684528184208054861682179055737a250d5630b4cf539739df2c5dacb4c659f2488d84527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b48054909516179093559151662386f26fc10000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004b7565b634e487b7160e01b600052601260045260246000fd5b6000826200041d576200041d620003f5565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200044e576200044e62000422565b92915050565b80820281158282048414176200044e576200044e62000422565b600082620004805762000480620003f5565b500490565b6000602082840312156200049857600080fd5b81516001600160a01b0381168114620004b057600080fd5b9392505050565b61160a80620004c76000396000f3fe60806040526004361061012e5760003560e01c80634b2acb00116100ab5780638da5cb5b1161006f5780638da5cb5b146103545780638f9a55c01461037257806395d89b4114610388578063a9059cbb146103b5578063c3c8cd80146103d5578063dd62ed3e146103ea57600080fd5b80634b2acb00146102d25780636fc3eaec146102f457806370a0823114610309578063715018a6146103295780637d1db4a51461033e57600080fd5b806323b872dd116100f257806323b872dd146102275780632e9fbec5146102475780632fd689e314610280578063313ce5671461029657806349bd5a5e146102b257600080fd5b806306fdde031461013a578063095ea7b31461018157806313114a9d146101b15780631694505e146101d557806318160ddd1461020d57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600c81526b20b8bab0902ab734b1b7b93760a11b60208201525b604051610178919061133b565b60405180910390f35b34801561018d57600080fd5b506101a161019c36600461139e565b610430565b6040519015158152602001610178565b3480156101bd57600080fd5b506101c7600d5481565b604051908152602001610178565b3480156101e157600080fd5b506015546101f5906001600160a01b031681565b6040516001600160a01b039091168152602001610178565b34801561021957600080fd5b50662386f26fc100006101c7565b34801561023357600080fd5b506101a16102423660046113ca565b610447565b34801561025357600080fd5b506101a161026236600461140b565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561028c57600080fd5b506101c760195481565b3480156102a257600080fd5b5060405160098152602001610178565b3480156102be57600080fd5b506016546101f5906001600160a01b031681565b3480156102de57600080fd5b506102f26102ed366004611428565b6104b0565b005b34801561030057600080fd5b506102f261053e565b34801561031557600080fd5b506101c761032436600461140b565b610589565b34801561033557600080fd5b506102f26105ab565b34801561034a57600080fd5b506101c760175481565b34801561036057600080fd5b506000546001600160a01b03166101f5565b34801561037e57600080fd5b506101c760185481565b34801561039457600080fd5b5060408051808201909152600481526341554e4960e01b602082015261016b565b3480156103c157600080fd5b506101a16103d036600461139e565b61064f565b3480156103e157600080fd5b506102f261065c565b3480156103f657600080fd5b506101c761040536600461145a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600061043d3384846106b0565b5060015b92915050565b60006104548484846107d4565b6104a684336104a1856040518060600160405280602881526020016115ad602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610c0f565b6106b0565b5060019392505050565b3360009081526002602052604090205460ff166105015760405162461bcd60e51b81526004016104f8906020808252600490820152632141515560e01b604082015260600190565b60405180910390fd5b6009849055600b839055600a829055600c819055808261052185876114a9565b61052b91906114a9565b61053591906114a9565b600d5550505050565b6013546001600160a01b0316336001600160a01b0316148061057357506014546001600160a01b0316336001600160a01b0316145b61057c57600080fd5b4761058681610c49565b50565b6001600160a01b03811660009081526003602052604081205461044190610cd2565b6000546001600160a01b031633146106055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061043d3384846107d4565b6013546001600160a01b0316336001600160a01b0316148061069157506014546001600160a01b0316336001600160a01b0316145b61069a57600080fd5b60006106a530610589565b905061058681610d56565b6001600160a01b0383166107125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f8565b6001600160a01b0382166107735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f8565b6001600160a01b03821661089a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f8565b600081116108fc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f8565b6000546001600160a01b0384811691161480159061092857506000546001600160a01b03838116911614155b15610b0357601654600160a01b900460ff166109c1576000546001600160a01b038481169116146109c15760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104f8565b6001600160a01b03831660009081526002602052604090205460ff16158015610a0357506001600160a01b03821660009081526002602052604090205460ff16155b15610a3b57601654600160a01b900460ff16610a3b5760405162461bcd60e51b815260206004820152600060248201526044016104f8565b6000610a4630610589565b60195490915081108015908190610a675750601654600160a81b900460ff16155b8015610a8157506016546001600160a01b03868116911614155b8015610a965750601654600160b01b900460ff165b8015610abb57506001600160a01b03851660009081526006602052604090205460ff16155b8015610ae057506001600160a01b03841660009081526006602052604090205460ff16155b15610b0057610aee82610d56565b478015610afe57610afe47610c49565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610b4557506001600160a01b03831660009081526006602052604090205460ff165b80610b7757506016546001600160a01b03858116911614801590610b7757506016546001600160a01b03848116911614155b15610b8457506000610bfe565b6016546001600160a01b038581169116148015610baf57506015546001600160a01b03848116911614155b15610bc157600954600e55600a54600f555b6016546001600160a01b038481169116148015610bec57506015546001600160a01b03858116911614155b15610bfe57600b54600e55600c54600f555b610c09848484610ed0565b50505050565b60008184841115610c335760405162461bcd60e51b81526004016104f8919061133b565b506000610c4084866114bc565b95945050505050565b6013546001600160a01b03166108fc610c63836002610ee0565b6040518115909202916000818181858888f19350505050158015610c8b573d6000803e3d6000fd5b506014546001600160a01b03166108fc610ca6836002610ee0565b6040518115909202916000818181858888f19350505050158015610cce573d6000803e3d6000fd5b5050565b6000600754821115610d395760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f8565b6000610d43610f22565b9050610d4f8382610ee0565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9e57610d9e6114cf565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b91906114e5565b81600181518110610e2e57610e2e6114cf565b6001600160a01b039283166020918202929092010152601554610e5491309116846106b0565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e8d908590600090869030904290600401611502565b600060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b610edb838383610f45565b505050565b6000610d4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061103c565b6000806000610f2f61106a565b9092509050610f3e8282610ee0565b9250505090565b600080600080600080610f57876110a8565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150610f899087611105565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054610fb89086611147565b6001600160a01b038916600090815260036020526040902055610fda816111a6565b610fe484836111f0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161102991815260200190565b60405180910390a3505050505050505050565b6000818361105d5760405162461bcd60e51b81526004016104f8919061133b565b506000610c408486611573565b6007546000908190662386f26fc100006110848282610ee0565b82101561109f57505060075492662386f26fc1000092509050565b90939092509050565b60008060008060008060008060006110c58a600e54600f54611214565b92509250925060006110d5610f22565b905060008060006110e88e878787611269565b919e509c509a509598509396509194505050505091939550919395565b6000610d4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c0f565b60008061115483856114a9565b905083811015610d4f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f8565b60006111b0610f22565b905060006111be83836112b9565b306000908152600360205260409020549091506111db9082611147565b30600090815260036020526040902055505050565b6007546111fd9083611105565b60075560085461120d9082611147565b6008555050565b600080808061122e606461122889896112b9565b90610ee0565b9050600061124160646112288a896112b9565b90506000611259826112538b86611105565b90611105565b9992985090965090945050505050565b600080808061127888866112b9565b9050600061128688876112b9565b9050600061129488886112b9565b905060006112a6826112538686611105565b939b939a50919850919650505050505050565b6000826000036112cb57506000610441565b60006112d78385611595565b9050826112e48583611573565b14610d4f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f8565b600060208083528351808285015260005b818110156113685785810183015185820160400152820161134c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058657600080fd5b600080604083850312156113b157600080fd5b82356113bc81611389565b946020939093013593505050565b6000806000606084860312156113df57600080fd5b83356113ea81611389565b925060208401356113fa81611389565b929592945050506040919091013590565b60006020828403121561141d57600080fd5b8135610d4f81611389565b6000806000806080858703121561143e57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561146d57600080fd5b823561147881611389565b9150602083013561148881611389565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044157610441611493565b8181038181111561044157610441611493565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114f757600080fd5b8151610d4f81611389565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115525784516001600160a01b03168352938301939183019160010161152d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261159057634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104415761044161149356fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122052822f45cfed86d1ecac3724dac5697117d8318b882cf781a708877568deb62064736f6c63430008110033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80634b2acb00116100ab5780638da5cb5b1161006f5780638da5cb5b146103545780638f9a55c01461037257806395d89b4114610388578063a9059cbb146103b5578063c3c8cd80146103d5578063dd62ed3e146103ea57600080fd5b80634b2acb00146102d25780636fc3eaec146102f457806370a0823114610309578063715018a6146103295780637d1db4a51461033e57600080fd5b806323b872dd116100f257806323b872dd146102275780632e9fbec5146102475780632fd689e314610280578063313ce5671461029657806349bd5a5e146102b257600080fd5b806306fdde031461013a578063095ea7b31461018157806313114a9d146101b15780631694505e146101d557806318160ddd1461020d57600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5060408051808201909152600c81526b20b8bab0902ab734b1b7b93760a11b60208201525b604051610178919061133b565b60405180910390f35b34801561018d57600080fd5b506101a161019c36600461139e565b610430565b6040519015158152602001610178565b3480156101bd57600080fd5b506101c7600d5481565b604051908152602001610178565b3480156101e157600080fd5b506015546101f5906001600160a01b031681565b6040516001600160a01b039091168152602001610178565b34801561021957600080fd5b50662386f26fc100006101c7565b34801561023357600080fd5b506101a16102423660046113ca565b610447565b34801561025357600080fd5b506101a161026236600461140b565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561028c57600080fd5b506101c760195481565b3480156102a257600080fd5b5060405160098152602001610178565b3480156102be57600080fd5b506016546101f5906001600160a01b031681565b3480156102de57600080fd5b506102f26102ed366004611428565b6104b0565b005b34801561030057600080fd5b506102f261053e565b34801561031557600080fd5b506101c761032436600461140b565b610589565b34801561033557600080fd5b506102f26105ab565b34801561034a57600080fd5b506101c760175481565b34801561036057600080fd5b506000546001600160a01b03166101f5565b34801561037e57600080fd5b506101c760185481565b34801561039457600080fd5b5060408051808201909152600481526341554e4960e01b602082015261016b565b3480156103c157600080fd5b506101a16103d036600461139e565b61064f565b3480156103e157600080fd5b506102f261065c565b3480156103f657600080fd5b506101c761040536600461145a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600061043d3384846106b0565b5060015b92915050565b60006104548484846107d4565b6104a684336104a1856040518060600160405280602881526020016115ad602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610c0f565b6106b0565b5060019392505050565b3360009081526002602052604090205460ff166105015760405162461bcd60e51b81526004016104f8906020808252600490820152632141515560e01b604082015260600190565b60405180910390fd5b6009849055600b839055600a829055600c819055808261052185876114a9565b61052b91906114a9565b61053591906114a9565b600d5550505050565b6013546001600160a01b0316336001600160a01b0316148061057357506014546001600160a01b0316336001600160a01b0316145b61057c57600080fd5b4761058681610c49565b50565b6001600160a01b03811660009081526003602052604081205461044190610cd2565b6000546001600160a01b031633146106055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061043d3384846107d4565b6013546001600160a01b0316336001600160a01b0316148061069157506014546001600160a01b0316336001600160a01b0316145b61069a57600080fd5b60006106a530610589565b905061058681610d56565b6001600160a01b0383166107125760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f8565b6001600160a01b0382166107735760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f8565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f8565b6001600160a01b03821661089a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f8565b600081116108fc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f8565b6000546001600160a01b0384811691161480159061092857506000546001600160a01b03838116911614155b15610b0357601654600160a01b900460ff166109c1576000546001600160a01b038481169116146109c15760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104f8565b6001600160a01b03831660009081526002602052604090205460ff16158015610a0357506001600160a01b03821660009081526002602052604090205460ff16155b15610a3b57601654600160a01b900460ff16610a3b5760405162461bcd60e51b815260206004820152600060248201526044016104f8565b6000610a4630610589565b60195490915081108015908190610a675750601654600160a81b900460ff16155b8015610a8157506016546001600160a01b03868116911614155b8015610a965750601654600160b01b900460ff165b8015610abb57506001600160a01b03851660009081526006602052604090205460ff16155b8015610ae057506001600160a01b03841660009081526006602052604090205460ff16155b15610b0057610aee82610d56565b478015610afe57610afe47610c49565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610b4557506001600160a01b03831660009081526006602052604090205460ff165b80610b7757506016546001600160a01b03858116911614801590610b7757506016546001600160a01b03848116911614155b15610b8457506000610bfe565b6016546001600160a01b038581169116148015610baf57506015546001600160a01b03848116911614155b15610bc157600954600e55600a54600f555b6016546001600160a01b038481169116148015610bec57506015546001600160a01b03858116911614155b15610bfe57600b54600e55600c54600f555b610c09848484610ed0565b50505050565b60008184841115610c335760405162461bcd60e51b81526004016104f8919061133b565b506000610c4084866114bc565b95945050505050565b6013546001600160a01b03166108fc610c63836002610ee0565b6040518115909202916000818181858888f19350505050158015610c8b573d6000803e3d6000fd5b506014546001600160a01b03166108fc610ca6836002610ee0565b6040518115909202916000818181858888f19350505050158015610cce573d6000803e3d6000fd5b5050565b6000600754821115610d395760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104f8565b6000610d43610f22565b9050610d4f8382610ee0565b9392505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610d9e57610d9e6114cf565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b91906114e5565b81600181518110610e2e57610e2e6114cf565b6001600160a01b039283166020918202929092010152601554610e5491309116846106b0565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e8d908590600090869030904290600401611502565b600060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b610edb838383610f45565b505050565b6000610d4f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061103c565b6000806000610f2f61106a565b9092509050610f3e8282610ee0565b9250505090565b600080600080600080610f57876110a8565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150610f899087611105565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054610fb89086611147565b6001600160a01b038916600090815260036020526040902055610fda816111a6565b610fe484836111f0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161102991815260200190565b60405180910390a3505050505050505050565b6000818361105d5760405162461bcd60e51b81526004016104f8919061133b565b506000610c408486611573565b6007546000908190662386f26fc100006110848282610ee0565b82101561109f57505060075492662386f26fc1000092509050565b90939092509050565b60008060008060008060008060006110c58a600e54600f54611214565b92509250925060006110d5610f22565b905060008060006110e88e878787611269565b919e509c509a509598509396509194505050505091939550919395565b6000610d4f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c0f565b60008061115483856114a9565b905083811015610d4f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f8565b60006111b0610f22565b905060006111be83836112b9565b306000908152600360205260409020549091506111db9082611147565b30600090815260036020526040902055505050565b6007546111fd9083611105565b60075560085461120d9082611147565b6008555050565b600080808061122e606461122889896112b9565b90610ee0565b9050600061124160646112288a896112b9565b90506000611259826112538b86611105565b90611105565b9992985090965090945050505050565b600080808061127888866112b9565b9050600061128688876112b9565b9050600061129488886112b9565b905060006112a6826112538686611105565b939b939a50919850919650505050505050565b6000826000036112cb57506000610441565b60006112d78385611595565b9050826112e48583611573565b14610d4f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f8565b600060208083528351808285015260005b818110156113685785810183015185820160400152820161134c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461058657600080fd5b600080604083850312156113b157600080fd5b82356113bc81611389565b946020939093013593505050565b6000806000606084860312156113df57600080fd5b83356113ea81611389565b925060208401356113fa81611389565b929592945050506040919091013590565b60006020828403121561141d57600080fd5b8135610d4f81611389565b6000806000806080858703121561143e57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561146d57600080fd5b823561147881611389565b9150602083013561148881611389565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044157610441611493565b8181038181111561044157610441611493565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156114f757600080fd5b8151610d4f81611389565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115525784516001600160a01b03168352938301939183019160010161152d565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261159057634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104415761044161149356fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122052822f45cfed86d1ecac3724dac5697117d8318b882cf781a708877568deb62064736f6c63430008110033

Deployed Bytecode Sourcemap

4504:11753:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7158:83;;;;;;;;;;-1:-1:-1;7228:5:0;;;;;;;;;;;;-1:-1:-1;;;7228:5:0;;;;7158:83;;;;;;;:::i;:::-;;;;;;;;8090:193;;;;;;;;;;-1:-1:-1;8090:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8090:193:0;1023:187:1;5371:24:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5371:24:0;1215:177:1;5892:41:0;;;;;;;;;;-1:-1:-1;5892:41:0;;;;-1:-1:-1;;;;;5892:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;5892:41:0;1397:229:1;7438:95:0;;;;;;;;;;-1:-1:-1;5065:16:0;7438:95;;8292:446;;;;;;;;;;-1:-1:-1;8292:446:0;;;;;:::i;:::-;;:::i;2133:88::-;;;;;;;;;;-1:-1:-1;2133:88:0;;;;;:::i;:::-;-1:-1:-1;;;;;2206:7:0;2182:4;2206:7;;;:2;:7;;;;;;;;;2133:88;6198:55;;;;;;;;;;;;;;;;7346:83;;;;;;;;;;-1:-1:-1;7346:83:0;;4736:1;2486:36:1;;2474:2;2459:18;7346:83:0;2344:184:1;5940:28:0;;;;;;;;;;-1:-1:-1;5940:28:0;;;;-1:-1:-1;;;;;5940:28:0;;;15905:349;;;;;;;;;;-1:-1:-1;15905:349:0;;;;;:::i;:::-;;:::i;:::-;;12328:247;;;;;;;;;;;;;:::i;7542:138::-;;;;;;;;;;-1:-1:-1;7542:138:0;;;;;:::i;:::-;;:::i;2230:148::-;;;;;;;;;;;;;:::i;6091:45::-;;;;;;;;;;;;;;;;1839:79;;;;;;;;;;-1:-1:-1;1877:7:0;1904:6;-1:-1:-1;;;;;1904:6:0;1839:79;;6143:47;;;;;;;;;;;;;;;;7250:87;;;;;;;;;;-1:-1:-1;7322:7:0;;;;;;;;;;;;-1:-1:-1;;;7322:7:0;;;;7250:87;;7689:199;;;;;;;;;;-1:-1:-1;7689:199:0;;;;;:::i;:::-;;:::i;12071:248::-;;;;;;;;;;;;;:::i;7897:184::-;;;;;;;;;;-1:-1:-1;7897:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8046:18:0;;;8014:7;8046:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7897:184;8090:193;8192:4;8214:39;594:10;8237:7;8246:6;8214:8;:39::i;:::-;-1:-1:-1;8271:4:0;8090:193;;;;;:::o;8292:446::-;8424:4;8441:36;8451:6;8459:9;8470:6;8441:9;:36::i;:::-;8488:220;8511:6;594:10;8559:138;8615:6;8559:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8559:19:0;;;;;;:11;:19;;;;;;;;594:10;8559:33;;;;;;;;;;:37;:138::i;:::-;8488:8;:220::i;:::-;-1:-1:-1;8726:4:0;8292:446;;;;;:::o;15905:349::-;2094:10;2182:4;2206:7;;;:2;:7;;;;;;;;2080:34;;;;-1:-1:-1;;;2080: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;2080:34:0;;;;;;;;;16043:9:::1;:25:::0;;;16079:10:::1;:27:::0;;;16117:9:::1;:23:::0;;;16151:10:::1;:25:::0;;;16164:12;16129:11;16199:22:::1;16092:14:::0;16055:13;16199:22:::1;:::i;:::-;:34;;;;:::i;:::-;:47;;;;:::i;:::-;16187:9;:59:::0;-1:-1:-1;;;;15905:349:0:o;12328:247::-;12394:25;;-1:-1:-1;;;;;12394:25:0;594:10;-1:-1:-1;;;;;12378:41:0;;:84;;;-1:-1:-1;12439:23:0;;-1:-1:-1;;;;;12439:23:0;594:10;-1:-1:-1;;;;;12423:39:0;;12378:84;12370:93;;;;;;12503:21;12535:32;12503:21;12535:12;:32::i;:::-;12359:216;12328:247::o;7542:138::-;-1:-1:-1;;;;;7655:16:0;;7608:7;7655:16;;;:7;:16;;;;;;7635:37;;:19;:37::i;2230:148::-;1967:6;;-1:-1:-1;;;;;1967:6:0;594:10;1967:22;1959:67;;;;-1:-1:-1;;;1959:67:0;;4320:2:1;1959:67:0;;;4302:21:1;;;4339:18;;;4332:30;4398:34;4378:18;;;4371:62;4450:18;;1959:67:0;4118:356:1;1959:67:0;2337:1:::1;2321:6:::0;;2300:40:::1;::::0;-1:-1:-1;;;;;2321:6:0;;::::1;::::0;2300:40:::1;::::0;2337:1;;2300:40:::1;2368:1;2351:19:::0;;-1:-1:-1;;;;;;2351:19:0::1;::::0;;2230:148::o;7689:199::-;7794:4;7816:42;594:10;7840:9;7851:6;7816:9;:42::i;12071:248::-;12137:25;;-1:-1:-1;;;;;12137:25:0;594:10;-1:-1:-1;;;;;12121:41:0;;:84;;;-1:-1:-1;12182:23:0;;-1:-1:-1;;;;;12182:23:0;594:10;-1:-1:-1;;;;;12166:39:0;;12121:84;12113:93;;;;;;12217:23;12243:24;12261:4;12243:9;:24::i;:::-;12217:50;;12278:33;12295:15;12278:16;:33::i;9078:369::-;-1:-1:-1;;;;;9205:19:0;;9197:68;;;;-1:-1:-1;;;9197:68:0;;4681:2:1;9197: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;;9197:68:0;4479:400:1;9197:68:0;-1:-1:-1;;;;;9284:21:0;;9276:68;;;;-1:-1:-1;;;9276:68:0;;5086:2:1;9276: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;;9276:68:0;4884:398:1;9276:68:0;-1:-1:-1;;;;;9355:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9407:32;;1361:25:1;;;9407:32:0;;1334:18:1;9407:32:0;;;;;;;9078:369;;;:::o;9456:1933::-;-1:-1:-1;;;;;9578:18:0;;9570:68;;;;-1:-1:-1;;;9570:68:0;;5489:2:1;9570: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;;9570:68:0;5287:401:1;9570:68:0;-1:-1:-1;;;;;9657:16:0;;9649:64;;;;-1:-1:-1;;;9649:64:0;;5895:2:1;9649: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;;9649:64:0;5693:399:1;9649:64:0;9741:1;9732:6;:10;9724:64;;;;-1:-1:-1;;;9724:64:0;;6299:2:1;9724: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;;9724:64:0;6097:405:1;9724:64:0;1877:7;1904:6;-1:-1:-1;;;;;9806:15:0;;;1904:6;;9806:15;;;;:32;;-1:-1:-1;1877:7:0;1904:6;-1:-1:-1;;;;;9825:13:0;;;1904:6;;9825:13;;9806:32;9802:880;;;9896:11;;-1:-1:-1;;;9896:11:0;;;;9891:144;;1877:7;1904:6;-1:-1:-1;;;;;9936:15:0;;;1904:6;;9936:15;9928:91;;;;-1:-1:-1;;;9928:91:0;;6709:2:1;9928: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;;9928:91:0;6507:427:1;9928:91:0;-1:-1:-1;;;;;10051:8:0;;;;;;:2;:8;;;;;;;;10050:9;:20;;;;-1:-1:-1;;;;;;10064:6:0;;;;;;:2;:6;;;;;;;;10063:7;10050:20;10047:75;;;10094:11;;-1:-1:-1;;;10094:11:0;;;;10086:24;;;;-1:-1:-1;;;10086:24:0;;7141:2:1;10086:24:0;;;7123:21:1;-1:-1:-1;7160:18:1;;;7153:29;7199:18;;10086:24:0;6939:284:1;10086:24:0;10139:28;10170:24;10188:4;10170:9;:24::i;:::-;10248:19;;10139:55;;-1:-1:-1;10224:43:0;;;;;;;10289:18;;-1:-1:-1;10301:6:0;;-1:-1:-1;;;10301:6:0;;;;10300:7;10289:18;:43;;;;-1:-1:-1;10319:13:0;;-1:-1:-1;;;;;10311:21:0;;;10319:13;;10311:21;;10289:43;:58;;;;-1:-1:-1;10336:11:0;;-1:-1:-1;;;10336:11:0;;;;10289:58;:87;;;;-1:-1:-1;;;;;;10352:24:0;;;;;;:18;:24;;;;;;;;10351:25;10289:87;:114;;;;-1:-1:-1;;;;;;10381:22:0;;;;;;:18;:22;;;;;;;;10380:23;10289:114;10285:386;;;10424:38;10441:20;10424:16;:38::i;:::-;10510:21;10554:22;;10550:106;;10601:35;10614:21;10601:12;:35::i;:::-;10405:266;10285:386;9840:842;;9802:880;-1:-1:-1;;;;;10760:24:0;;10695:12;10760:24;;;:18;:24;;;;;;10710:4;;10760:24;;;:50;;-1:-1:-1;;;;;;10788:22:0;;;;;;:18;:22;;;;;;;;10760:50;10759:102;;;-1:-1:-1;10824:13:0;;-1:-1:-1;;;;;10816:21:0;;;10824:13;;10816:21;;;;:44;;-1:-1:-1;10847:13:0;;-1:-1:-1;;;;;10841:19:0;;;10847:13;;10841:19;;10816:44;10755:581;;;-1:-1:-1;10888:5:0;10755:581;;;10972:13;;-1:-1:-1;;;;;10964:21:0;;;10972:13;;10964:21;:55;;;;-1:-1:-1;11003:15:0;;-1:-1:-1;;;;;10989:30:0;;;11003:15;;10989:30;;10964:55;10961:154;;;11052:9;;11040;:21;11090:9;;11080:7;:19;10961:154;11175:13;;-1:-1:-1;;;;;11169:19:0;;;11175:13;;11169:19;:55;;;;-1:-1:-1;11208:15:0;;-1:-1:-1;;;;;11192:32:0;;;11208:15;;11192:32;;11169:55;11165:157;;;11257:10;;11245:9;:22;11296:10;;11286:7;:20;11165:157;11349:32;11364:4;11370:2;11374:6;11349:14;:32::i;:::-;9559:1830;9456:1933;;;:::o;2746:224::-;2866:7;2902:12;2894:6;;;;2886:29;;;;-1:-1:-1;;;2886:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2926:9:0;2938:5;2942:1;2938;:5;:::i;:::-;2926:17;2746:224;-1:-1:-1;;;;;2746:224:0:o;11890:172::-;11947:25;;-1:-1:-1;;;;;11947:25:0;:49;11982:13;:6;11993:1;11982:10;:13::i;:::-;11947:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12007:23:0;;-1:-1:-1;;;;;12007:23:0;:47;12040:13;:6;12051:1;12040:10;:13::i;:::-;12007:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11890:172;:::o;8747:323::-;8842:7;8900;;8889;:18;;8867:110;;;;-1:-1:-1;;;8867:110:0;;7563:2:1;8867: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;;8867:110:0;7361:406:1;8867:110:0;8988:19;9010:10;:8;:10::i;:::-;8988:32;-1:-1:-1;9038:24:0;:7;8988:32;9038:11;:24::i;:::-;9031:31;8747:323;-1:-1:-1;;;8747:323:0:o;11398:483::-;6349:6;:13;;-1:-1:-1;;;;6349:13:0;-1:-1:-1;;;6349:13:0;;;11500:16:::1;::::0;;11514:1:::1;11500:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11500:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11500:16:0::1;11476:40;;11545:4;11527;11532:1;11527:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11527:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11571:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11571:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11527:7;;11571:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11561:4;11566:1;11561:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11561:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11636:15:::1;::::0;11604:62:::1;::::0;11621:4:::1;::::0;11636:15:::1;11654:11:::0;11604:8:::1;:62::i;:::-;11677:15;::::0;:196:::1;::::0;-1:-1:-1;;;11677:196:0;;-1:-1:-1;;;;;11677:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11758:11;;11677:15:::1;::::0;11800:4;;11827::::1;::::0;11847:15:::1;::::0;11677:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6385:6:0;:14;;-1:-1:-1;;;;6385:14:0;;;-1:-1:-1;;;;11398:483:0:o;12584:180::-;12712:44;12730:6;12738:9;12749:6;12712:17;:44::i;:::-;12584:180;;;:::o;3234:132::-;3292:7;3319:39;3323:1;3326;3319:39;;;;;;;;;;;;;;;;;:3;:39::i;15460:167::-;15502:7;15523:15;15540;15559:19;:17;:19::i;:::-;15522:56;;-1:-1:-1;15522:56:0;-1:-1:-1;15599:20:0;15522:56;;15599:11;:20::i;:::-;15592:27;;;;15460:167;:::o;12773:610::-;12920:15;12950:23;12988:12;13015:23;13053:12;13080:13;13107:19;13118:7;13107:10;:19::i;:::-;-1:-1:-1;;;;;13155:15:0;;;;;;:7;:15;;;;;;12905:221;;-1:-1:-1;12905:221:0;;-1:-1:-1;12905:221:0;;-1:-1:-1;12905:221:0;-1:-1:-1;12905:221:0;-1:-1:-1;12905:221:0;-1:-1:-1;13155:28:0;;12905:221;13155:19;:28::i;:::-;-1:-1:-1;;;;;13137:15:0;;;;;;;:7;:15;;;;;;:46;;;;13215:18;;;;;;;:39;;13238:15;13215:22;:39::i;:::-;-1:-1:-1;;;;;13194:18:0;;;;;;:7;:18;;;;;:60;13265:16;13275:5;13265:9;:16::i;:::-;13292:23;13304:4;13310;13292:11;:23::i;:::-;13348:9;-1:-1:-1;;;;;13331:44:0;13340:6;-1:-1:-1;;;;;13331:44:0;;13359:15;13331:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;13331:44:0;;;;;;;;12894:489;;;;;;12773:610;;;:::o;3375:223::-;3495:7;3530:12;3523:5;3515:28;;;;-1:-1:-1;;;3515:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3554:9:0;3566:5;3570:1;3566;:5;:::i;15636:260::-;15734:7;;15687;;;;5065:16;15802:20;15734:7;5065:16;15802:11;:20::i;:::-;15792:7;:30;15788:61;;;-1:-1:-1;;15832:7:0;;;5065:16;;-1:-1:-1;15636:260:0;-1:-1:-1;15636:260:0:o;15788:61::-;15871:7;;15880;;-1:-1:-1;15636:260:0;-1:-1:-1;15636:260:0:o;13806:618::-;13906:7;13928;13950;13972;13994;14016;14052:23;14077:12;14091:13;14121:40;14133:7;14142:9;;14153:7;;14121:11;:40::i;:::-;14051:110;;;;;;14172:19;14194:10;:8;:10::i;:::-;14172:32;;14216:15;14233:23;14258:12;14287:46;14299:7;14308:4;14314:5;14321:11;14287;:46::i;:::-;14215:118;;-1:-1:-1;14215:118:0;-1:-1:-1;14215:118:0;-1:-1:-1;14387:15:0;;-1:-1:-1;14404:4:0;;-1:-1:-1;14410:5:0;;-1:-1:-1;;;;;13806:618:0;;;;;;;:::o;2601:136::-;2659:7;2686:43;2690:1;2693;2686:43;;;;;;;;;;;;;;;;;:3;:43::i;2413:179::-;2471:7;;2503:5;2507:1;2503;:5;:::i;:::-;2491:17;;2532:1;2527;:6;;2519:46;;;;-1:-1:-1;;;2519:46:0;;9701:2:1;2519:46:0;;;9683:21:1;9740:2;9720:18;;;9713:30;9779:29;9759:18;;;9752:57;9826:18;;2519:46:0;9499:351:1;13392:211:0;13445:19;13467:10;:8;:10::i;:::-;13445:32;-1:-1:-1;13488:13:0;13504:22;:5;13445:32;13504:9;:22::i;:::-;13578:4;13562:22;;;;:7;:22;;;;;;13488:38;;-1:-1:-1;13562:33:0;;13488:38;13562:26;:33::i;:::-;13553:4;13537:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13392:211:0:o;13612:147::-;13690:7;;:17;;13702:4;13690:11;:17::i;:::-;13680:7;:27;13731:10;;:20;;13746:4;13731:14;:20::i;:::-;13718:10;:33;-1:-1:-1;;13612:147:0:o;14433:472::-;14602:7;;;;14696:30;14722:3;14696:21;:7;14708:8;14696:11;:21::i;:::-;:25;;:30::i;:::-;14681:45;-1:-1:-1;14737:13:0;14753:28;14777:3;14753:19;:7;14765:6;14753:11;:19::i;:28::-;14737:44;-1:-1:-1;14792:23:0;14818:28;14737:44;14818:17;:7;14830:4;14818:11;:17::i;:::-;:21;;:28::i;:::-;14792:54;14885:4;;-1:-1:-1;14891:5:0;;-1:-1:-1;14433:472:0;;-1:-1:-1;;;;;14433:472:0:o;14914:537::-;15108:7;;;;15205:24;:7;15217:11;15205;:24::i;:::-;15187:42;-1:-1:-1;15240:12:0;15255:21;:4;15264:11;15255:8;:21::i;:::-;15240:36;-1:-1:-1;15287:13:0;15303:22;:5;15313:11;15303:9;:22::i;:::-;15287:38;-1:-1:-1;15336:23:0;15362:28;15287:38;15362:17;:7;15374:4;15362:11;:17::i;:28::-;15412:7;;;;-1:-1:-1;15438:4:0;;-1:-1:-1;14914:537:0;;-1:-1:-1;;;;;;;14914:537:0:o;2979:246::-;3037:7;3061:1;3066;3061:6;3057:47;;-1:-1:-1;3091:1:0;3084:8;;3057:47;3114:9;3126:5;3130:1;3126;:5;:::i;:::-;3114:17;-1:-1:-1;3159:1:0;3150:5;3154:1;3114:17;3150:5;:::i;:::-;:10;3142:56;;;;-1:-1:-1;;;3142:56:0;;10230:2:1;3142: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;;3142:56:0;10028:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2092:247::-;2151:6;2204:2;2192:9;2183:7;2179:23;2175:32;2172:52;;;2220:1;2217;2210:12;2172:52;2259:9;2246:23;2278:31;2303:5;2278:31;:::i;2741:385::-;2827:6;2835;2843;2851;2904:3;2892:9;2883:7;2879:23;2875:33;2872:53;;;2921:1;2918;2911:12;2872:53;-1:-1:-1;;2944:23:1;;;3014:2;2999:18;;2986:32;;-1:-1:-1;3065:2:1;3050:18;;3037:32;;3116:2;3101:18;3088:32;;-1:-1:-1;2741:385:1;-1:-1:-1;2741:385:1:o;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://52822f45cfed86d1ecac3724dac5697117d8318b882cf781a708877568deb620
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.