ETH Price: $2,920.40 (-9.89%)
Gas: 27 Gwei

Token

Elon Trump Doge (ETD)
 

Overview

Max Total Supply

1,000,000,000 ETD

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
16.595384997 ETD

Value
$0.00
0x0620955d32e0abd20667ffb604b6a1d19da36aa4
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:
ETD

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-31
*/

/*
    Elon Trump Doge Token

    The three musketeers

    https://t.me/ElonTrumpDogeEntry
*/

pragma solidity 0.8.8;
// SPDX-License-Identifier: UNLICENSED
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);
}

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

interface IUniswapV2Router02 {
    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 ETD is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private constant _name = "Elon Trump Doge";
    string private constant _symbol = "ETD";
    uint8 private constant _decimals = 9;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 50000000 * 10**9;
    uint256 private _maxWalletSize = 50000000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax = 4; // only active during launch

        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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    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()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 1;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _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 setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    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 manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).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);
    }
}

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":"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":[],"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","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"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000428565b6000196200002b91906200048f565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff02191690831515021790555066b1a2bc2ec5000060105566b1a2bc2ec50000601155348015620000a257600080fd5b506000620000b5620003be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000163620003be60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001ba620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020e620003c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004600c8190555062000349620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003b09190620004db565b60405180910390a3620004f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200043582620003ef565b91506200044283620003ef565b925082620004555762000454620003f9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200049c82620003ef565b9150620004a983620003ef565b925082821015620004bf57620004be62000460565b5b828203905092915050565b620004d581620003ef565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b61305280620005086000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600f81526020017f456c6f6e205472756d7020446f67650000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4554440000000000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a91dce539e335ac8a1f9f8df42c32aa507fd5390dda9590a25613e1f85bd358864736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b604051610130919061220b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122c6565b610418565b60405161016d9190612321565b60405180910390f35b34801561018257600080fd5b5061018b610436565b604051610198919061234b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612366565b610446565b6040516101d59190612321565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b60405161020091906123d5565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061241c565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b9190612449565b61064c565b60405161027d919061234b565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612476565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff91906124b2565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a919061220b565b60405180910390f35b34801561033f57600080fd5b5061035a600480360381019061035591906122c6565b6109b8565b6040516103679190612321565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906124cd565b610f9c565b6040516103d2919061234b565b60405180910390f35b60606040518060400160405280600f81526020017f456c6f6e205472756d7020446f67650000000000000000000000000000000000815250905090565b600061042c610425611023565b848461102b565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111f6565b6105148461045f611023565b61050f85604051806060016040528060288152602001612ff560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5611023565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116f99092919063ffffffff16565b61102b565b600190509392505050565b60006009905090565b610530611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b490612559565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b611023565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161175d565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c9565b9050919050565b6106a5611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990612559565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612559565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093190612559565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4554440000000000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5611023565b84846111f6565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17611023565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d81611837565b50565b610a58611023565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612559565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c906125c5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061102b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c0a57600080fd5b505afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906125fa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc91906125fa565b6040518363ffffffff1660e01b8152600401610cf9929190612627565b602060405180830381600087803b158015610d1357600080fd5b505af1158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906125fa565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dd43061064c565b600080610ddf610952565b426040518863ffffffff1660e01b8152600401610e0196959493929190612695565b6060604051808303818588803b158015610e1a57600080fd5b505af1158015610e2e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e53919061270b565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f4692919061275e565b602060405180830381600087803b158015610f6057600080fd5b505af1158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f98919061279c565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110929061283b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611102906128cd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e9919061234b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125d9061295f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cd906129f1565b60405180910390fd5b60008111611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090612a83565b60405180910390fd5b611321610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561138f575061135f610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116d857600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114385750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144157600080fd5b6001600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114fd5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115535750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561156b5750600f60179054906101000a900460ff165b1561160e576010548111156115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612aef565b60405180910390fd5b601154816115c28461064c565b6115cc9190612b3e565b111561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612be0565b60405180910390fd5b5b60006116193061064c565b9050600f60159054906101000a900460ff161580156116865750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561169e5750600f60169054906101000a900460ff165b80156116aa5750600081115b156116d2576116b881611837565b600047905060008111156116d0576116cf4761175d565b5b505b506116e9565b6000600a819055506000600b819055505b6116f4838383611abf565b505050565b6000838311158290611741576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611738919061220b565b60405180910390fd5b50600083856117509190612c00565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117c5573d6000803e3d6000fd5b5050565b6000600854821115611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790612ca6565b60405180910390fd5b600061181a611acf565b905061182f8184611afa90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561186f5761186e612cc6565b5b60405190808252806020026020018201604052801561189d5781602001602082028036833780820191505090505b50905030816000815181106118b5576118b4612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906125fa565b816001815181106119a3576119a2612cf5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a0a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102b565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a6e959493929190612de2565b600060405180830381600087803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611aca838383611b44565b505050565b6000806000611adc611d0f565b91509150611af38183611afa90919063ffffffff16565b9250505090565b6000611b3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d6e565b905092915050565b600080600080600080611b5687611dd1565b955095509550955095509550611bb486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c4985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c9581611ee1565b611c9f8483611f9e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cfc919061234b565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611d43670de0b6b3a7640000600854611afa90919063ffffffff16565b821015611d6157600854670de0b6b3a7640000935093505050611d6a565b81819350935050505b9091565b60008083118290611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac919061220b565b60405180910390fd5b5060008385611dc49190612e6b565b9050809150509392505050565b6000806000806000806000806000611dee8a600a54600b54611fd8565b9250925092506000611dfe611acf565b90506000806000611e118e87878761206e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116f9565b905092915050565b6000808284611e929190612b3e565b905083811015611ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ece90612ee8565b60405180910390fd5b8091505092915050565b6000611eeb611acf565b90506000611f0282846120f790919063ffffffff16565b9050611f5681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e8390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fb382600854611e3990919063ffffffff16565b600881905550611fce81600954611e8390919063ffffffff16565b6009819055505050565b6000806000806120046064611ff6888a6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061202e6064612020888b6120f790919063ffffffff16565b611afa90919063ffffffff16565b9050600061205782612049858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061208785896120f790919063ffffffff16565b9050600061209e86896120f790919063ffffffff16565b905060006120b587896120f790919063ffffffff16565b905060006120de826120d08587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561210a576000905061216c565b600082846121189190612f08565b90508284826121279190612e6b565b14612167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215e90612fd4565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ac578082015181840152602081019050612191565b838111156121bb576000848401525b50505050565b6000601f19601f8301169050919050565b60006121dd82612172565b6121e7818561217d565b93506121f781856020860161218e565b612200816121c1565b840191505092915050565b6000602082019050818103600083015261222581846121d2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061225d82612232565b9050919050565b61226d81612252565b811461227857600080fd5b50565b60008135905061228a81612264565b92915050565b6000819050919050565b6122a381612290565b81146122ae57600080fd5b50565b6000813590506122c08161229a565b92915050565b600080604083850312156122dd576122dc61222d565b5b60006122eb8582860161227b565b92505060206122fc858286016122b1565b9150509250929050565b60008115159050919050565b61231b81612306565b82525050565b60006020820190506123366000830184612312565b92915050565b61234581612290565b82525050565b6000602082019050612360600083018461233c565b92915050565b60008060006060848603121561237f5761237e61222d565b5b600061238d8682870161227b565b935050602061239e8682870161227b565b92505060406123af868287016122b1565b9150509250925092565b600060ff82169050919050565b6123cf816123b9565b82525050565b60006020820190506123ea60008301846123c6565b92915050565b6123f981612306565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000602082840312156124325761243161222d565b5b600061244084828501612407565b91505092915050565b60006020828403121561245f5761245e61222d565b5b600061246d8482850161227b565b91505092915050565b60006020828403121561248c5761248b61222d565b5b600061249a848285016122b1565b91505092915050565b6124ac81612252565b82525050565b60006020820190506124c760008301846124a3565b92915050565b600080604083850312156124e4576124e361222d565b5b60006124f28582860161227b565b92505060206125038582860161227b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061254360208361217d565b915061254e8261250d565b602082019050919050565b6000602082019050818103600083015261257281612536565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006125af60178361217d565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b6000815190506125f481612264565b92915050565b6000602082840312156126105761260f61222d565b5b600061261e848285016125e5565b91505092915050565b600060408201905061263c60008301856124a3565b61264960208301846124a3565b9392505050565b6000819050919050565b6000819050919050565b600061267f61267a61267584612650565b61265a565b612290565b9050919050565b61268f81612664565b82525050565b600060c0820190506126aa60008301896124a3565b6126b7602083018861233c565b6126c46040830187612686565b6126d16060830186612686565b6126de60808301856124a3565b6126eb60a083018461233c565b979650505050505050565b6000815190506127058161229a565b92915050565b6000806000606084860312156127245761272361222d565b5b6000612732868287016126f6565b9350506020612743868287016126f6565b9250506040612754868287016126f6565b9150509250925092565b600060408201905061277360008301856124a3565b612780602083018461233c565b9392505050565b600081519050612796816123f0565b92915050565b6000602082840312156127b2576127b161222d565b5b60006127c084828501612787565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061282560248361217d565b9150612830826127c9565b604082019050919050565b6000602082019050818103600083015261285481612818565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006128b760228361217d565b91506128c28261285b565b604082019050919050565b600060208201905081810360008301526128e6816128aa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061294960258361217d565b9150612954826128ed565b604082019050919050565b600060208201905081810360008301526129788161293c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129db60238361217d565b91506129e68261297f565b604082019050919050565b60006020820190508181036000830152612a0a816129ce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a6d60298361217d565b9150612a7882612a11565b604082019050919050565b60006020820190508181036000830152612a9c81612a60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ad960198361217d565b9150612ae482612aa3565b602082019050919050565b60006020820190508181036000830152612b0881612acc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b4982612290565b9150612b5483612290565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8957612b88612b0f565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bca601a8361217d565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b6000612c0b82612290565b9150612c1683612290565b925082821015612c2957612c28612b0f565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c90602a8361217d565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612d5981612252565b82525050565b6000612d6b8383612d50565b60208301905092915050565b6000602082019050919050565b6000612d8f82612d24565b612d998185612d2f565b9350612da483612d40565b8060005b83811015612dd5578151612dbc8882612d5f565b9750612dc783612d77565b925050600181019050612da8565b5085935050505092915050565b600060a082019050612df7600083018861233c565b612e046020830187612686565b8181036040830152612e168186612d84565b9050612e2560608301856124a3565b612e32608083018461233c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7682612290565b9150612e8183612290565b925082612e9157612e90612e3c565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ed2601b8361217d565b9150612edd82612e9c565b602082019050919050565b60006020820190508181036000830152612f0181612ec5565b9050919050565b6000612f1382612290565b9150612f1e83612290565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f5757612f56612b0f565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbe60218361217d565b9150612fc982612f62565b604082019050919050565b60006020820190508181036000830152612fed81612fb1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a91dce539e335ac8a1f9f8df42c32aa507fd5390dda9590a25613e1f85bd358864736f6c63430008080033

Deployed Bytecode Sourcemap

3616:10011:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5398:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6250:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5675:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6740:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11742:193;;;;;;;;;;;;;:::i;:::-;;5778:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2697:148;;;;;;;;;;;;;:::i;:::-;;9468:118;;;;;;;;;;;;;:::i;:::-;;9329:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2483:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5489:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5924:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11540:194;;;;;;;;;;;;;:::i;:::-;;9698:773;;;;;;;;;;;;;:::i;:::-;;6099:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5398:83;5435:13;5468:5;;;;;;;;;;;;;;;;;5461:12;;5398:83;:::o;6250:161::-;6325:4;6342:39;6351:12;:10;:12::i;:::-;6365:7;6374:6;6342:8;:39::i;:::-;6399:4;6392:11;;6250:161;;;;:::o;5675:95::-;5728:7;4112:18;5748:14;;5675:95;:::o;6419:313::-;6517:4;6534:36;6544:6;6552:9;6563:6;6534:9;:36::i;:::-;6581:121;6590:6;6598:12;:10;:12::i;:::-;6612:89;6650:6;6612:89;;;;;;;;;;;;;;;;;:11;:19;6624:6;6612:19;;;;;;;;;;;;;;;:33;6632:12;:10;:12::i;:::-;6612:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6581:8;:121::i;:::-;6720:4;6713:11;;6419:313;;;;;:::o;5584:83::-;5625:5;4365:1;5643:16;;5584:83;:::o;6740:103::-;2620:12;:10;:12::i;:::-;2610:22;;:6;;;;;;;;;;:22;;;2602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6830:5:::1;6812:15;;:23;;;;;;;;;;;;;;;;;;6740:103:::0;:::o;11742:193::-;11808:14;;;;;;;;;;;11792:30;;:12;:10;:12::i;:::-;:30;;;11784:39;;;;;;11834:26;11863:21;11834:50;;11895:32;11908:18;11895:12;:32::i;:::-;11773:162;11742:193::o;5778:138::-;5844:7;5871:37;5891:7;:16;5899:7;5891:16;;;;;;;;;;;;;;;;5871:19;:37::i;:::-;5864:44;;5778:138;;;:::o;2697:148::-;2620:12;:10;:12::i;:::-;2610:22;;:6;;;;;;;;;;:22;;;2602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2804:1:::1;2767:40;;2788:6;::::0;::::1;;;;;;;;2767:40;;;;;;;;;;;;2835:1;2818:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2697:148::o:0;9468:118::-;2620:12;:10;:12::i;:::-;2610:22;;:6;;;;;;;;;;:22;;;2602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4112:18:::1;9521:12;:22;;;;4112:18;9554:14;:24;;;;9468:118::o:0;9329:131::-;2620:12;:10;:12::i;:::-;2610:22;;:6;;;;;;;;;;:22;;;2602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9411:12:::1;;9404:6;:19;9396:28;;;::::0;::::1;;9446:6;9433:12;:19;;;;9329:131:::0;:::o;2483:79::-;2521:7;2548:6;;;;;;;;;;;2541:13;;2483:79;:::o;5489:87::-;5528:13;5561:7;;;;;;;;;;;;;;;;;5554:14;;5489:87;:::o;5924:167::-;6002:4;6019:42;6029:12;:10;:12::i;:::-;6043:9;6054:6;6019:9;:42::i;:::-;6079:4;6072:11;;5924:167;;;;:::o;11540:194::-;11606:14;;;;;;;;;;;11590:30;;:12;:10;:12::i;:::-;:30;;;11582:39;;;;;;11632:23;11658:24;11676:4;11658:9;:24::i;:::-;11632:50;;11693:33;11710:15;11693:16;:33::i;:::-;11571:163;11540:194::o;9698:773::-;2620:12;:10;:12::i;:::-;2610:22;;:6;;;;;;;;;;:22;;;2602:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9762:11:::1;;;;;;;;;;;9761:12;9753:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9811:35;9868:42;9811:100;;9940:16;9922:15;;:34;;;;;;;;;;;;;;;;;;9967:58;9984:4;9999:15;;;;;;;;;;;4112:18;9967:8;:58::i;:::-;10070:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10052:56;;;10117:4;10124:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10052:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10036:13;;:112;;;;;;;;;;;;;;;;;;10159:15;;;;;;;;;;;:31;;;10198:21;10229:4;10235:24;10253:4;10235:9;:24::i;:::-;10260:1;10262::::0;10264:7:::1;:5;:7::i;:::-;10272:15;10159:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10313:4;10299:11;;:18;;;;;;;;;;;;;;;;;;10346:4;10328:15;;:22;;;;;;;;;;;;;;;;;;10377:4;10363:11;;:18;;;;;;;;;;;;;;;;;;10399:13;;;;;;;;;;;10392:29;;;10430:15;;;;;;;;;;;10448:14;10392:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9742:729;9698:773::o:0;6099:143::-;6180:7;6207:11;:18;6219:5;6207:18;;;;;;;;;;;;;;;:27;6226:7;6207:27;;;;;;;;;;;;;;;;6200:34;;6099:143;;;;:::o;201:98::-;254:7;281:10;274:17;;201:98;:::o;7113:335::-;7223:1;7206:19;;:5;:19;;;;7198:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7304:1;7285:21;;:7;:21;;;;7277:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7386:6;7356:11;:18;7368:5;7356:18;;;;;;;;;;;;;;;:27;7375:7;7356:27;;;;;;;;;;;;;;;:36;;;;7424:7;7408:32;;7417:5;7408:32;;;7433:6;7408:32;;;;;;:::i;:::-;;;;;;;;7113:335;;;:::o;7456:1374::-;7560:1;7544:18;;:4;:18;;;;7536:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7637:1;7623:16;;:2;:16;;;;7615:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7707:1;7698:6;:10;7690:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7781:7;:5;:7::i;:::-;7773:15;;:4;:15;;;;:32;;;;;7798:7;:5;:7::i;:::-;7792:13;;:2;:13;;;;7773:32;7769:1011;;;7831:4;:10;7836:4;7831:10;;;;;;;;;;;;;;;;;;;;;;;;;7830:11;:24;;;;;7846:4;:8;7851:2;7846:8;;;;;;;;;;;;;;;;;;;;;;;;;7845:9;7830:24;7822:33;;;;;;7882:1;7870:9;:13;;;;7910:12;;7898:9;:24;;;;7949:13;;;;;;;;;;;7941:21;;:4;:21;;;:55;;;;;7980:15;;;;;;;;;;;7966:30;;:2;:30;;;;7941:55;:83;;;;;8002:18;:22;8021:2;8002:22;;;;;;;;;;;;;;;;;;;;;;;;;8000:24;7941:83;:102;;;;;8028:15;;;;;;;;;;;7941:102;7937:332;;;8111:12;;8101:6;:22;;8093:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8206:14;;8196:6;8180:13;8190:2;8180:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8172:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7937:332;8287:28;8318:24;8336:4;8318:9;:24::i;:::-;8287:55;;8362:6;;;;;;;;;;;8361:7;:32;;;;;8380:13;;;;;;;;;;;8372:21;;:4;:21;;;;8361:32;:47;;;;;8397:11;;;;;;;;;;;8361:47;:73;;;;;8433:1;8412:20;:22;8361:73;8357:344;;;8455:38;8472:20;8455:16;:38::i;:::-;8512:26;8541:21;8512:50;;8605:1;8584:18;:22;8581:105;;;8631:35;8644:21;8631:12;:35::i;:::-;8581:105;8436:265;8357:344;7807:905;7769:1011;;;8741:1;8729:9;:13;;;;8767:1;8755:9;:13;;;;7769:1011;8792:30;8807:4;8812:2;8815:6;8792:14;:30::i;:::-;7456:1374;;;:::o;1338:190::-;1424:7;1457:1;1452;:6;;1460:12;1444:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1484:9;1500:1;1496;:5;;;;:::i;:::-;1484:17;;1519:1;1512:8;;;1338:190;;;;;:::o;9594:96::-;9651:14;;;;;;;;;;;:23;;:31;9675:6;9651:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9594:96;:::o;6851:254::-;6918:7;6957;;6946;:18;;6938:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7022:19;7045:10;:8;:10::i;:::-;7022:33;;7073:24;7085:11;7073:7;:11;;:24;;;;:::i;:::-;7066:31;;;6851:254;;;:::o;8838:483::-;4954:4;4945:6;;:13;;;;;;;;;;;;;;;;;;8916:21:::1;8954:1;8940:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8916:40;;8985:4;8967;8972:1;8967:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9011:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9001:4;9006:1;9001:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9044:62;9061:4;9076:15;;;;;;;;;;;9094:11;9044:8;:62::i;:::-;9117:15;;;;;;;;;;;:66;;;9198:11;9224:1;9240:4;9267;9287:15;9117:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8905:416;4990:5:::0;4981:6;;:14;;;;;;;;;;;;;;;;;;8838:483;:::o;10479:146::-;10573:44;10591:6;10599:9;10610:6;10573:17;:44::i;:::-;10479:146;;;:::o;13197:163::-;13238:7;13259:15;13276;13295:19;:17;:19::i;:::-;13258:56;;;;13332:20;13344:7;13332;:11;;:20;;;;:::i;:::-;13325:27;;;;13197:163;:::o;1790:132::-;1848:7;1875:39;1879:1;1882;1875:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1868:46;;1790:132;;;;:::o;10633:487::-;10732:15;10749:23;10774:12;10788:23;10813:12;10827:13;10844:19;10855:7;10844:10;:19::i;:::-;10731:132;;;;;;;;;;;;10892:28;10912:7;10892;:15;10900:6;10892:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10874:7;:15;10882:6;10874:15;;;;;;;;;;;;;;;:46;;;;10952:39;10975:15;10952:7;:18;10960:9;10952:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10931:7;:18;10939:9;10931:18;;;;;;;;;;;;;;;:60;;;;11002:16;11012:5;11002:9;:16::i;:::-;11029:23;11041:4;11047;11029:11;:23::i;:::-;11085:9;11068:44;;11077:6;11068:44;;;11096:15;11068:44;;;;;;:::i;:::-;;;;;;;;10720:400;;;;;;10633:487;;;:::o;13368:256::-;13418:7;13427;13447:15;13465:7;;13447:25;;13483:15;4112:18;13483:25;;13533:20;4112:18;13533:7;;:11;;:20;;;;:::i;:::-;13523:7;:30;13519:61;;;13563:7;;4112:18;13555:25;;;;;;;;13519:61;13599:7;13608;13591:25;;;;;;13368:256;;;:::o;1930:189::-;2016:7;2048:1;2044;:5;2051:12;2036:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2075:9;2091:1;2087;:5;;;;:::i;:::-;2075:17;;2110:1;2103:8;;;1930:189;;;;;:::o;11945:471::-;12004:7;12013;12022;12031;12040;12049;12070:23;12095:12;12109:13;12126:42;12138:7;12147:9;;12158;;12126:11;:42::i;:::-;12069:99;;;;;;12179:19;12202:10;:8;:10::i;:::-;12179:33;;12224:15;12241:23;12266:12;12282:46;12294:7;12303:4;12309:5;12316:11;12282;:46::i;:::-;12223:105;;;;;;12347:7;12356:15;12373:4;12379:15;12396:4;12402:5;12339:69;;;;;;;;;;;;;;;;;;;11945:471;;;;;;;:::o;1194:136::-;1252:7;1279:43;1283:1;1286;1279:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1272:50;;1194:136;;;;:::o;1007:179::-;1065:7;1085:9;1101:1;1097;:5;;;;:::i;:::-;1085:17;;1126:1;1121;:6;;1113:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1177:1;1170:8;;;1007:179;;;;:::o;11128:212::-;11181:19;11204:10;:8;:10::i;:::-;11181:33;;11225:13;11241:22;11251:11;11241:5;:9;;:22;;;;:::i;:::-;11225:38;;11299:33;11326:5;11299:7;:22;11315:4;11299:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11274:7;:22;11290:4;11274:22;;;;;;;;;;;;;;;:58;;;;11170:170;;11128:212;:::o;11348:147::-;11426:17;11438:4;11426:7;;:11;;:17;;;;:::i;:::-;11416:7;:27;;;;11467:20;11482:4;11467:10;;:14;;:20;;;;:::i;:::-;11454:10;:33;;;;11348:147;;:::o;12424:351::-;12517:7;12526;12535;12555:12;12570:28;12594:3;12570:19;12582:6;12570:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12555:43;;12609:13;12625:29;12650:3;12625:20;12637:7;12625;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12609:45;;12665:23;12691:28;12713:5;12691:17;12703:4;12691:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12665:54;;12738:15;12755:4;12761:5;12730:37;;;;;;;;;12424:351;;;;;;;:::o;12783:409::-;12893:7;12902;12911;12931:15;12949:24;12961:11;12949:7;:11;;:24;;;;:::i;:::-;12931:42;;12984:12;12999:21;13008:11;12999:4;:8;;:21;;;;:::i;:::-;12984:36;;13031:13;13047:22;13057:11;13047:5;:9;;:22;;;;:::i;:::-;13031:38;;13080:23;13106:28;13128:5;13106:17;13118:4;13106:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13080:54;;13153:7;13162:15;13179:4;13145:39;;;;;;;;;;12783:409;;;;;;;;:::o;1536:246::-;1594:7;1623:1;1618;:6;1614:47;;;1648:1;1641:8;;;;1614:47;1671:9;1687:1;1683;:5;;;;:::i;:::-;1671:17;;1716:1;1711;1707;:5;;;;:::i;:::-;:10;1699:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1773:1;1766:8;;;1536:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:173::-;8118:25;8114:1;8106:6;8102:14;8095:49;7978:173;:::o;8157:366::-;8299:3;8320:67;8384:2;8379:3;8320:67;:::i;:::-;8313:74;;8396:93;8485:3;8396:93;:::i;:::-;8514:2;8509:3;8505:12;8498:19;;8157:366;;;:::o;8529:419::-;8695:4;8733:2;8722:9;8718:18;8710:26;;8782:9;8776:4;8772:20;8768:1;8757:9;8753:17;8746:47;8810:131;8936:4;8810:131;:::i;:::-;8802:139;;8529:419;;;:::o;8954:143::-;9011:5;9042:6;9036:13;9027:22;;9058:33;9085:5;9058:33;:::i;:::-;8954:143;;;;:::o;9103:351::-;9173:6;9222:2;9210:9;9201:7;9197:23;9193:32;9190:119;;;9228:79;;:::i;:::-;9190:119;9348:1;9373:64;9429:7;9420:6;9409:9;9405:22;9373:64;:::i;:::-;9363:74;;9319:128;9103:351;;;;:::o;9460:332::-;9581:4;9619:2;9608:9;9604:18;9596:26;;9632:71;9700:1;9689:9;9685:17;9676:6;9632:71;:::i;:::-;9713:72;9781:2;9770:9;9766:18;9757:6;9713:72;:::i;:::-;9460:332;;;;;:::o;9798:85::-;9843:7;9872:5;9861:16;;9798:85;;;:::o;9889:60::-;9917:3;9938:5;9931:12;;9889:60;;;:::o;9955:158::-;10013:9;10046:61;10064:42;10073:32;10099:5;10073:32;:::i;:::-;10064:42;:::i;:::-;10046:61;:::i;:::-;10033:74;;9955:158;;;:::o;10119:147::-;10214:45;10253:5;10214:45;:::i;:::-;10209:3;10202:58;10119:147;;:::o;10272:807::-;10521:4;10559:3;10548:9;10544:19;10536:27;;10573:71;10641:1;10630:9;10626:17;10617:6;10573:71;:::i;:::-;10654:72;10722:2;10711:9;10707:18;10698:6;10654:72;:::i;:::-;10736:80;10812:2;10801:9;10797:18;10788:6;10736:80;:::i;:::-;10826;10902:2;10891:9;10887:18;10878:6;10826:80;:::i;:::-;10916:73;10984:3;10973:9;10969:19;10960:6;10916:73;:::i;:::-;10999;11067:3;11056:9;11052:19;11043:6;10999:73;:::i;:::-;10272:807;;;;;;;;;:::o;11085:143::-;11142:5;11173:6;11167:13;11158:22;;11189:33;11216:5;11189:33;:::i;:::-;11085:143;;;;:::o;11234:663::-;11322:6;11330;11338;11387:2;11375:9;11366:7;11362:23;11358:32;11355:119;;;11393:79;;:::i;:::-;11355:119;11513:1;11538:64;11594:7;11585:6;11574:9;11570:22;11538:64;:::i;:::-;11528:74;;11484:128;11651:2;11677:64;11733:7;11724:6;11713:9;11709:22;11677:64;:::i;:::-;11667:74;;11622:129;11790:2;11816:64;11872:7;11863:6;11852:9;11848:22;11816:64;:::i;:::-;11806:74;;11761:129;11234:663;;;;;:::o;11903:332::-;12024:4;12062:2;12051:9;12047:18;12039:26;;12075:71;12143:1;12132:9;12128:17;12119:6;12075:71;:::i;:::-;12156:72;12224:2;12213:9;12209:18;12200:6;12156:72;:::i;:::-;11903:332;;;;;:::o;12241:137::-;12295:5;12326:6;12320:13;12311:22;;12342:30;12366:5;12342:30;:::i;:::-;12241:137;;;;:::o;12384:345::-;12451:6;12500:2;12488:9;12479:7;12475:23;12471:32;12468:119;;;12506:79;;:::i;:::-;12468:119;12626:1;12651:61;12704:7;12695:6;12684:9;12680:22;12651:61;:::i;:::-;12641:71;;12597:125;12384:345;;;;:::o;12735:223::-;12875:34;12871:1;12863:6;12859:14;12852:58;12944:6;12939:2;12931:6;12927:15;12920:31;12735:223;:::o;12964:366::-;13106:3;13127:67;13191:2;13186:3;13127:67;:::i;:::-;13120:74;;13203:93;13292:3;13203:93;:::i;:::-;13321:2;13316:3;13312:12;13305:19;;12964:366;;;:::o;13336:419::-;13502:4;13540:2;13529:9;13525:18;13517:26;;13589:9;13583:4;13579:20;13575:1;13564:9;13560:17;13553:47;13617:131;13743:4;13617:131;:::i;:::-;13609:139;;13336:419;;;:::o;13761:221::-;13901:34;13897:1;13889:6;13885:14;13878:58;13970:4;13965:2;13957:6;13953:15;13946:29;13761:221;:::o;13988:366::-;14130:3;14151:67;14215:2;14210:3;14151:67;:::i;:::-;14144:74;;14227:93;14316:3;14227:93;:::i;:::-;14345:2;14340:3;14336:12;14329:19;;13988:366;;;:::o;14360:419::-;14526:4;14564:2;14553:9;14549:18;14541:26;;14613:9;14607:4;14603:20;14599:1;14588:9;14584:17;14577:47;14641:131;14767:4;14641:131;:::i;:::-;14633:139;;14360:419;;;:::o;14785:224::-;14925:34;14921:1;14913:6;14909:14;14902:58;14994:7;14989:2;14981:6;14977:15;14970:32;14785:224;:::o;15015:366::-;15157:3;15178:67;15242:2;15237:3;15178:67;:::i;:::-;15171:74;;15254:93;15343:3;15254:93;:::i;:::-;15372:2;15367:3;15363:12;15356:19;;15015:366;;;:::o;15387:419::-;15553:4;15591:2;15580:9;15576:18;15568:26;;15640:9;15634:4;15630:20;15626:1;15615:9;15611:17;15604:47;15668:131;15794:4;15668:131;:::i;:::-;15660:139;;15387:419;;;:::o;15812:222::-;15952:34;15948:1;15940:6;15936:14;15929:58;16021:5;16016:2;16008:6;16004:15;15997:30;15812:222;:::o;16040:366::-;16182:3;16203:67;16267:2;16262:3;16203:67;:::i;:::-;16196:74;;16279:93;16368:3;16279:93;:::i;:::-;16397:2;16392:3;16388:12;16381:19;;16040:366;;;:::o;16412:419::-;16578:4;16616:2;16605:9;16601:18;16593:26;;16665:9;16659:4;16655:20;16651:1;16640:9;16636:17;16629:47;16693:131;16819:4;16693:131;:::i;:::-;16685:139;;16412:419;;;:::o;16837:228::-;16977:34;16973:1;16965:6;16961:14;16954:58;17046:11;17041:2;17033:6;17029:15;17022:36;16837:228;:::o;17071:366::-;17213:3;17234:67;17298:2;17293:3;17234:67;:::i;:::-;17227:74;;17310:93;17399:3;17310:93;:::i;:::-;17428:2;17423:3;17419:12;17412:19;;17071:366;;;:::o;17443:419::-;17609:4;17647:2;17636:9;17632:18;17624:26;;17696:9;17690:4;17686:20;17682:1;17671:9;17667:17;17660:47;17724:131;17850:4;17724:131;:::i;:::-;17716:139;;17443:419;;;:::o;17868:175::-;18008:27;18004:1;17996:6;17992:14;17985:51;17868:175;:::o;18049:366::-;18191:3;18212:67;18276:2;18271:3;18212:67;:::i;:::-;18205:74;;18288:93;18377:3;18288:93;:::i;:::-;18406:2;18401:3;18397:12;18390:19;;18049:366;;;:::o;18421:419::-;18587:4;18625:2;18614:9;18610:18;18602:26;;18674:9;18668:4;18664:20;18660:1;18649:9;18645:17;18638:47;18702:131;18828:4;18702:131;:::i;:::-;18694:139;;18421:419;;;:::o;18846:180::-;18894:77;18891:1;18884:88;18991:4;18988:1;18981:15;19015:4;19012:1;19005:15;19032:305;19072:3;19091:20;19109:1;19091:20;:::i;:::-;19086:25;;19125:20;19143:1;19125:20;:::i;:::-;19120:25;;19279:1;19211:66;19207:74;19204:1;19201:81;19198:107;;;19285:18;;:::i;:::-;19198:107;19329:1;19326;19322:9;19315:16;;19032:305;;;;:::o;19343:176::-;19483:28;19479:1;19471:6;19467:14;19460:52;19343:176;:::o;19525:366::-;19667:3;19688:67;19752:2;19747:3;19688:67;:::i;:::-;19681:74;;19764:93;19853:3;19764:93;:::i;:::-;19882:2;19877:3;19873:12;19866:19;;19525:366;;;:::o;19897:419::-;20063:4;20101:2;20090:9;20086:18;20078:26;;20150:9;20144:4;20140:20;20136:1;20125:9;20121:17;20114:47;20178:131;20304:4;20178:131;:::i;:::-;20170:139;;19897:419;;;:::o;20322:191::-;20362:4;20382:20;20400:1;20382:20;:::i;:::-;20377:25;;20416:20;20434:1;20416:20;:::i;:::-;20411:25;;20455:1;20452;20449:8;20446:34;;;20460:18;;:::i;:::-;20446:34;20505:1;20502;20498:9;20490:17;;20322:191;;;;:::o;20519:229::-;20659:34;20655:1;20647:6;20643:14;20636:58;20728:12;20723:2;20715:6;20711:15;20704:37;20519:229;:::o;20754:366::-;20896:3;20917:67;20981:2;20976:3;20917:67;:::i;:::-;20910:74;;20993:93;21082:3;20993:93;:::i;:::-;21111:2;21106:3;21102:12;21095:19;;20754:366;;;:::o;21126:419::-;21292:4;21330:2;21319:9;21315:18;21307:26;;21379:9;21373:4;21369:20;21365:1;21354:9;21350:17;21343:47;21407:131;21533:4;21407:131;:::i;:::-;21399:139;;21126:419;;;:::o;21551:180::-;21599:77;21596:1;21589:88;21696:4;21693:1;21686:15;21720:4;21717:1;21710:15;21737:180;21785:77;21782:1;21775:88;21882:4;21879:1;21872:15;21906:4;21903:1;21896:15;21923:114;21990:6;22024:5;22018:12;22008:22;;21923:114;;;:::o;22043:184::-;22142:11;22176:6;22171:3;22164:19;22216:4;22211:3;22207:14;22192:29;;22043:184;;;;:::o;22233:132::-;22300:4;22323:3;22315:11;;22353:4;22348:3;22344:14;22336:22;;22233:132;;;:::o;22371:108::-;22448:24;22466:5;22448:24;:::i;:::-;22443:3;22436:37;22371:108;;:::o;22485:179::-;22554:10;22575:46;22617:3;22609:6;22575:46;:::i;:::-;22653:4;22648:3;22644:14;22630:28;;22485:179;;;;:::o;22670:113::-;22740:4;22772;22767:3;22763:14;22755:22;;22670:113;;;:::o;22819:732::-;22938:3;22967:54;23015:5;22967:54;:::i;:::-;23037:86;23116:6;23111:3;23037:86;:::i;:::-;23030:93;;23147:56;23197:5;23147:56;:::i;:::-;23226:7;23257:1;23242:284;23267:6;23264:1;23261:13;23242:284;;;23343:6;23337:13;23370:63;23429:3;23414:13;23370:63;:::i;:::-;23363:70;;23456:60;23509:6;23456:60;:::i;:::-;23446:70;;23302:224;23289:1;23286;23282:9;23277:14;;23242:284;;;23246:14;23542:3;23535:10;;22943:608;;;22819:732;;;;:::o;23557:831::-;23820:4;23858:3;23847:9;23843:19;23835:27;;23872:71;23940:1;23929:9;23925:17;23916:6;23872:71;:::i;:::-;23953:80;24029:2;24018:9;24014:18;24005:6;23953:80;:::i;:::-;24080:9;24074:4;24070:20;24065:2;24054:9;24050:18;24043:48;24108:108;24211:4;24202:6;24108:108;:::i;:::-;24100:116;;24226:72;24294:2;24283:9;24279:18;24270:6;24226:72;:::i;:::-;24308:73;24376:3;24365:9;24361:19;24352:6;24308:73;:::i;:::-;23557:831;;;;;;;;:::o;24394:180::-;24442:77;24439:1;24432:88;24539:4;24536:1;24529:15;24563:4;24560:1;24553:15;24580:185;24620:1;24637:20;24655:1;24637:20;:::i;:::-;24632:25;;24671:20;24689:1;24671:20;:::i;:::-;24666:25;;24710:1;24700:35;;24715:18;;:::i;:::-;24700:35;24757:1;24754;24750:9;24745:14;;24580:185;;;;:::o;24771:177::-;24911:29;24907:1;24899:6;24895:14;24888:53;24771:177;:::o;24954:366::-;25096:3;25117:67;25181:2;25176:3;25117:67;:::i;:::-;25110:74;;25193:93;25282:3;25193:93;:::i;:::-;25311:2;25306:3;25302:12;25295:19;;24954:366;;;:::o;25326:419::-;25492:4;25530:2;25519:9;25515:18;25507:26;;25579:9;25573:4;25569:20;25565:1;25554:9;25550:17;25543:47;25607:131;25733:4;25607:131;:::i;:::-;25599:139;;25326:419;;;:::o;25751:348::-;25791:7;25814:20;25832:1;25814:20;:::i;:::-;25809:25;;25848:20;25866:1;25848:20;:::i;:::-;25843:25;;26036:1;25968:66;25964:74;25961:1;25958:81;25953:1;25946:9;25939:17;25935:105;25932:131;;;26043:18;;:::i;:::-;25932:131;26091:1;26088;26084:9;26073:20;;25751:348;;;;:::o;26105:220::-;26245:34;26241:1;26233:6;26229:14;26222:58;26314:3;26309:2;26301:6;26297:15;26290:28;26105:220;:::o;26331:366::-;26473:3;26494:67;26558:2;26553:3;26494:67;:::i;:::-;26487:74;;26570:93;26659:3;26570:93;:::i;:::-;26688:2;26683:3;26679:12;26672:19;;26331:366;;;:::o;26703:419::-;26869:4;26907:2;26896:9;26892:18;26884:26;;26956:9;26950:4;26946:20;26942:1;26931:9;26927:17;26920:47;26984:131;27110:4;26984:131;:::i;:::-;26976:139;;26703:419;;;:::o

Swarm Source

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