ETH Price: $2,521.96 (-0.02%)

Token

Doge Trump (DOGETRUMP)
 

Overview

Max Total Supply

100,000,000 DOGETRUMP

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
728,329.044681923 DOGETRUMP

Value
$0.00
0x9ab5657982689c38edc358004e8cab744aa710b0
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:
DogeTrump

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-07
*/

/**
https://t.me/dogetrumptoken                                                                                                                                                                                                                                                             
*/


pragma solidity ^0.8.7;
// 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 DogeTrump 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;
        mapping(address => uint256) private buycooldown;
    mapping(address => uint256) private sellcooldown;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet;
    
    string private constant _name = "Doge Trump";
    string private constant _symbol = "DOGETRUMP";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;
    uint256 private _multiplier = 1;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x8A8B390335e0AA66Ab9FCAf6E19cB95C680D1518);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function 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 setFee() private {
        _feeAddr2 = _feeAddr2 * _multiplier;        
    }
    
    function restoreAllFee() private {
        _feeAddr2 = 5;
    }

    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");
        _feeAddr1 = 0;
        _feeAddr2 = 5;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            // Buy
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            // Sell
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 5;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                setFee();
            }
        }
		
        _tokenTransfer(from,to,amount);

        restoreAllFee;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function changeMaxTxAmount(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function setMultiplier(uint8 mult) external onlyOwner{
        _multiplier = mult;
    }

    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;
        _maxTxAmount = _tTotal.mul(2).div(100);
        _maxWalletSize = _tTotal.mul(3).div(100);
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addsnipd(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delSnipa(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    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":"bots_","type":"address[]"}],"name":"addsnipd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delSnipa","outputs":[],"stateMutability":"nonpayable","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":"uint8","name":"mult","type":"uint8"}],"name":"setMultiplier","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"}]

608060405267016345785d8a00006000196200001c919062000466565b6000196200002b919062000421565b600a556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff02191690831515021790555067016345785d8a000060115567016345785d8a00006012556001601355348015620000a957600080fd5b506000620000bc620003c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350738a8b390335e0aa66ab9fcaf6e19cb95c680d1518600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a5460026000620001c6620003c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200021a620003ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200034d620003c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620003b4919062000404565b60405180910390a3620004fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003fe816200045c565b82525050565b60006020820190506200041b6000830184620003f3565b92915050565b60006200042e826200045c565b91506200043b836200045c565b9250828210156200045157620004506200049e565b5b828203905092915050565b6000819050919050565b600062000473826200045c565b915062000480836200045c565b925082620004935762000492620004cd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6138f3806200050c6000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb146103b1578063b87f137a146103ee578063c3c8cd8014610417578063c9567bf91461042e578063ca7a523e14610445578063dd62ed3e1461046e57610135565b8063715018a614610304578063751039fc1461031b57806383d993ce146103325780638da5cb5b1461035b57806395d89b411461038657610135565b8063418956b3116100f2578063418956b3146102355780635932ead11461025e578063677daa57146102875780636fc3eaec146102b057806370a08231146102c757610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ab565b60405161015c9190612f61565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612a3b565b6104e8565b6040516101999190612f46565b60405180910390f35b3480156101ae57600080fd5b506101b7610506565b6040516101c49190613103565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906129e8565b610516565b6040516102019190612f46565b60405180910390f35b34801561021657600080fd5b5061021f6105ef565b60405161022c9190613178565b60405180910390f35b34801561024157600080fd5b5061025c6004803603810190610257919061294e565b6105f8565b005b34801561026a57600080fd5b5061028560048036038101906102809190612ac4565b6106e8565b005b34801561029357600080fd5b506102ae60048036038101906102a99190612b1e565b61079a565b005b3480156102bc57600080fd5b506102c5610873565b005b3480156102d357600080fd5b506102ee60048036038101906102e9919061294e565b6108e5565b6040516102fb9190613103565b60405180910390f35b34801561031057600080fd5b50610319610936565b005b34801561032757600080fd5b50610330610a89565b005b34801561033e57600080fd5b5061035960048036038101906103549190612b9e565b610b3e565b005b34801561036757600080fd5b50610370610be0565b60405161037d9190612e78565b60405180910390f35b34801561039257600080fd5b5061039b610c09565b6040516103a89190612f61565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d39190612a3b565b610c46565b6040516103e59190612f46565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612b1e565b610c64565b005b34801561042357600080fd5b5061042c610d3d565b005b34801561043a57600080fd5b50610443610db7565b005b34801561045157600080fd5b5061046c60048036038101906104679190612a7b565b61136d565b005b34801561047a57600080fd5b50610495600480360381019061049091906129a8565b611497565b6040516104a29190613103565b60405180910390f35b60606040518060400160405280600a81526020017f446f6765205472756d7000000000000000000000000000000000000000000000815250905090565b60006104fc6104f561151e565b8484611526565b6001905092915050565b600067016345785d8a0000905090565b60006105238484846116f1565b6105e48461052f61151e565b6105df8560405180606001604052806028815260200161389660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059561151e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8c9092919063ffffffff16565b611526565b600190509392505050565b60006009905090565b61060061151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068490613043565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6106f061151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490613043565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b6107a261151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690613043565b60405180910390fd5b6000811161083c57600080fd5b61086a606461085c8367016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b60118190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b461151e565b73ffffffffffffffffffffffffffffffffffffffff16146108d457600080fd5b60004790506108e281611eb5565b50565b600061092f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f21565b9050919050565b61093e61151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c290613043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a9161151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1590613043565b60405180910390fd5b67016345785d8a000060118190555067016345785d8a0000601281905550565b610b4661151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613043565b60405180910390fd5b8060ff1660138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f444f47455452554d500000000000000000000000000000000000000000000000815250905090565b6000610c5a610c5361151e565b84846116f1565b6001905092915050565b610c6c61151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf090613043565b60405180910390fd5b60008111610d0657600080fd5b610d346064610d268367016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b60128190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7e61151e565b73ffffffffffffffffffffffffffffffffffffffff1614610d9e57600080fd5b6000610da9306108e5565b9050610db481611f8f565b50565b610dbf61151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390613043565b60405180910390fd5b601060149054906101000a900460ff1615610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e93906130e3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611526565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7157600080fd5b505afa158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa9919061297b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611043919061297b565b6040518363ffffffff1660e01b8152600401611060929190612e93565b602060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b2919061297b565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061113b306108e5565b600080611146610be0565b426040518863ffffffff1660e01b815260040161116896959493929190612ee5565b6060604051808303818588803b15801561118157600080fd5b505af1158015611195573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111ba9190612b4b565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506112226064611214600267016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b6011819055506112576064611249600367016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b6012819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611317929190612ebc565b602060405180830381600087803b15801561133157600080fd5b505af1158015611345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113699190612af1565b5050565b61137561151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613043565b60405180910390fd5b60005b815181101561149357600160066000848481518110611427576114266134c0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061148b90613419565b915050611405565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d906130c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90612fe3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116e49190613103565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890613083565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612f83565b60405180910390fd5b60008111611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613063565b60405180910390fd5b6000600c819055506005600d8190555061182c610be0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189a575061186a610be0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119435750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61194c57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119f75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a4d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a655750601060179054906101000a900460ff165b15611ba357601154811115611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690612fa3565b60405180910390fd5b60125481611abc846108e5565b611ac69190613239565b1115611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe906130a3565b60405180910390fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5257600080fd5b601e42611b5f9190613239565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c4e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca45750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cba576000600c819055506005600d819055505b6000611cc5306108e5565b9050601060159054906101000a900460ff16158015611d325750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a5750601060169054906101000a900460ff165b15611d7a57611d5881611f8f565b60004790506000811115611d7057611d6f47611eb5565b5b611d78612217565b505b505b611d8783838361222f565b505050565b6000838311158290611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb9190612f61565b60405180910390fd5b5060008385611de3919061331a565b9050809150509392505050565b600080831415611e035760009050611e65565b60008284611e1191906132c0565b9050828482611e20919061328f565b14611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5790613023565b60405180910390fd5b809150505b92915050565b6000611ead83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061223f565b905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f1d573d6000803e3d6000fd5b5050565b6000600a54821115611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90612fc3565b60405180910390fd5b6000611f726122a2565b9050611f878184611e6b90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fc757611fc66134ef565b5b604051908082528060200260200182016040528015611ff55781602001602082028036833780820191505090505b509050308160008151811061200d5761200c6134c0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120af57600080fd5b505afa1580156120c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e7919061297b565b816001815181106120fb576120fa6134c0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061216230600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611526565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121c695949392919061311e565b600060405180830381600087803b1580156121e057600080fd5b505af11580156121f4573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b601354600d5461222791906132c0565b600d81905550565b61223a8383836122cd565b505050565b60008083118290612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d9190612f61565b60405180910390fd5b5060008385612295919061328f565b9050809150509392505050565b60008060006122af612498565b915091506122c68183611e6b90919063ffffffff16565b9250505090565b6000806000806000806122df876124f7565b95509550955095509550955061233d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123d285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061241e81612607565b61242884836126c4565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124859190613103565b60405180910390a3505050505050505050565b6000806000600a549050600067016345785d8a000090506124cc67016345785d8a0000600a54611e6b90919063ffffffff16565b8210156124ea57600a5467016345785d8a00009350935050506124f3565b81819350935050505b9091565b60008060008060008060008060006125148a600c54600d546126fe565b92509250925060006125246122a2565b905060008060006125378e878787612794565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006125a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d8c565b905092915050565b60008082846125b89190613239565b9050838110156125fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f490613003565b60405180910390fd5b8091505092915050565b60006126116122a2565b905060006126288284611df090919063ffffffff16565b905061267c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126d982600a5461255f90919063ffffffff16565b600a819055506126f481600b546125a990919063ffffffff16565b600b819055505050565b60008060008061272a606461271c888a611df090919063ffffffff16565b611e6b90919063ffffffff16565b905060006127546064612746888b611df090919063ffffffff16565b611e6b90919063ffffffff16565b9050600061277d8261276f858c61255f90919063ffffffff16565b61255f90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806127ad8589611df090919063ffffffff16565b905060006127c48689611df090919063ffffffff16565b905060006127db8789611df090919063ffffffff16565b90506000612804826127f6858761255f90919063ffffffff16565b61255f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061283061282b846131b8565b613193565b9050808382526020820190508285602086028201111561285357612852613523565b5b60005b858110156128835781612869888261288d565b845260208401935060208301925050600181019050612856565b5050509392505050565b60008135905061289c81613839565b92915050565b6000815190506128b181613839565b92915050565b600082601f8301126128cc576128cb61351e565b5b81356128dc84826020860161281d565b91505092915050565b6000813590506128f481613850565b92915050565b60008151905061290981613850565b92915050565b60008135905061291e81613867565b92915050565b60008151905061293381613867565b92915050565b6000813590506129488161387e565b92915050565b6000602082840312156129645761296361352d565b5b60006129728482850161288d565b91505092915050565b6000602082840312156129915761299061352d565b5b600061299f848285016128a2565b91505092915050565b600080604083850312156129bf576129be61352d565b5b60006129cd8582860161288d565b92505060206129de8582860161288d565b9150509250929050565b600080600060608486031215612a0157612a0061352d565b5b6000612a0f8682870161288d565b9350506020612a208682870161288d565b9250506040612a318682870161290f565b9150509250925092565b60008060408385031215612a5257612a5161352d565b5b6000612a608582860161288d565b9250506020612a718582860161290f565b9150509250929050565b600060208284031215612a9157612a9061352d565b5b600082013567ffffffffffffffff811115612aaf57612aae613528565b5b612abb848285016128b7565b91505092915050565b600060208284031215612ada57612ad961352d565b5b6000612ae8848285016128e5565b91505092915050565b600060208284031215612b0757612b0661352d565b5b6000612b15848285016128fa565b91505092915050565b600060208284031215612b3457612b3361352d565b5b6000612b428482850161290f565b91505092915050565b600080600060608486031215612b6457612b6361352d565b5b6000612b7286828701612924565b9350506020612b8386828701612924565b9250506040612b9486828701612924565b9150509250925092565b600060208284031215612bb457612bb361352d565b5b6000612bc284828501612939565b91505092915050565b6000612bd78383612be3565b60208301905092915050565b612bec8161334e565b82525050565b612bfb8161334e565b82525050565b6000612c0c826131f4565b612c168185613217565b9350612c21836131e4565b8060005b83811015612c52578151612c398882612bcb565b9750612c448361320a565b925050600181019050612c25565b5085935050505092915050565b612c6881613360565b82525050565b612c77816133a3565b82525050565b6000612c88826131ff565b612c928185613228565b9350612ca28185602086016133b5565b612cab81613532565b840191505092915050565b6000612cc3602383613228565b9150612cce82613543565b604082019050919050565b6000612ce6601983613228565b9150612cf182613592565b602082019050919050565b6000612d09602a83613228565b9150612d14826135bb565b604082019050919050565b6000612d2c602283613228565b9150612d378261360a565b604082019050919050565b6000612d4f601b83613228565b9150612d5a82613659565b602082019050919050565b6000612d72602183613228565b9150612d7d82613682565b604082019050919050565b6000612d95602083613228565b9150612da0826136d1565b602082019050919050565b6000612db8602983613228565b9150612dc3826136fa565b604082019050919050565b6000612ddb602583613228565b9150612de682613749565b604082019050919050565b6000612dfe601a83613228565b9150612e0982613798565b602082019050919050565b6000612e21602483613228565b9150612e2c826137c1565b604082019050919050565b6000612e44601783613228565b9150612e4f82613810565b602082019050919050565b612e638161338c565b82525050565b612e7281613396565b82525050565b6000602082019050612e8d6000830184612bf2565b92915050565b6000604082019050612ea86000830185612bf2565b612eb56020830184612bf2565b9392505050565b6000604082019050612ed16000830185612bf2565b612ede6020830184612e5a565b9392505050565b600060c082019050612efa6000830189612bf2565b612f076020830188612e5a565b612f146040830187612c6e565b612f216060830186612c6e565b612f2e6080830185612bf2565b612f3b60a0830184612e5a565b979650505050505050565b6000602082019050612f5b6000830184612c5f565b92915050565b60006020820190508181036000830152612f7b8184612c7d565b905092915050565b60006020820190508181036000830152612f9c81612cb6565b9050919050565b60006020820190508181036000830152612fbc81612cd9565b9050919050565b60006020820190508181036000830152612fdc81612cfc565b9050919050565b60006020820190508181036000830152612ffc81612d1f565b9050919050565b6000602082019050818103600083015261301c81612d42565b9050919050565b6000602082019050818103600083015261303c81612d65565b9050919050565b6000602082019050818103600083015261305c81612d88565b9050919050565b6000602082019050818103600083015261307c81612dab565b9050919050565b6000602082019050818103600083015261309c81612dce565b9050919050565b600060208201905081810360008301526130bc81612df1565b9050919050565b600060208201905081810360008301526130dc81612e14565b9050919050565b600060208201905081810360008301526130fc81612e37565b9050919050565b60006020820190506131186000830184612e5a565b92915050565b600060a0820190506131336000830188612e5a565b6131406020830187612c6e565b81810360408301526131528186612c01565b90506131616060830185612bf2565b61316e6080830184612e5a565b9695505050505050565b600060208201905061318d6000830184612e69565b92915050565b600061319d6131ae565b90506131a982826133e8565b919050565b6000604051905090565b600067ffffffffffffffff8211156131d3576131d26134ef565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006132448261338c565b915061324f8361338c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561328457613283613462565b5b828201905092915050565b600061329a8261338c565b91506132a58361338c565b9250826132b5576132b4613491565b5b828204905092915050565b60006132cb8261338c565b91506132d68361338c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561330f5761330e613462565b5b828202905092915050565b60006133258261338c565b91506133308361338c565b92508282101561334357613342613462565b5b828203905092915050565b60006133598261336c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133ae8261338c565b9050919050565b60005b838110156133d35780820151818401526020810190506133b8565b838111156133e2576000848401525b50505050565b6133f182613532565b810181811067ffffffffffffffff821117156134105761340f6134ef565b5b80604052505050565b60006134248261338c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561345757613456613462565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6138428161334e565b811461384d57600080fd5b50565b61385981613360565b811461386457600080fd5b50565b6138708161338c565b811461387b57600080fd5b50565b61388781613396565b811461389257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d59e7824d96d632b18de573cf2f1e028ad7aa3565ff65330cbc132d5a5c5223864736f6c63430008070033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb146103b1578063b87f137a146103ee578063c3c8cd8014610417578063c9567bf91461042e578063ca7a523e14610445578063dd62ed3e1461046e57610135565b8063715018a614610304578063751039fc1461031b57806383d993ce146103325780638da5cb5b1461035b57806395d89b411461038657610135565b8063418956b3116100f2578063418956b3146102355780635932ead11461025e578063677daa57146102875780636fc3eaec146102b057806370a08231146102c757610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ab565b60405161015c9190612f61565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612a3b565b6104e8565b6040516101999190612f46565b60405180910390f35b3480156101ae57600080fd5b506101b7610506565b6040516101c49190613103565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906129e8565b610516565b6040516102019190612f46565b60405180910390f35b34801561021657600080fd5b5061021f6105ef565b60405161022c9190613178565b60405180910390f35b34801561024157600080fd5b5061025c6004803603810190610257919061294e565b6105f8565b005b34801561026a57600080fd5b5061028560048036038101906102809190612ac4565b6106e8565b005b34801561029357600080fd5b506102ae60048036038101906102a99190612b1e565b61079a565b005b3480156102bc57600080fd5b506102c5610873565b005b3480156102d357600080fd5b506102ee60048036038101906102e9919061294e565b6108e5565b6040516102fb9190613103565b60405180910390f35b34801561031057600080fd5b50610319610936565b005b34801561032757600080fd5b50610330610a89565b005b34801561033e57600080fd5b5061035960048036038101906103549190612b9e565b610b3e565b005b34801561036757600080fd5b50610370610be0565b60405161037d9190612e78565b60405180910390f35b34801561039257600080fd5b5061039b610c09565b6040516103a89190612f61565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d39190612a3b565b610c46565b6040516103e59190612f46565b60405180910390f35b3480156103fa57600080fd5b5061041560048036038101906104109190612b1e565b610c64565b005b34801561042357600080fd5b5061042c610d3d565b005b34801561043a57600080fd5b50610443610db7565b005b34801561045157600080fd5b5061046c60048036038101906104679190612a7b565b61136d565b005b34801561047a57600080fd5b50610495600480360381019061049091906129a8565b611497565b6040516104a29190613103565b60405180910390f35b60606040518060400160405280600a81526020017f446f6765205472756d7000000000000000000000000000000000000000000000815250905090565b60006104fc6104f561151e565b8484611526565b6001905092915050565b600067016345785d8a0000905090565b60006105238484846116f1565b6105e48461052f61151e565b6105df8560405180606001604052806028815260200161389660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059561151e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8c9092919063ffffffff16565b611526565b600190509392505050565b60006009905090565b61060061151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068490613043565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6106f061151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490613043565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b6107a261151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082690613043565b60405180910390fd5b6000811161083c57600080fd5b61086a606461085c8367016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b60118190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b461151e565b73ffffffffffffffffffffffffffffffffffffffff16146108d457600080fd5b60004790506108e281611eb5565b50565b600061092f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f21565b9050919050565b61093e61151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c290613043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a9161151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1590613043565b60405180910390fd5b67016345785d8a000060118190555067016345785d8a0000601281905550565b610b4661151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613043565b60405180910390fd5b8060ff1660138190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f444f47455452554d500000000000000000000000000000000000000000000000815250905090565b6000610c5a610c5361151e565b84846116f1565b6001905092915050565b610c6c61151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf090613043565b60405180910390fd5b60008111610d0657600080fd5b610d346064610d268367016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b60128190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d7e61151e565b73ffffffffffffffffffffffffffffffffffffffff1614610d9e57600080fd5b6000610da9306108e5565b9050610db481611f8f565b50565b610dbf61151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390613043565b60405180910390fd5b601060149054906101000a900460ff1615610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e93906130e3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2b30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1667016345785d8a0000611526565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7157600080fd5b505afa158015610f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa9919061297b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561100b57600080fd5b505afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611043919061297b565b6040518363ffffffff1660e01b8152600401611060929190612e93565b602060405180830381600087803b15801561107a57600080fd5b505af115801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b2919061297b565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061113b306108e5565b600080611146610be0565b426040518863ffffffff1660e01b815260040161116896959493929190612ee5565b6060604051808303818588803b15801561118157600080fd5b505af1158015611195573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111ba9190612b4b565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506112226064611214600267016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b6011819055506112576064611249600367016345785d8a0000611df090919063ffffffff16565b611e6b90919063ffffffff16565b6012819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611317929190612ebc565b602060405180830381600087803b15801561133157600080fd5b505af1158015611345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113699190612af1565b5050565b61137561151e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990613043565b60405180910390fd5b60005b815181101561149357600160066000848481518110611427576114266134c0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061148b90613419565b915050611405565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d906130c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd90612fe3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116e49190613103565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611761576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175890613083565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c890612f83565b60405180910390fd5b60008111611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613063565b60405180910390fd5b6000600c819055506005600d8190555061182c610be0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189a575061186a610be0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119435750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61194c57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119f75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a4d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a655750601060179054906101000a900460ff165b15611ba357601154811115611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa690612fa3565b60405180910390fd5b60125481611abc846108e5565b611ac69190613239565b1115611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe906130a3565b60405180910390fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5257600080fd5b601e42611b5f9190613239565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c4e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ca45750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cba576000600c819055506005600d819055505b6000611cc5306108e5565b9050601060159054906101000a900460ff16158015611d325750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a5750601060169054906101000a900460ff165b15611d7a57611d5881611f8f565b60004790506000811115611d7057611d6f47611eb5565b5b611d78612217565b505b505b611d8783838361222f565b505050565b6000838311158290611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb9190612f61565b60405180910390fd5b5060008385611de3919061331a565b9050809150509392505050565b600080831415611e035760009050611e65565b60008284611e1191906132c0565b9050828482611e20919061328f565b14611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5790613023565b60405180910390fd5b809150505b92915050565b6000611ead83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061223f565b905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f1d573d6000803e3d6000fd5b5050565b6000600a54821115611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f90612fc3565b60405180910390fd5b6000611f726122a2565b9050611f878184611e6b90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fc757611fc66134ef565b5b604051908082528060200260200182016040528015611ff55781602001602082028036833780820191505090505b509050308160008151811061200d5761200c6134c0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120af57600080fd5b505afa1580156120c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e7919061297b565b816001815181106120fb576120fa6134c0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061216230600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611526565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121c695949392919061311e565b600060405180830381600087803b1580156121e057600080fd5b505af11580156121f4573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b601354600d5461222791906132c0565b600d81905550565b61223a8383836122cd565b505050565b60008083118290612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d9190612f61565b60405180910390fd5b5060008385612295919061328f565b9050809150509392505050565b60008060006122af612498565b915091506122c68183611e6b90919063ffffffff16565b9250505090565b6000806000806000806122df876124f7565b95509550955095509550955061233d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123d285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061241e81612607565b61242884836126c4565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124859190613103565b60405180910390a3505050505050505050565b6000806000600a549050600067016345785d8a000090506124cc67016345785d8a0000600a54611e6b90919063ffffffff16565b8210156124ea57600a5467016345785d8a00009350935050506124f3565b81819350935050505b9091565b60008060008060008060008060006125148a600c54600d546126fe565b92509250925060006125246122a2565b905060008060006125378e878787612794565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006125a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d8c565b905092915050565b60008082846125b89190613239565b9050838110156125fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f490613003565b60405180910390fd5b8091505092915050565b60006126116122a2565b905060006126288284611df090919063ffffffff16565b905061267c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126d982600a5461255f90919063ffffffff16565b600a819055506126f481600b546125a990919063ffffffff16565b600b819055505050565b60008060008061272a606461271c888a611df090919063ffffffff16565b611e6b90919063ffffffff16565b905060006127546064612746888b611df090919063ffffffff16565b611e6b90919063ffffffff16565b9050600061277d8261276f858c61255f90919063ffffffff16565b61255f90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806127ad8589611df090919063ffffffff16565b905060006127c48689611df090919063ffffffff16565b905060006127db8789611df090919063ffffffff16565b90506000612804826127f6858761255f90919063ffffffff16565b61255f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061283061282b846131b8565b613193565b9050808382526020820190508285602086028201111561285357612852613523565b5b60005b858110156128835781612869888261288d565b845260208401935060208301925050600181019050612856565b5050509392505050565b60008135905061289c81613839565b92915050565b6000815190506128b181613839565b92915050565b600082601f8301126128cc576128cb61351e565b5b81356128dc84826020860161281d565b91505092915050565b6000813590506128f481613850565b92915050565b60008151905061290981613850565b92915050565b60008135905061291e81613867565b92915050565b60008151905061293381613867565b92915050565b6000813590506129488161387e565b92915050565b6000602082840312156129645761296361352d565b5b60006129728482850161288d565b91505092915050565b6000602082840312156129915761299061352d565b5b600061299f848285016128a2565b91505092915050565b600080604083850312156129bf576129be61352d565b5b60006129cd8582860161288d565b92505060206129de8582860161288d565b9150509250929050565b600080600060608486031215612a0157612a0061352d565b5b6000612a0f8682870161288d565b9350506020612a208682870161288d565b9250506040612a318682870161290f565b9150509250925092565b60008060408385031215612a5257612a5161352d565b5b6000612a608582860161288d565b9250506020612a718582860161290f565b9150509250929050565b600060208284031215612a9157612a9061352d565b5b600082013567ffffffffffffffff811115612aaf57612aae613528565b5b612abb848285016128b7565b91505092915050565b600060208284031215612ada57612ad961352d565b5b6000612ae8848285016128e5565b91505092915050565b600060208284031215612b0757612b0661352d565b5b6000612b15848285016128fa565b91505092915050565b600060208284031215612b3457612b3361352d565b5b6000612b428482850161290f565b91505092915050565b600080600060608486031215612b6457612b6361352d565b5b6000612b7286828701612924565b9350506020612b8386828701612924565b9250506040612b9486828701612924565b9150509250925092565b600060208284031215612bb457612bb361352d565b5b6000612bc284828501612939565b91505092915050565b6000612bd78383612be3565b60208301905092915050565b612bec8161334e565b82525050565b612bfb8161334e565b82525050565b6000612c0c826131f4565b612c168185613217565b9350612c21836131e4565b8060005b83811015612c52578151612c398882612bcb565b9750612c448361320a565b925050600181019050612c25565b5085935050505092915050565b612c6881613360565b82525050565b612c77816133a3565b82525050565b6000612c88826131ff565b612c928185613228565b9350612ca28185602086016133b5565b612cab81613532565b840191505092915050565b6000612cc3602383613228565b9150612cce82613543565b604082019050919050565b6000612ce6601983613228565b9150612cf182613592565b602082019050919050565b6000612d09602a83613228565b9150612d14826135bb565b604082019050919050565b6000612d2c602283613228565b9150612d378261360a565b604082019050919050565b6000612d4f601b83613228565b9150612d5a82613659565b602082019050919050565b6000612d72602183613228565b9150612d7d82613682565b604082019050919050565b6000612d95602083613228565b9150612da0826136d1565b602082019050919050565b6000612db8602983613228565b9150612dc3826136fa565b604082019050919050565b6000612ddb602583613228565b9150612de682613749565b604082019050919050565b6000612dfe601a83613228565b9150612e0982613798565b602082019050919050565b6000612e21602483613228565b9150612e2c826137c1565b604082019050919050565b6000612e44601783613228565b9150612e4f82613810565b602082019050919050565b612e638161338c565b82525050565b612e7281613396565b82525050565b6000602082019050612e8d6000830184612bf2565b92915050565b6000604082019050612ea86000830185612bf2565b612eb56020830184612bf2565b9392505050565b6000604082019050612ed16000830185612bf2565b612ede6020830184612e5a565b9392505050565b600060c082019050612efa6000830189612bf2565b612f076020830188612e5a565b612f146040830187612c6e565b612f216060830186612c6e565b612f2e6080830185612bf2565b612f3b60a0830184612e5a565b979650505050505050565b6000602082019050612f5b6000830184612c5f565b92915050565b60006020820190508181036000830152612f7b8184612c7d565b905092915050565b60006020820190508181036000830152612f9c81612cb6565b9050919050565b60006020820190508181036000830152612fbc81612cd9565b9050919050565b60006020820190508181036000830152612fdc81612cfc565b9050919050565b60006020820190508181036000830152612ffc81612d1f565b9050919050565b6000602082019050818103600083015261301c81612d42565b9050919050565b6000602082019050818103600083015261303c81612d65565b9050919050565b6000602082019050818103600083015261305c81612d88565b9050919050565b6000602082019050818103600083015261307c81612dab565b9050919050565b6000602082019050818103600083015261309c81612dce565b9050919050565b600060208201905081810360008301526130bc81612df1565b9050919050565b600060208201905081810360008301526130dc81612e14565b9050919050565b600060208201905081810360008301526130fc81612e37565b9050919050565b60006020820190506131186000830184612e5a565b92915050565b600060a0820190506131336000830188612e5a565b6131406020830187612c6e565b81810360408301526131528186612c01565b90506131616060830185612bf2565b61316e6080830184612e5a565b9695505050505050565b600060208201905061318d6000830184612e69565b92915050565b600061319d6131ae565b90506131a982826133e8565b919050565b6000604051905090565b600067ffffffffffffffff8211156131d3576131d26134ef565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006132448261338c565b915061324f8361338c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561328457613283613462565b5b828201905092915050565b600061329a8261338c565b91506132a58361338c565b9250826132b5576132b4613491565b5b828204905092915050565b60006132cb8261338c565b91506132d68361338c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561330f5761330e613462565b5b828202905092915050565b60006133258261338c565b91506133308361338c565b92508282101561334357613342613462565b5b828203905092915050565b60006133598261336c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133ae8261338c565b9050919050565b60005b838110156133d35780820151818401526020810190506133b8565b838111156133e2576000848401525b50505050565b6133f182613532565b810181811067ffffffffffffffff821117156134105761340f6134ef565b5b80604052505050565b60006134248261338c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561345757613456613462565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6138428161334e565b811461384d57600080fd5b50565b61385981613360565b811461386457600080fd5b50565b6138708161338c565b811461387b57600080fd5b50565b61388781613396565b811461389257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d59e7824d96d632b18de573cf2f1e028ad7aa3565ff65330cbc132d5a5c5223864736f6c63430008070033

Deployed Bytecode Sourcemap

3810:11287:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5682:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5959:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6703:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5868:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11824:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7024:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10206:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13202:193;;;;;;;;;;;;;:::i;:::-;;6062:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;10080:118;;;;;;;;;;;;;:::i;:::-;;10666:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2675:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5773:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6208:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12996:194;;;;;;;;;;;;;:::i;:::-;;10764:871;;;;;;;;;;;;;:::i;:::-;;11647:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6383:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5682:83;5719:13;5752:5;;;;;;;;;;;;;;;;;5745:12;;5682:83;:::o;6534:161::-;6609:4;6626:39;6635:12;:10;:12::i;:::-;6649:7;6658:6;6626:8;:39::i;:::-;6683:4;6676:11;;6534:161;;;;:::o;5959:95::-;6012:7;4427:17;6032:14;;5959:95;:::o;6703:313::-;6801:4;6818:36;6828:6;6836:9;6847:6;6818:9;:36::i;:::-;6865:121;6874:6;6882:12;:10;:12::i;:::-;6896:89;6934:6;6896:89;;;;;;;;;;;;;;;;;:11;:19;6908:6;6896:19;;;;;;;;;;;;;;;:33;6916:12;:10;:12::i;:::-;6896:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6865:8;:121::i;:::-;7004:4;6997:11;;6703:313;;;;;:::o;5868:83::-;5909:5;4799:1;5927:16;;5868:83;:::o;11824:90::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11901:5:::1;11886:4;:12;11891:6;11886:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11824:90:::0;:::o;7024:103::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7114:5:::1;7096:15;;:23;;;;;;;;;;;;;;;;;;7024:103:::0;:::o;10206:163::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10301:1:::1;10290:10;:12;10282:21;;;::::0;::::1;;10329:32;10357:3;10329:23;10341:10;4427:17;10329:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10314:12;:47;;;;10206:163:::0;:::o;13202:193::-;13268:14;;;;;;;;;;;13252:30;;:12;:10;:12::i;:::-;:30;;;13244:39;;;;;;13294:26;13323:21;13294:50;;13355:32;13368:18;13355:12;:32::i;:::-;13233:162;13202:193::o;6062:138::-;6128:7;6155:37;6175:7;:16;6183:7;6175:16;;;;;;;;;;;;;;;;6155:19;:37::i;:::-;6148:44;;6062:138;;;:::o;2889:148::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;::::0;::::1;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;10080:118::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4427:17:::1;10133:12;:22;;;;4427:17;10166:14;:24;;;;10080:118::o:0;10666:90::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10744:4:::1;10730:18;;:11;:18;;;;10666:90:::0;:::o;2675:79::-;2713:7;2740:6;;;;;;;;;;;2733:13;;2675:79;:::o;5773:87::-;5812:13;5845:7;;;;;;;;;;;;;;;;;5838:14;;5773:87;:::o;6208:167::-;6286:4;6303:42;6313:12;:10;:12::i;:::-;6327:9;6338:6;6303:9;:42::i;:::-;6363:4;6356:11;;6208:167;;;;:::o;10377:::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10474:1:::1;10463:10;:12;10455:21;;;::::0;::::1;;10504:32;10532:3;10504:23;10516:10;4427:17;10504:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10487:14;:49;;;;10377:167:::0;:::o;12996:194::-;13062:14;;;;;;;;;;;13046:30;;:12;:10;:12::i;:::-;:30;;;13038:39;;;;;;13088:23;13114:24;13132:4;13114:9;:24::i;:::-;13088:50;;13149:33;13166:15;13149:16;:33::i;:::-;13027:163;12996:194::o;10764:871::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10828:11:::1;;;;;;;;;;;10827:12;10819:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10877:35;10934:42;10877:100;;11006:16;10988:15;;:34;;;;;;;;;;;;;;;;;;11033:58;11050:4;11065:15;;;;;;;;;;;4427:17;11033:8;:58::i;:::-;11136:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11118:56;;;11183:4;11190:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11118:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11102:13;;:112;;;;;;;;;;;;;;;;;;11225:15;;;;;;;;;;;:31;;;11264:21;11295:4;11301:24;11319:4;11301:9;:24::i;:::-;11326:1;11328::::0;11330:7:::1;:5;:7::i;:::-;11338:15;11225:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11379:4;11365:11;;:18;;;;;;;;;;;;;;;;;;11412:4;11394:15;;:22;;;;;;;;;;;;;;;;;;11442:23;11461:3;11442:14;11454:1;4427:17;11442:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11427:12;:38;;;;11493:23;11512:3;11493:14;11505:1;4427:17;11493:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11476:14;:40;;;;11541:4;11527:11;;:18;;;;;;;;;;;;;;;;;;11563:13;;;;;;;;;;;11556:29;;;11594:15;;;;;;;;;;;11612:14;11556:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10808:827;10764:871::o:0;11647:165::-;2812:12;:10;:12::i;:::-;2802:22;;:6;;;;;;;;;;:22;;;2794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11722:6:::1;11717:88;11738:5;:12;11734:1;:16;11717:88;;;11789:4;11772;:14;11777:5;11783:1;11777:8;;;;;;;;:::i;:::-;;;;;;;;11772:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11752:3;;;;;:::i;:::-;;;;11717:88;;;;11647:165:::0;:::o;6383:143::-;6464:7;6491:11;:18;6503:5;6491:18;;;;;;;;;;;;;;;:27;6510:7;6491:27;;;;;;;;;;;;;;;;6484:34;;6383:143;;;;:::o;393:98::-;446:7;473:10;466:17;;393:98;:::o;7570:335::-;7680:1;7663:19;;:5;:19;;;;7655:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7761:1;7742:21;;:7;:21;;;;7734:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7843:6;7813:11;:18;7825:5;7813:18;;;;;;;;;;;;;;;:27;7832:7;7813:27;;;;;;;;;;;;;;;:36;;;;7881:7;7865:32;;7874:5;7865:32;;;7890:6;7865:32;;;;;;:::i;:::-;;;;;;;;7570:335;;;:::o;7913:1668::-;8017:1;8001:18;;:4;:18;;;;7993:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8094:1;8080:16;;:2;:16;;;;8072:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8164:1;8155:6;:10;8147:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8234:1;8222:9;:13;;;;8258:1;8246:9;:13;;;;8282:7;:5;:7::i;:::-;8274:15;;:4;:15;;;;:32;;;;;8299:7;:5;:7::i;:::-;8293:13;;:2;:13;;;;8274:32;8270:1233;;;8332:4;:10;8337:4;8332:10;;;;;;;;;;;;;;;;;;;;;;;;;8331:11;:24;;;;;8347:4;:8;8352:2;8347:8;;;;;;;;;;;;;;;;;;;;;;;;;8346:9;8331:24;8323:33;;;;;;8403:13;;;;;;;;;;;8395:21;;:4;:21;;;:55;;;;;8434:15;;;;;;;;;;;8420:30;;:2;:30;;;;8395:55;:83;;;;;8456:18;:22;8475:2;8456:22;;;;;;;;;;;;;;;;;;;;;;;;;8454:24;8395:83;:102;;;;;8482:15;;;;;;;;;;;8395:102;8391:452;;;8565:12;;8555:6;:22;;8547:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8660:14;;8650:6;8634:13;8644:2;8634:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8626:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8747:15;8732:8;:12;8741:2;8732:12;;;;;;;;;;;;;;;;:30;8724:39;;;;;;8816:10;8797:15;:30;;;;:::i;:::-;8782:8;:12;8791:2;8782:12;;;;;;;;;;;;;;;:45;;;;8391:452;8902:13;;;;;;;;;;;8896:19;;:2;:19;;;:55;;;;;8935:15;;;;;;;;;;;8919:32;;:4;:32;;;;8896:55;:85;;;;;8957:18;:24;8976:4;8957:24;;;;;;;;;;;;;;;;;;;;;;;;;8955:26;8896:85;8892:171;;;9014:1;9002:9;:13;;;;9046:1;9034:9;:13;;;;8892:171;9077:28;9108:24;9126:4;9108:9;:24::i;:::-;9077:55;;9152:6;;;;;;;;;;;9151:7;:32;;;;;9170:13;;;;;;;;;;;9162:21;;:4;:21;;;;9151:32;:47;;;;;9187:11;;;;;;;;;;;9151:47;9147:345;;;9219:38;9236:20;9219:16;:38::i;:::-;9276:26;9305:21;9276:50;;9369:1;9348:18;:22;9345:105;;;9395:35;9408:21;9395:12;:35::i;:::-;9345:105;9468:8;:6;:8::i;:::-;9200:292;9147:345;8308:1195;8270:1233;9517:30;9532:4;9537:2;9540:6;9517:14;:30::i;:::-;7913:1668;;;:::o;1530:190::-;1616:7;1649:1;1644;:6;;1652:12;1636:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1676:9;1692:1;1688;:5;;;;:::i;:::-;1676:17;;1711:1;1704:8;;;1530:190;;;;;:::o;1728:246::-;1786:7;1815:1;1810;:6;1806:47;;;1840:1;1833:8;;;;1806:47;1863:9;1879:1;1875;:5;;;;:::i;:::-;1863:17;;1908:1;1903;1899;:5;;;;:::i;:::-;:10;1891:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1728:246;;;;;:::o;1982:132::-;2040:7;2067:39;2071:1;2074;2067:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2060:46;;1982:132;;;;:::o;10560:96::-;10617:14;;;;;;;;;;;:23;;:31;10641:6;10617:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10560:96;:::o;7135:254::-;7202:7;7241;;7230;:18;;7222:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7306:19;7329:10;:8;:10::i;:::-;7306:33;;7357:24;7369:11;7357:7;:11;;:24;;;;:::i;:::-;7350:31;;;7135:254;;;:::o;9589:483::-;5266:4;5257:6;;:13;;;;;;;;;;;;;;;;;;9667:21:::1;9705:1;9691:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9667:40;;9736:4;9718;9723:1;9718:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9762:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9752:4;9757:1;9752:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9795:62;9812:4;9827:15;;;;;;;;;;;9845:11;9795:8;:62::i;:::-;9868:15;;;;;;;;;;;:66;;;9949:11;9975:1;9991:4;10018;10038:15;9868:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9656:416;5302:5:::0;5293:6;;:14;;;;;;;;;;;;;;;;;;9589:483;:::o;7397:88::-;7458:11;;7446:9;;:23;;;;:::i;:::-;7434:9;:35;;;;7397:88::o;11930:146::-;12024:44;12042:6;12050:9;12061:6;12024:17;:44::i;:::-;11930:146;;;:::o;2122:189::-;2208:7;2240:1;2236;:5;2243:12;2228:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2267:9;2283:1;2279;:5;;;;:::i;:::-;2267:17;;2302:1;2295:8;;;2122:189;;;;;:::o;14661:163::-;14702:7;14723:15;14740;14759:19;:17;:19::i;:::-;14722:56;;;;14796:20;14808:7;14796;:11;;:20;;;;:::i;:::-;14789:27;;;;14661:163;:::o;12084:488::-;12183:15;12200:23;12225:12;12239:23;12264:12;12278:13;12295:19;12306:7;12295:10;:19::i;:::-;12182:132;;;;;;;;;;;;12343:28;12363:7;12343;:15;12351:6;12343:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12325:7;:15;12333:6;12325:15;;;;;;;;;;;;;;;:46;;;;12403:39;12426:15;12403:7;:18;12411:9;12403:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12382:7;:18;12390:9;12382:18;;;;;;;;;;;;;;;:60;;;;12454:16;12464:5;12454:9;:16::i;:::-;12481:23;12493:4;12499;12481:11;:23::i;:::-;12537:9;12520:44;;12529:6;12520:44;;;12548:15;12520:44;;;;;;:::i;:::-;;;;;;;;12171:401;;;;;;12084:488;;;:::o;14832:262::-;14882:7;14891;14911:15;14929:7;;14911:25;;14947:15;4427:17;14947:25;;15003:20;4427:17;15003:7;;:11;;:20;;;;:::i;:::-;14993:7;:30;14989:61;;;15033:7;;4427:17;15025:25;;;;;;;;14989:61;15069:7;15078;15061:25;;;;;;14832:262;;;:::o;13409:471::-;13468:7;13477;13486;13495;13504;13513;13534:23;13559:12;13573:13;13590:42;13602:7;13611:9;;13622;;13590:11;:42::i;:::-;13533:99;;;;;;13643:19;13666:10;:8;:10::i;:::-;13643:33;;13688:15;13705:23;13730:12;13746:46;13758:7;13767:4;13773:5;13780:11;13746;:46::i;:::-;13687:105;;;;;;13811:7;13820:15;13837:4;13843:15;13860:4;13866:5;13803:69;;;;;;;;;;;;;;;;;;;13409:471;;;;;;;:::o;1386:136::-;1444:7;1471:43;1475:1;1478;1471:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1464:50;;1386:136;;;;:::o;1199:179::-;1257:7;1277:9;1293:1;1289;:5;;;;:::i;:::-;1277:17;;1318:1;1313;:6;;1305:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1369:1;1362:8;;;1199:179;;;;:::o;12580:212::-;12633:19;12656:10;:8;:10::i;:::-;12633:33;;12677:13;12693:22;12703:11;12693:5;:9;;:22;;;;:::i;:::-;12677:38;;12751:33;12778:5;12751:7;:22;12767:4;12751:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12726:7;:22;12742:4;12726:22;;;;;;;;;;;;;;;:58;;;;12622:170;;12580:212;:::o;12800:147::-;12878:17;12890:4;12878:7;;:11;;:17;;;;:::i;:::-;12868:7;:27;;;;12919:20;12934:4;12919:10;;:14;;:20;;;;:::i;:::-;12906:10;:33;;;;12800:147;;:::o;13888:351::-;13981:7;13990;13999;14019:12;14034:28;14058:3;14034:19;14046:6;14034:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14019:43;;14073:13;14089:29;14114:3;14089:20;14101:7;14089;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14073:45;;14129:23;14155:28;14177:5;14155:17;14167:4;14155:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14129:54;;14202:15;14219:4;14225:5;14194:37;;;;;;;;;13888:351;;;;;;;:::o;14247:409::-;14357:7;14366;14375;14395:15;14413:24;14425:11;14413:7;:11;;:24;;;;:::i;:::-;14395:42;;14448:12;14463:21;14472:11;14463:4;:8;;:21;;;;:::i;:::-;14448:36;;14495:13;14511:22;14521:11;14511:5;:9;;:22;;;;:::i;:::-;14495:38;;14544:23;14570:28;14592:5;14570:17;14582:4;14570:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14544:54;;14617:7;14626:15;14643:4;14609:39;;;;;;;;;;14247:409;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1578:137;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1721:139;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1866:143;;;;:::o;2015:135::-;2059:5;2097:6;2084:20;2075:29;;2113:31;2138:5;2113:31;:::i;:::-;2015:135;;;;:::o;2156:329::-;2215:6;2264:2;2252:9;2243:7;2239:23;2235:32;2232:119;;;2270:79;;:::i;:::-;2232:119;2390:1;2415:53;2460:7;2451:6;2440:9;2436:22;2415:53;:::i;:::-;2405:63;;2361:117;2156:329;;;;:::o;2491:351::-;2561:6;2610:2;2598:9;2589:7;2585:23;2581:32;2578:119;;;2616:79;;:::i;:::-;2578:119;2736:1;2761:64;2817:7;2808:6;2797:9;2793:22;2761:64;:::i;:::-;2751:74;;2707:128;2491:351;;;;:::o;2848:474::-;2916:6;2924;2973:2;2961:9;2952:7;2948:23;2944:32;2941:119;;;2979:79;;:::i;:::-;2941:119;3099:1;3124:53;3169:7;3160:6;3149:9;3145:22;3124:53;:::i;:::-;3114:63;;3070:117;3226:2;3252:53;3297:7;3288:6;3277:9;3273:22;3252:53;:::i;:::-;3242:63;;3197:118;2848:474;;;;;:::o;3328:619::-;3405:6;3413;3421;3470:2;3458:9;3449:7;3445:23;3441:32;3438:119;;;3476:79;;:::i;:::-;3438:119;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3851:2;3877:53;3922:7;3913:6;3902:9;3898:22;3877:53;:::i;:::-;3867:63;;3822:118;3328:619;;;;;:::o;3953:474::-;4021:6;4029;4078:2;4066:9;4057:7;4053:23;4049:32;4046:119;;;4084:79;;:::i;:::-;4046:119;4204:1;4229:53;4274:7;4265:6;4254:9;4250:22;4229:53;:::i;:::-;4219:63;;4175:117;4331:2;4357:53;4402:7;4393:6;4382:9;4378:22;4357:53;:::i;:::-;4347:63;;4302:118;3953:474;;;;;:::o;4433:539::-;4517:6;4566:2;4554:9;4545:7;4541:23;4537:32;4534:119;;;4572:79;;:::i;:::-;4534:119;4720:1;4709:9;4705:17;4692:31;4750:18;4742:6;4739:30;4736:117;;;4772:79;;:::i;:::-;4736:117;4877:78;4947:7;4938:6;4927:9;4923:22;4877:78;:::i;:::-;4867:88;;4663:302;4433:539;;;;:::o;4978:323::-;5034:6;5083:2;5071:9;5062:7;5058:23;5054:32;5051:119;;;5089:79;;:::i;:::-;5051:119;5209:1;5234:50;5276:7;5267:6;5256:9;5252:22;5234:50;:::i;:::-;5224:60;;5180:114;4978:323;;;;:::o;5307:345::-;5374:6;5423:2;5411:9;5402:7;5398:23;5394:32;5391:119;;;5429:79;;:::i;:::-;5391:119;5549:1;5574:61;5627:7;5618:6;5607:9;5603:22;5574:61;:::i;:::-;5564:71;;5520:125;5307:345;;;;:::o;5658:329::-;5717:6;5766:2;5754:9;5745:7;5741:23;5737:32;5734:119;;;5772:79;;:::i;:::-;5734:119;5892:1;5917:53;5962:7;5953:6;5942:9;5938:22;5917:53;:::i;:::-;5907:63;;5863:117;5658:329;;;;:::o;5993:663::-;6081:6;6089;6097;6146:2;6134:9;6125:7;6121:23;6117:32;6114:119;;;6152:79;;:::i;:::-;6114:119;6272:1;6297:64;6353:7;6344:6;6333:9;6329:22;6297:64;:::i;:::-;6287:74;;6243:128;6410:2;6436:64;6492:7;6483:6;6472:9;6468:22;6436:64;:::i;:::-;6426:74;;6381:129;6549:2;6575:64;6631:7;6622:6;6611:9;6607:22;6575:64;:::i;:::-;6565:74;;6520:129;5993:663;;;;;:::o;6662:325::-;6719:6;6768:2;6756:9;6747:7;6743:23;6739:32;6736:119;;;6774:79;;:::i;:::-;6736:119;6894:1;6919:51;6962:7;6953:6;6942:9;6938:22;6919:51;:::i;:::-;6909:61;;6865:115;6662:325;;;;:::o;6993:179::-;7062:10;7083:46;7125:3;7117:6;7083:46;:::i;:::-;7161:4;7156:3;7152:14;7138:28;;6993:179;;;;:::o;7178:108::-;7255:24;7273:5;7255:24;:::i;:::-;7250:3;7243:37;7178:108;;:::o;7292:118::-;7379:24;7397:5;7379:24;:::i;:::-;7374:3;7367:37;7292:118;;:::o;7446:732::-;7565:3;7594:54;7642:5;7594:54;:::i;:::-;7664:86;7743:6;7738:3;7664:86;:::i;:::-;7657:93;;7774:56;7824:5;7774:56;:::i;:::-;7853:7;7884:1;7869:284;7894:6;7891:1;7888:13;7869:284;;;7970:6;7964:13;7997:63;8056:3;8041:13;7997:63;:::i;:::-;7990:70;;8083:60;8136:6;8083:60;:::i;:::-;8073:70;;7929:224;7916:1;7913;7909:9;7904:14;;7869:284;;;7873:14;8169:3;8162:10;;7570:608;;;7446:732;;;;:::o;8184:109::-;8265:21;8280:5;8265:21;:::i;:::-;8260:3;8253:34;8184:109;;:::o;8299:147::-;8394:45;8433:5;8394:45;:::i;:::-;8389:3;8382:58;8299:147;;:::o;8452:364::-;8540:3;8568:39;8601:5;8568:39;:::i;:::-;8623:71;8687:6;8682:3;8623:71;:::i;:::-;8616:78;;8703:52;8748:6;8743:3;8736:4;8729:5;8725:16;8703:52;:::i;:::-;8780:29;8802:6;8780:29;:::i;:::-;8775:3;8771:39;8764:46;;8544:272;8452:364;;;;:::o;8822:366::-;8964:3;8985:67;9049:2;9044:3;8985:67;:::i;:::-;8978:74;;9061:93;9150:3;9061:93;:::i;:::-;9179:2;9174:3;9170:12;9163:19;;8822:366;;;:::o;9194:::-;9336:3;9357:67;9421:2;9416:3;9357:67;:::i;:::-;9350:74;;9433:93;9522:3;9433:93;:::i;:::-;9551:2;9546:3;9542:12;9535:19;;9194:366;;;:::o;9566:::-;9708:3;9729:67;9793:2;9788:3;9729:67;:::i;:::-;9722:74;;9805:93;9894:3;9805:93;:::i;:::-;9923:2;9918:3;9914:12;9907:19;;9566:366;;;:::o;9938:::-;10080:3;10101:67;10165:2;10160:3;10101:67;:::i;:::-;10094:74;;10177:93;10266:3;10177:93;:::i;:::-;10295:2;10290:3;10286:12;10279:19;;9938:366;;;:::o;10310:::-;10452:3;10473:67;10537:2;10532:3;10473:67;:::i;:::-;10466:74;;10549:93;10638:3;10549:93;:::i;:::-;10667:2;10662:3;10658:12;10651:19;;10310:366;;;:::o;10682:::-;10824:3;10845:67;10909:2;10904:3;10845:67;:::i;:::-;10838:74;;10921:93;11010:3;10921:93;:::i;:::-;11039:2;11034:3;11030:12;11023:19;;10682:366;;;:::o;11054:::-;11196:3;11217:67;11281:2;11276:3;11217:67;:::i;:::-;11210:74;;11293:93;11382:3;11293:93;:::i;:::-;11411:2;11406:3;11402:12;11395:19;;11054:366;;;:::o;11426:::-;11568:3;11589:67;11653:2;11648:3;11589:67;:::i;:::-;11582:74;;11665:93;11754:3;11665:93;:::i;:::-;11783:2;11778:3;11774:12;11767:19;;11426:366;;;:::o;11798:::-;11940:3;11961:67;12025:2;12020:3;11961:67;:::i;:::-;11954:74;;12037:93;12126:3;12037:93;:::i;:::-;12155:2;12150:3;12146:12;12139:19;;11798:366;;;:::o;12170:::-;12312:3;12333:67;12397:2;12392:3;12333:67;:::i;:::-;12326:74;;12409:93;12498:3;12409:93;:::i;:::-;12527:2;12522:3;12518:12;12511:19;;12170:366;;;:::o;12542:::-;12684:3;12705:67;12769:2;12764:3;12705:67;:::i;:::-;12698:74;;12781:93;12870:3;12781:93;:::i;:::-;12899:2;12894:3;12890:12;12883:19;;12542:366;;;:::o;12914:::-;13056:3;13077:67;13141:2;13136:3;13077:67;:::i;:::-;13070:74;;13153:93;13242:3;13153:93;:::i;:::-;13271:2;13266:3;13262:12;13255:19;;12914:366;;;:::o;13286:118::-;13373:24;13391:5;13373:24;:::i;:::-;13368:3;13361:37;13286:118;;:::o;13410:112::-;13493:22;13509:5;13493:22;:::i;:::-;13488:3;13481:35;13410:112;;:::o;13528:222::-;13621:4;13659:2;13648:9;13644:18;13636:26;;13672:71;13740:1;13729:9;13725:17;13716:6;13672:71;:::i;:::-;13528:222;;;;:::o;13756:332::-;13877:4;13915:2;13904:9;13900:18;13892:26;;13928:71;13996:1;13985:9;13981:17;13972:6;13928:71;:::i;:::-;14009:72;14077:2;14066:9;14062:18;14053:6;14009:72;:::i;:::-;13756:332;;;;;:::o;14094:::-;14215:4;14253:2;14242:9;14238:18;14230:26;;14266:71;14334:1;14323:9;14319:17;14310:6;14266:71;:::i;:::-;14347:72;14415:2;14404:9;14400:18;14391:6;14347:72;:::i;:::-;14094:332;;;;;:::o;14432:807::-;14681:4;14719:3;14708:9;14704:19;14696:27;;14733:71;14801:1;14790:9;14786:17;14777:6;14733:71;:::i;:::-;14814:72;14882:2;14871:9;14867:18;14858:6;14814:72;:::i;:::-;14896:80;14972:2;14961:9;14957:18;14948:6;14896:80;:::i;:::-;14986;15062:2;15051:9;15047:18;15038:6;14986:80;:::i;:::-;15076:73;15144:3;15133:9;15129:19;15120:6;15076:73;:::i;:::-;15159;15227:3;15216:9;15212:19;15203:6;15159:73;:::i;:::-;14432:807;;;;;;;;;:::o;15245:210::-;15332:4;15370:2;15359:9;15355:18;15347:26;;15383:65;15445:1;15434:9;15430:17;15421:6;15383:65;:::i;:::-;15245:210;;;;:::o;15461:313::-;15574:4;15612:2;15601:9;15597:18;15589:26;;15661:9;15655:4;15651:20;15647:1;15636:9;15632:17;15625:47;15689:78;15762:4;15753:6;15689:78;:::i;:::-;15681:86;;15461:313;;;;:::o;15780:419::-;15946:4;15984:2;15973:9;15969:18;15961:26;;16033:9;16027:4;16023:20;16019:1;16008:9;16004:17;15997:47;16061:131;16187:4;16061:131;:::i;:::-;16053:139;;15780:419;;;:::o;16205:::-;16371:4;16409:2;16398:9;16394:18;16386:26;;16458:9;16452:4;16448:20;16444:1;16433:9;16429:17;16422:47;16486:131;16612:4;16486:131;:::i;:::-;16478:139;;16205:419;;;:::o;16630:::-;16796:4;16834:2;16823:9;16819:18;16811:26;;16883:9;16877:4;16873:20;16869:1;16858:9;16854:17;16847:47;16911:131;17037:4;16911:131;:::i;:::-;16903:139;;16630:419;;;:::o;17055:::-;17221:4;17259:2;17248:9;17244:18;17236:26;;17308:9;17302:4;17298:20;17294:1;17283:9;17279:17;17272:47;17336:131;17462:4;17336:131;:::i;:::-;17328:139;;17055:419;;;:::o;17480:::-;17646:4;17684:2;17673:9;17669:18;17661:26;;17733:9;17727:4;17723:20;17719:1;17708:9;17704:17;17697:47;17761:131;17887:4;17761:131;:::i;:::-;17753:139;;17480:419;;;:::o;17905:::-;18071:4;18109:2;18098:9;18094:18;18086:26;;18158:9;18152:4;18148:20;18144:1;18133:9;18129:17;18122:47;18186:131;18312:4;18186:131;:::i;:::-;18178:139;;17905:419;;;:::o;18330:::-;18496:4;18534:2;18523:9;18519:18;18511:26;;18583:9;18577:4;18573:20;18569:1;18558:9;18554:17;18547:47;18611:131;18737:4;18611:131;:::i;:::-;18603:139;;18330:419;;;:::o;18755:::-;18921:4;18959:2;18948:9;18944:18;18936:26;;19008:9;19002:4;18998:20;18994:1;18983:9;18979:17;18972:47;19036:131;19162:4;19036:131;:::i;:::-;19028:139;;18755:419;;;:::o;19180:::-;19346:4;19384:2;19373:9;19369:18;19361:26;;19433:9;19427:4;19423:20;19419:1;19408:9;19404:17;19397:47;19461:131;19587:4;19461:131;:::i;:::-;19453:139;;19180:419;;;:::o;19605:::-;19771:4;19809:2;19798:9;19794:18;19786:26;;19858:9;19852:4;19848:20;19844:1;19833:9;19829:17;19822:47;19886:131;20012:4;19886:131;:::i;:::-;19878:139;;19605:419;;;:::o;20030:::-;20196:4;20234:2;20223:9;20219:18;20211:26;;20283:9;20277:4;20273:20;20269:1;20258:9;20254:17;20247:47;20311:131;20437:4;20311:131;:::i;:::-;20303:139;;20030:419;;;:::o;20455:::-;20621:4;20659:2;20648:9;20644:18;20636:26;;20708:9;20702:4;20698:20;20694:1;20683:9;20679:17;20672:47;20736:131;20862:4;20736:131;:::i;:::-;20728:139;;20455:419;;;:::o;20880:222::-;20973:4;21011:2;21000:9;20996:18;20988:26;;21024:71;21092:1;21081:9;21077:17;21068:6;21024:71;:::i;:::-;20880:222;;;;:::o;21108:831::-;21371:4;21409:3;21398:9;21394:19;21386:27;;21423:71;21491:1;21480:9;21476:17;21467:6;21423:71;:::i;:::-;21504:80;21580:2;21569:9;21565:18;21556:6;21504:80;:::i;:::-;21631:9;21625:4;21621:20;21616:2;21605:9;21601:18;21594:48;21659:108;21762:4;21753:6;21659:108;:::i;:::-;21651:116;;21777:72;21845:2;21834:9;21830:18;21821:6;21777:72;:::i;:::-;21859:73;21927:3;21916:9;21912:19;21903:6;21859:73;:::i;:::-;21108:831;;;;;;;;:::o;21945:214::-;22034:4;22072:2;22061:9;22057:18;22049:26;;22085:67;22149:1;22138:9;22134:17;22125:6;22085:67;:::i;:::-;21945:214;;;;:::o;22165:129::-;22199:6;22226:20;;:::i;:::-;22216:30;;22255:33;22283:4;22275:6;22255:33;:::i;:::-;22165:129;;;:::o;22300:75::-;22333:6;22366:2;22360:9;22350:19;;22300:75;:::o;22381:311::-;22458:4;22548:18;22540:6;22537:30;22534:56;;;22570:18;;:::i;:::-;22534:56;22620:4;22612:6;22608:17;22600:25;;22680:4;22674;22670:15;22662:23;;22381:311;;;:::o;22698:132::-;22765:4;22788:3;22780:11;;22818:4;22813:3;22809:14;22801:22;;22698:132;;;:::o;22836:114::-;22903:6;22937:5;22931:12;22921:22;;22836:114;;;:::o;22956:99::-;23008:6;23042:5;23036:12;23026:22;;22956:99;;;:::o;23061:113::-;23131:4;23163;23158:3;23154:14;23146:22;;23061:113;;;:::o;23180:184::-;23279:11;23313:6;23308:3;23301:19;23353:4;23348:3;23344:14;23329:29;;23180:184;;;;:::o;23370:169::-;23454:11;23488:6;23483:3;23476:19;23528:4;23523:3;23519:14;23504:29;;23370:169;;;;:::o;23545:305::-;23585:3;23604:20;23622:1;23604:20;:::i;:::-;23599:25;;23638:20;23656:1;23638:20;:::i;:::-;23633:25;;23792:1;23724:66;23720:74;23717:1;23714:81;23711:107;;;23798:18;;:::i;:::-;23711:107;23842:1;23839;23835:9;23828:16;;23545:305;;;;:::o;23856:185::-;23896:1;23913:20;23931:1;23913:20;:::i;:::-;23908:25;;23947:20;23965:1;23947:20;:::i;:::-;23942:25;;23986:1;23976:35;;23991:18;;:::i;:::-;23976:35;24033:1;24030;24026:9;24021:14;;23856:185;;;;:::o;24047:348::-;24087:7;24110:20;24128:1;24110:20;:::i;:::-;24105:25;;24144:20;24162:1;24144:20;:::i;:::-;24139:25;;24332:1;24264:66;24260:74;24257:1;24254:81;24249:1;24242:9;24235:17;24231:105;24228:131;;;24339:18;;:::i;:::-;24228:131;24387:1;24384;24380:9;24369:20;;24047:348;;;;:::o;24401:191::-;24441:4;24461:20;24479:1;24461:20;:::i;:::-;24456:25;;24495:20;24513:1;24495:20;:::i;:::-;24490:25;;24534:1;24531;24528:8;24525:34;;;24539:18;;:::i;:::-;24525:34;24584:1;24581;24577:9;24569:17;;24401:191;;;;:::o;24598:96::-;24635:7;24664:24;24682:5;24664:24;:::i;:::-;24653:35;;24598:96;;;:::o;24700:90::-;24734:7;24777:5;24770:13;24763:21;24752:32;;24700:90;;;:::o;24796:126::-;24833:7;24873:42;24866:5;24862:54;24851:65;;24796:126;;;:::o;24928:77::-;24965:7;24994:5;24983:16;;24928:77;;;:::o;25011:86::-;25046:7;25086:4;25079:5;25075:16;25064:27;;25011:86;;;:::o;25103:121::-;25161:9;25194:24;25212:5;25194:24;:::i;:::-;25181:37;;25103:121;;;:::o;25230:307::-;25298:1;25308:113;25322:6;25319:1;25316:13;25308:113;;;25407:1;25402:3;25398:11;25392:18;25388:1;25383:3;25379:11;25372:39;25344:2;25341:1;25337:10;25332:15;;25308:113;;;25439:6;25436:1;25433:13;25430:101;;;25519:1;25510:6;25505:3;25501:16;25494:27;25430:101;25279:258;25230:307;;;:::o;25543:281::-;25626:27;25648:4;25626:27;:::i;:::-;25618:6;25614:40;25756:6;25744:10;25741:22;25720:18;25708:10;25705:34;25702:62;25699:88;;;25767:18;;:::i;:::-;25699:88;25807:10;25803:2;25796:22;25586:238;25543:281;;:::o;25830:233::-;25869:3;25892:24;25910:5;25892:24;:::i;:::-;25883:33;;25938:66;25931:5;25928:77;25925:103;;;26008:18;;:::i;:::-;25925:103;26055:1;26048:5;26044:13;26037:20;;25830:233;;;:::o;26069:180::-;26117:77;26114:1;26107:88;26214:4;26211:1;26204:15;26238:4;26235:1;26228:15;26255:180;26303:77;26300:1;26293:88;26400:4;26397:1;26390:15;26424:4;26421:1;26414:15;26441:180;26489:77;26486:1;26479:88;26586:4;26583:1;26576:15;26610:4;26607:1;26600:15;26627:180;26675:77;26672:1;26665:88;26772:4;26769:1;26762:15;26796:4;26793:1;26786:15;26813:117;26922:1;26919;26912:12;26936:117;27045:1;27042;27035:12;27059:117;27168:1;27165;27158:12;27182:117;27291:1;27288;27281:12;27305:102;27346:6;27397:2;27393:7;27388:2;27381:5;27377:14;27373:28;27363:38;;27305:102;;;:::o;27413:222::-;27553:34;27549:1;27541:6;27537:14;27530:58;27622:5;27617:2;27609:6;27605:15;27598:30;27413:222;:::o;27641:175::-;27781:27;27777:1;27769:6;27765:14;27758:51;27641:175;:::o;27822:229::-;27962:34;27958:1;27950:6;27946:14;27939:58;28031:12;28026:2;28018:6;28014:15;28007:37;27822:229;:::o;28057:221::-;28197:34;28193:1;28185:6;28181:14;28174:58;28266:4;28261:2;28253:6;28249:15;28242:29;28057:221;:::o;28284:177::-;28424:29;28420:1;28412:6;28408:14;28401:53;28284:177;:::o;28467:220::-;28607:34;28603:1;28595:6;28591:14;28584:58;28676:3;28671:2;28663:6;28659:15;28652:28;28467:220;:::o;28693:182::-;28833:34;28829:1;28821:6;28817:14;28810:58;28693:182;:::o;28881:228::-;29021:34;29017:1;29009:6;29005:14;28998:58;29090:11;29085:2;29077:6;29073:15;29066:36;28881:228;:::o;29115:224::-;29255:34;29251:1;29243:6;29239:14;29232:58;29324:7;29319:2;29311:6;29307:15;29300:32;29115:224;:::o;29345:176::-;29485:28;29481:1;29473:6;29469:14;29462:52;29345:176;:::o;29527:223::-;29667:34;29663:1;29655:6;29651:14;29644:58;29736:6;29731:2;29723:6;29719:15;29712:31;29527:223;:::o;29756:173::-;29896:25;29892:1;29884:6;29880:14;29873:49;29756:173;:::o;29935:122::-;30008:24;30026:5;30008:24;:::i;:::-;30001:5;29998:35;29988:63;;30047:1;30044;30037:12;29988:63;29935:122;:::o;30063:116::-;30133:21;30148:5;30133:21;:::i;:::-;30126:5;30123:32;30113:60;;30169:1;30166;30159:12;30113:60;30063:116;:::o;30185:122::-;30258:24;30276:5;30258:24;:::i;:::-;30251:5;30248:35;30238:63;;30297:1;30294;30287:12;30238:63;30185:122;:::o;30313:118::-;30384:22;30400:5;30384:22;:::i;:::-;30377:5;30374:33;30364:61;;30421:1;30418;30411:12;30364:61;30313:118;:::o

Swarm Source

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