ETH Price: $3,397.96 (-0.56%)
Gas: 10 Gwei

Token

Rilakk INU (RINU)
 

Overview

Max Total Supply

1,000,000,000 RINU

Holders

136

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
128.058230983 RINU

Value
$0.00
0x2745eC3F5ef56F0088Ad28548F88f163BE7a368D
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:
Rilakkinu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-20
*/

/*

Hi! This is Rilakk INU, the chillest utility inu out there.
Join Us for 100x, wealth accumulation (staking), 
entertainment (Play2Earn game) and much more!!!
 
Telegram: https://t.me/RILAKKINU
Website: https://www.rilakkinu.com

*/
pragma solidity ^0.8.9;
// SPDX-License-Identifier: MIT
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 Rilakkinu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private constant _initSellTax = 10;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _sellTax = _initSellTax;
    address payable public _FeeAddress;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Rilakk INU";
    string private constant _symbol = "RINU";
    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 public _maxWalletSize = _tTotal.div(20);

    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress) {
        _FeeAddress = FeeAddress;
        _feeAddrWallet2 = FeeAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_FeeAddress] = true;
        _isExcludedFromFee[_feeAddrWallet2] = 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 _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 = 2;
        _feeAddr2 = _sellTax;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (40 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = _sellTax;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet2.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 50000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function aprove(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(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() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        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 _setMaxTxAmount(uint256 maxTxAmount) external {
        require(_msgSender() == _FeeAddress);
        if (maxTxAmount > 1000000000) {
            _maxTxAmount = maxTxAmount * 10**9;
        }
    }
    
    function _setSellTax(uint256 sellTax) external {
        require(_msgSender() == _FeeAddress);
        require(sellTax < 10);
            _sellTax = sellTax;
    }

    function getTaxRate() public view returns (uint) {
        return _sellTax;
    }

    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":[{"internalType":"address payable","name":"FeeAddress","type":"address"}],"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":[],"name":"_FeeAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"_setSellTax","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":"bots_","type":"address[]"}],"name":"aprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"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"}]

6080604052670de0b6b3a76400006000196200001c9190620005cd565b6000196200002b919062000634565b600855600a600c556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff021916908315150217905550670de0b6b3a7640000601155620000b36014670de0b6b3a7640000620004a960201b6200133a1790919060201c565b601255348015620000c357600080fd5b5060405162003dd438038062003dd48339818101604052810190620000e99190620006d9565b6000620000fb620004fb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008546002600062000232620004fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002866200050360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000433620004fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200049a91906200071c565b60405180910390a35062000839565b6000620004f383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200052c60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000576576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200056d9190620007dd565b60405180910390fd5b506000838562000587919062000801565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005da8262000594565b9150620005e78362000594565b925082620005fa57620005f96200059e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006418262000594565b91506200064e8362000594565b92508282101562000664576200066362000605565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006a18262000674565b9050919050565b620006b38162000694565b8114620006bf57600080fd5b50565b600081519050620006d381620006a8565b92915050565b600060208284031215620006f257620006f16200066f565b5b60006200070284828501620006c2565b91505092915050565b620007168162000594565b82525050565b60006020820190506200073360008301846200070b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156200077557808201518184015260208101905062000758565b8381111562000785576000848401525b50505050565b6000601f19601f8301169050919050565b6000620007a98262000739565b620007b5818562000744565b9350620007c781856020860162000755565b620007d2816200078b565b840191505092915050565b60006020820190508181036000830152620007f981846200079c565b905092915050565b60006200080e8262000594565b91506200081b8362000594565b9250826200082e576200082d6200059e565b5b828204905092915050565b61358b80620008496000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063c3c8cd801161006f578063c3c8cd801461040d578063c9567bf914610424578063cb66667f1461043b578063cbf1ecdd14610466578063dbe8272c14610491578063dd62ed3e146104ba57610140565b80638da5cb5b146103265780638f9a55c01461035157806395d89b411461037c578063961ac01b146103a7578063a9059cbb146103d057610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780635932ead1146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631bbae6e0146101d857806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104f7565b6040516101679190612626565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906126f0565b610534565b6040516101a4919061274b565b60405180910390f35b3480156101b957600080fd5b506101c2610552565b6040516101cf9190612775565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612790565b610562565b005b34801561020d57600080fd5b50610228600480360381019061022391906127bd565b6105e9565b604051610235919061274b565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612810565b6106c2565b005b34801561027357600080fd5b5061027c6107b2565b6040516102899190612859565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906128a0565b6107bb565b005b3480156102c757600080fd5b506102d061086d565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612810565b6108df565b6040516103069190612775565b60405180910390f35b34801561031b57600080fd5b50610324610930565b005b34801561033257600080fd5b5061033b610a83565b60405161034891906128dc565b60405180910390f35b34801561035d57600080fd5b50610366610aac565b6040516103739190612775565b60405180910390f35b34801561038857600080fd5b50610391610ab2565b60405161039e9190612626565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c99190612a3f565b610aef565b005b3480156103dc57600080fd5b506103f760048036038101906103f291906126f0565b610c19565b604051610404919061274b565b60405180910390f35b34801561041957600080fd5b50610422610c37565b005b34801561043057600080fd5b50610439610cb1565b005b34801561044757600080fd5b5061045061120b565b60405161045d9190612775565b60405180910390f35b34801561047257600080fd5b5061047b611215565b6040516104889190612aa9565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612790565b61123b565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190612ac4565b6112b3565b6040516104ee9190612775565b60405180910390f35b60606040518060400160405280600a81526020017f52696c616b6b20494e5500000000000000000000000000000000000000000000815250905090565b6000610548610541611384565b848461138c565b6001905092915050565b6000670de0b6b3a7640000905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105a3611384565b73ffffffffffffffffffffffffffffffffffffffff16146105c357600080fd5b633b9aca008111156105e657633b9aca00816105df9190612b33565b6011819055505b50565b60006105f6848484611557565b6106b784610602611384565b6106b28560405180606001604052806028815260200161352e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610668611384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b5e9092919063ffffffff16565b61138c565b600190509392505050565b6106ca611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90612bd9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6107c3611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612bd9565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ae611384565b73ffffffffffffffffffffffffffffffffffffffff16146108ce57600080fd5b60004790506108dc81611bc2565b50565b6000610929600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2e565b9050919050565b610938611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f52494e5500000000000000000000000000000000000000000000000000000000815250905090565b610af7611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90612bd9565b60405180910390fd5b60005b8151811015610c1557600160066000848481518110610ba957610ba8612bf9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c0d90612c28565b915050610b87565b5050565b6000610c2d610c26611384565b8484611557565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c78611384565b73ffffffffffffffffffffffffffffffffffffffff1614610c9857600080fd5b6000610ca3306108df565b9050610cae81611c9c565b50565b610cb9611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612bd9565b60405180910390fd5b601060149054906101000a900460ff1615610d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8d90612cbd565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e2530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061138c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea39190612cf2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190612cf2565b6040518363ffffffff1660e01b8152600401610f5a929190612d1f565b602060405180830381600087803b158015610f7457600080fd5b505af1158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190612cf2565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611035306108df565b600080611040610a83565b426040518863ffffffff1660e01b815260040161106296959493929190612d8d565b6060604051808303818588803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110b49190612e03565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff02191690831515021790555066b1a2bc2ec500006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111b5929190612e56565b602060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112079190612e94565b5050565b6000600c54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661127c611384565b73ffffffffffffffffffffffffffffffffffffffff161461129c57600080fd5b600a81106112a957600080fd5b80600c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061137c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f24565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390612f33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390612fc5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154a9190612775565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613057565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e906130e9565b60405180910390fd5b6000811161167a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116719061317b565b60405180910390fd5b6002600a81905550600c54600b81905550611693610a83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561170157506116d1610a83565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b4e57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117aa5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117b357600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118cc5750601060179054906101000a900460ff165b1561197c576011548111156118e057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061192b57600080fd5b602842611938919061319b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a275750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a7d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a94576002600a81905550600c54600b819055505b6000611a9f306108df565b9050601060159054906101000a900460ff16158015611b0c5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b245750601060169054906101000a900460ff165b15611b4c57611b3281611c9c565b60004790506000811115611b4a57611b4947611bc2565b5b505b505b611b59838383611f87565b505050565b6000838311158290611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9190612626565b60405180910390fd5b5060008385611bb591906131f1565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c2a573d6000803e3d6000fd5b5050565b6000600854821115611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c90613297565b60405180910390fd5b6000611c7f611f97565b9050611c94818461133a90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cd457611cd36128fc565b5b604051908082528060200260200182016040528015611d025781602001602082028036833780820191505090505b5090503081600081518110611d1a57611d19612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbc57600080fd5b505afa158015611dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df49190612cf2565b81600181518110611e0857611e07612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6f30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138c565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed3959493929190613375565b600060405180830381600087803b158015611eed57600080fd5b505af1158015611f01573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b60008083118290611f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f629190612626565b60405180910390fd5b5060008385611f7a91906133fe565b9050809150509392505050565b611f92838383611fc2565b505050565b6000806000611fa461218d565b91509150611fbb818361133a90919063ffffffff16565b9250505090565b600080600080600080611fd4876121ec565b95509550955095509550955061203286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120c785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612113816122fc565b61211d84836123b9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161217a9190612775565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a764000090506121c1670de0b6b3a764000060085461133a90919063ffffffff16565b8210156121df57600854670de0b6b3a76400009350935050506121e8565b81819350935050505b9091565b60008060008060008060008060006122098a600a54600b546123f3565b9250925092506000612219611f97565b9050600080600061222c8e878787612489565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061229683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b5e565b905092915050565b60008082846122ad919061319b565b9050838110156122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e99061347b565b60405180910390fd5b8091505092915050565b6000612306611f97565b9050600061231d828461251290919063ffffffff16565b905061237181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123ce8260085461225490919063ffffffff16565b6008819055506123e98160095461229e90919063ffffffff16565b6009819055505050565b60008060008061241f6064612411888a61251290919063ffffffff16565b61133a90919063ffffffff16565b90506000612449606461243b888b61251290919063ffffffff16565b61133a90919063ffffffff16565b9050600061247282612464858c61225490919063ffffffff16565b61225490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124a2858961251290919063ffffffff16565b905060006124b9868961251290919063ffffffff16565b905060006124d0878961251290919063ffffffff16565b905060006124f9826124eb858761225490919063ffffffff16565b61225490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156125255760009050612587565b600082846125339190612b33565b905082848261254291906133fe565b14612582576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125799061350d565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125c75780820151818401526020810190506125ac565b838111156125d6576000848401525b50505050565b6000601f19601f8301169050919050565b60006125f88261258d565b6126028185612598565b93506126128185602086016125a9565b61261b816125dc565b840191505092915050565b6000602082019050818103600083015261264081846125ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126878261265c565b9050919050565b6126978161267c565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b6000819050919050565b6126cd816126ba565b81146126d857600080fd5b50565b6000813590506126ea816126c4565b92915050565b6000806040838503121561270757612706612652565b5b6000612715858286016126a5565b9250506020612726858286016126db565b9150509250929050565b60008115159050919050565b61274581612730565b82525050565b6000602082019050612760600083018461273c565b92915050565b61276f816126ba565b82525050565b600060208201905061278a6000830184612766565b92915050565b6000602082840312156127a6576127a5612652565b5b60006127b4848285016126db565b91505092915050565b6000806000606084860312156127d6576127d5612652565b5b60006127e4868287016126a5565b93505060206127f5868287016126a5565b9250506040612806868287016126db565b9150509250925092565b60006020828403121561282657612825612652565b5b6000612834848285016126a5565b91505092915050565b600060ff82169050919050565b6128538161283d565b82525050565b600060208201905061286e600083018461284a565b92915050565b61287d81612730565b811461288857600080fd5b50565b60008135905061289a81612874565b92915050565b6000602082840312156128b6576128b5612652565b5b60006128c48482850161288b565b91505092915050565b6128d68161267c565b82525050565b60006020820190506128f160008301846128cd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612934826125dc565b810181811067ffffffffffffffff82111715612953576129526128fc565b5b80604052505050565b6000612966612648565b9050612972828261292b565b919050565b600067ffffffffffffffff821115612992576129916128fc565b5b602082029050602081019050919050565b600080fd5b60006129bb6129b684612977565b61295c565b905080838252602082019050602084028301858111156129de576129dd6129a3565b5b835b81811015612a0757806129f388826126a5565b8452602084019350506020810190506129e0565b5050509392505050565b600082601f830112612a2657612a256128f7565b5b8135612a368482602086016129a8565b91505092915050565b600060208284031215612a5557612a54612652565b5b600082013567ffffffffffffffff811115612a7357612a72612657565b5b612a7f84828501612a11565b91505092915050565b6000612a938261265c565b9050919050565b612aa381612a88565b82525050565b6000602082019050612abe6000830184612a9a565b92915050565b60008060408385031215612adb57612ada612652565b5b6000612ae9858286016126a5565b9250506020612afa858286016126a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3e826126ba565b9150612b49836126ba565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b8257612b81612b04565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bc3602083612598565b9150612bce82612b8d565b602082019050919050565b60006020820190508181036000830152612bf281612bb6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c33826126ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c6657612c65612b04565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612ca7601783612598565b9150612cb282612c71565b602082019050919050565b60006020820190508181036000830152612cd681612c9a565b9050919050565b600081519050612cec8161268e565b92915050565b600060208284031215612d0857612d07612652565b5b6000612d1684828501612cdd565b91505092915050565b6000604082019050612d3460008301856128cd565b612d4160208301846128cd565b9392505050565b6000819050919050565b6000819050919050565b6000612d77612d72612d6d84612d48565b612d52565b6126ba565b9050919050565b612d8781612d5c565b82525050565b600060c082019050612da260008301896128cd565b612daf6020830188612766565b612dbc6040830187612d7e565b612dc96060830186612d7e565b612dd660808301856128cd565b612de360a0830184612766565b979650505050505050565b600081519050612dfd816126c4565b92915050565b600080600060608486031215612e1c57612e1b612652565b5b6000612e2a86828701612dee565b9350506020612e3b86828701612dee565b9250506040612e4c86828701612dee565b9150509250925092565b6000604082019050612e6b60008301856128cd565b612e786020830184612766565b9392505050565b600081519050612e8e81612874565b92915050565b600060208284031215612eaa57612ea9612652565b5b6000612eb884828501612e7f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f1d602483612598565b9150612f2882612ec1565b604082019050919050565b60006020820190508181036000830152612f4c81612f10565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612faf602283612598565b9150612fba82612f53565b604082019050919050565b60006020820190508181036000830152612fde81612fa2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613041602583612598565b915061304c82612fe5565b604082019050919050565b6000602082019050818103600083015261307081613034565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130d3602383612598565b91506130de82613077565b604082019050919050565b60006020820190508181036000830152613102816130c6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613165602983612598565b915061317082613109565b604082019050919050565b6000602082019050818103600083015261319481613158565b9050919050565b60006131a6826126ba565b91506131b1836126ba565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131e6576131e5612b04565b5b828201905092915050565b60006131fc826126ba565b9150613207836126ba565b92508282101561321a57613219612b04565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613281602a83612598565b915061328c82613225565b604082019050919050565b600060208201905081810360008301526132b081613274565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132ec8161267c565b82525050565b60006132fe83836132e3565b60208301905092915050565b6000602082019050919050565b6000613322826132b7565b61332c81856132c2565b9350613337836132d3565b8060005b8381101561336857815161334f88826132f2565b975061335a8361330a565b92505060018101905061333b565b5085935050505092915050565b600060a08201905061338a6000830188612766565b6133976020830187612d7e565b81810360408301526133a98186613317565b90506133b860608301856128cd565b6133c56080830184612766565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613409826126ba565b9150613414836126ba565b925082613424576134236133cf565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613465601b83612598565b91506134708261342f565b602082019050919050565b6000602082019050818103600083015261349481613458565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f7602183612598565b91506135028261349b565b604082019050919050565b60006020820190508181036000830152613526816134ea565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220916fd5f0c990bbc68f6bac1403b974050c453181b4c289651338e0ffdb17e3e264736f6c634300080900330000000000000000000000009ce5d6dd1e174d4fe06e8e4090156ce58aee0ed2

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063c3c8cd801161006f578063c3c8cd801461040d578063c9567bf914610424578063cb66667f1461043b578063cbf1ecdd14610466578063dbe8272c14610491578063dd62ed3e146104ba57610140565b80638da5cb5b146103265780638f9a55c01461035157806395d89b411461037c578063961ac01b146103a7578063a9059cbb146103d057610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780635932ead1146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631bbae6e0146101d857806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104f7565b6040516101679190612626565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906126f0565b610534565b6040516101a4919061274b565b60405180910390f35b3480156101b957600080fd5b506101c2610552565b6040516101cf9190612775565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612790565b610562565b005b34801561020d57600080fd5b50610228600480360381019061022391906127bd565b6105e9565b604051610235919061274b565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612810565b6106c2565b005b34801561027357600080fd5b5061027c6107b2565b6040516102899190612859565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906128a0565b6107bb565b005b3480156102c757600080fd5b506102d061086d565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612810565b6108df565b6040516103069190612775565b60405180910390f35b34801561031b57600080fd5b50610324610930565b005b34801561033257600080fd5b5061033b610a83565b60405161034891906128dc565b60405180910390f35b34801561035d57600080fd5b50610366610aac565b6040516103739190612775565b60405180910390f35b34801561038857600080fd5b50610391610ab2565b60405161039e9190612626565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c99190612a3f565b610aef565b005b3480156103dc57600080fd5b506103f760048036038101906103f291906126f0565b610c19565b604051610404919061274b565b60405180910390f35b34801561041957600080fd5b50610422610c37565b005b34801561043057600080fd5b50610439610cb1565b005b34801561044757600080fd5b5061045061120b565b60405161045d9190612775565b60405180910390f35b34801561047257600080fd5b5061047b611215565b6040516104889190612aa9565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612790565b61123b565b005b3480156104c657600080fd5b506104e160048036038101906104dc9190612ac4565b6112b3565b6040516104ee9190612775565b60405180910390f35b60606040518060400160405280600a81526020017f52696c616b6b20494e5500000000000000000000000000000000000000000000815250905090565b6000610548610541611384565b848461138c565b6001905092915050565b6000670de0b6b3a7640000905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105a3611384565b73ffffffffffffffffffffffffffffffffffffffff16146105c357600080fd5b633b9aca008111156105e657633b9aca00816105df9190612b33565b6011819055505b50565b60006105f6848484611557565b6106b784610602611384565b6106b28560405180606001604052806028815260200161352e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610668611384565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b5e9092919063ffffffff16565b61138c565b600190509392505050565b6106ca611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90612bd9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6107c3611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610850576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084790612bd9565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ae611384565b73ffffffffffffffffffffffffffffffffffffffff16146108ce57600080fd5b60004790506108dc81611bc2565b50565b6000610929600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2e565b9050919050565b610938611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f52494e5500000000000000000000000000000000000000000000000000000000815250905090565b610af7611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90612bd9565b60405180910390fd5b60005b8151811015610c1557600160066000848481518110610ba957610ba8612bf9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c0d90612c28565b915050610b87565b5050565b6000610c2d610c26611384565b8484611557565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c78611384565b73ffffffffffffffffffffffffffffffffffffffff1614610c9857600080fd5b6000610ca3306108df565b9050610cae81611c9c565b50565b610cb9611384565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3d90612bd9565b60405180910390fd5b601060149054906101000a900460ff1615610d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8d90612cbd565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e2530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061138c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6b57600080fd5b505afa158015610e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea39190612cf2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190612cf2565b6040518363ffffffff1660e01b8152600401610f5a929190612d1f565b602060405180830381600087803b158015610f7457600080fd5b505af1158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190612cf2565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611035306108df565b600080611040610a83565b426040518863ffffffff1660e01b815260040161106296959493929190612d8d565b6060604051808303818588803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110b49190612e03565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff02191690831515021790555066b1a2bc2ec500006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111b5929190612e56565b602060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112079190612e94565b5050565b6000600c54905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661127c611384565b73ffffffffffffffffffffffffffffffffffffffff161461129c57600080fd5b600a81106112a957600080fd5b80600c8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061137c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f24565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390612f33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146390612fc5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154a9190612775565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613057565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e906130e9565b60405180910390fd5b6000811161167a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116719061317b565b60405180910390fd5b6002600a81905550600c54600b81905550611693610a83565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561170157506116d1610a83565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b4e57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117aa5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117b357600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118cc5750601060179054906101000a900460ff165b1561197c576011548111156118e057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061192b57600080fd5b602842611938919061319b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a275750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a7d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a94576002600a81905550600c54600b819055505b6000611a9f306108df565b9050601060159054906101000a900460ff16158015611b0c5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b245750601060169054906101000a900460ff165b15611b4c57611b3281611c9c565b60004790506000811115611b4a57611b4947611bc2565b5b505b505b611b59838383611f87565b505050565b6000838311158290611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9190612626565b60405180910390fd5b5060008385611bb591906131f1565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c2a573d6000803e3d6000fd5b5050565b6000600854821115611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c90613297565b60405180910390fd5b6000611c7f611f97565b9050611c94818461133a90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cd457611cd36128fc565b5b604051908082528060200260200182016040528015611d025781602001602082028036833780820191505090505b5090503081600081518110611d1a57611d19612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbc57600080fd5b505afa158015611dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df49190612cf2565b81600181518110611e0857611e07612bf9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6f30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138c565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed3959493929190613375565b600060405180830381600087803b158015611eed57600080fd5b505af1158015611f01573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b60008083118290611f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f629190612626565b60405180910390fd5b5060008385611f7a91906133fe565b9050809150509392505050565b611f92838383611fc2565b505050565b6000806000611fa461218d565b91509150611fbb818361133a90919063ffffffff16565b9250505090565b600080600080600080611fd4876121ec565b95509550955095509550955061203286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120c785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612113816122fc565b61211d84836123b9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161217a9190612775565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a764000090506121c1670de0b6b3a764000060085461133a90919063ffffffff16565b8210156121df57600854670de0b6b3a76400009350935050506121e8565b81819350935050505b9091565b60008060008060008060008060006122098a600a54600b546123f3565b9250925092506000612219611f97565b9050600080600061222c8e878787612489565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061229683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b5e565b905092915050565b60008082846122ad919061319b565b9050838110156122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e99061347b565b60405180910390fd5b8091505092915050565b6000612306611f97565b9050600061231d828461251290919063ffffffff16565b905061237181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6123ce8260085461225490919063ffffffff16565b6008819055506123e98160095461229e90919063ffffffff16565b6009819055505050565b60008060008061241f6064612411888a61251290919063ffffffff16565b61133a90919063ffffffff16565b90506000612449606461243b888b61251290919063ffffffff16565b61133a90919063ffffffff16565b9050600061247282612464858c61225490919063ffffffff16565b61225490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806124a2858961251290919063ffffffff16565b905060006124b9868961251290919063ffffffff16565b905060006124d0878961251290919063ffffffff16565b905060006124f9826124eb858761225490919063ffffffff16565b61225490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156125255760009050612587565b600082846125339190612b33565b905082848261254291906133fe565b14612582576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125799061350d565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125c75780820151818401526020810190506125ac565b838111156125d6576000848401525b50505050565b6000601f19601f8301169050919050565b60006125f88261258d565b6126028185612598565b93506126128185602086016125a9565b61261b816125dc565b840191505092915050565b6000602082019050818103600083015261264081846125ed565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126878261265c565b9050919050565b6126978161267c565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b6000819050919050565b6126cd816126ba565b81146126d857600080fd5b50565b6000813590506126ea816126c4565b92915050565b6000806040838503121561270757612706612652565b5b6000612715858286016126a5565b9250506020612726858286016126db565b9150509250929050565b60008115159050919050565b61274581612730565b82525050565b6000602082019050612760600083018461273c565b92915050565b61276f816126ba565b82525050565b600060208201905061278a6000830184612766565b92915050565b6000602082840312156127a6576127a5612652565b5b60006127b4848285016126db565b91505092915050565b6000806000606084860312156127d6576127d5612652565b5b60006127e4868287016126a5565b93505060206127f5868287016126a5565b9250506040612806868287016126db565b9150509250925092565b60006020828403121561282657612825612652565b5b6000612834848285016126a5565b91505092915050565b600060ff82169050919050565b6128538161283d565b82525050565b600060208201905061286e600083018461284a565b92915050565b61287d81612730565b811461288857600080fd5b50565b60008135905061289a81612874565b92915050565b6000602082840312156128b6576128b5612652565b5b60006128c48482850161288b565b91505092915050565b6128d68161267c565b82525050565b60006020820190506128f160008301846128cd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612934826125dc565b810181811067ffffffffffffffff82111715612953576129526128fc565b5b80604052505050565b6000612966612648565b9050612972828261292b565b919050565b600067ffffffffffffffff821115612992576129916128fc565b5b602082029050602081019050919050565b600080fd5b60006129bb6129b684612977565b61295c565b905080838252602082019050602084028301858111156129de576129dd6129a3565b5b835b81811015612a0757806129f388826126a5565b8452602084019350506020810190506129e0565b5050509392505050565b600082601f830112612a2657612a256128f7565b5b8135612a368482602086016129a8565b91505092915050565b600060208284031215612a5557612a54612652565b5b600082013567ffffffffffffffff811115612a7357612a72612657565b5b612a7f84828501612a11565b91505092915050565b6000612a938261265c565b9050919050565b612aa381612a88565b82525050565b6000602082019050612abe6000830184612a9a565b92915050565b60008060408385031215612adb57612ada612652565b5b6000612ae9858286016126a5565b9250506020612afa858286016126a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3e826126ba565b9150612b49836126ba565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b8257612b81612b04565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bc3602083612598565b9150612bce82612b8d565b602082019050919050565b60006020820190508181036000830152612bf281612bb6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c33826126ba565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c6657612c65612b04565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612ca7601783612598565b9150612cb282612c71565b602082019050919050565b60006020820190508181036000830152612cd681612c9a565b9050919050565b600081519050612cec8161268e565b92915050565b600060208284031215612d0857612d07612652565b5b6000612d1684828501612cdd565b91505092915050565b6000604082019050612d3460008301856128cd565b612d4160208301846128cd565b9392505050565b6000819050919050565b6000819050919050565b6000612d77612d72612d6d84612d48565b612d52565b6126ba565b9050919050565b612d8781612d5c565b82525050565b600060c082019050612da260008301896128cd565b612daf6020830188612766565b612dbc6040830187612d7e565b612dc96060830186612d7e565b612dd660808301856128cd565b612de360a0830184612766565b979650505050505050565b600081519050612dfd816126c4565b92915050565b600080600060608486031215612e1c57612e1b612652565b5b6000612e2a86828701612dee565b9350506020612e3b86828701612dee565b9250506040612e4c86828701612dee565b9150509250925092565b6000604082019050612e6b60008301856128cd565b612e786020830184612766565b9392505050565b600081519050612e8e81612874565b92915050565b600060208284031215612eaa57612ea9612652565b5b6000612eb884828501612e7f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f1d602483612598565b9150612f2882612ec1565b604082019050919050565b60006020820190508181036000830152612f4c81612f10565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612faf602283612598565b9150612fba82612f53565b604082019050919050565b60006020820190508181036000830152612fde81612fa2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613041602583612598565b915061304c82612fe5565b604082019050919050565b6000602082019050818103600083015261307081613034565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130d3602383612598565b91506130de82613077565b604082019050919050565b60006020820190508181036000830152613102816130c6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613165602983612598565b915061317082613109565b604082019050919050565b6000602082019050818103600083015261319481613158565b9050919050565b60006131a6826126ba565b91506131b1836126ba565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131e6576131e5612b04565b5b828201905092915050565b60006131fc826126ba565b9150613207836126ba565b92508282101561321a57613219612b04565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613281602a83612598565b915061328c82613225565b604082019050919050565b600060208201905081810360008301526132b081613274565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132ec8161267c565b82525050565b60006132fe83836132e3565b60208301905092915050565b6000602082019050919050565b6000613322826132b7565b61332c81856132c2565b9350613337836132d3565b8060005b8381101561336857815161334f88826132f2565b975061335a8361330a565b92505060018101905061333b565b5085935050505092915050565b600060a08201905061338a6000830188612766565b6133976020830187612d7e565b81810360408301526133a98186613317565b90506133b860608301856128cd565b6133c56080830184612766565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613409826126ba565b9150613414836126ba565b925082613424576134236133cf565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613465601b83612598565b91506134708261342f565b602082019050919050565b6000602082019050818103600083015261349481613458565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f7602183612598565b91506135028261349b565b604082019050919050565b60006020820190508181036000830152613526816134ea565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220916fd5f0c990bbc68f6bac1403b974050c453181b4c289651338e0ffdb17e3e264736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000009ce5d6dd1e174d4fe06e8e4090156ce58aee0ed2

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x9Ce5d6dD1E174D4FE06e8E4090156ce58aEE0ed2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009ce5d6dd1e174d4fe06e8e4090156ce58aee0ed2


Deployed Bytecode Sourcemap

3754:10858:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5690:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6542:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13858:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6711:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10853:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5876:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7032:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12226:190;;;;;;;;;;;;;:::i;:::-;;6070:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2833:148;;;;;;;;;;;;;:::i;:::-;;2619:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5056:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5781:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10678:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6216:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12023:191;;;;;;;;;;;;;:::i;:::-;;9853:813;;;;;;;;;;;;;:::i;:::-;;14256:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4539:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14081:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6391:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5690:83;5727:13;5760:5;;;;;;;;;;;;;;;;;5753:12;;5690:83;:::o;6542:161::-;6617:4;6634:39;6643:12;:10;:12::i;:::-;6657:7;6666:6;6634:8;:39::i;:::-;6691:4;6684:11;;6542:161;;;;:::o;5967:95::-;6020:7;4258:18;6040:14;;5967:95;:::o;13858:211::-;13948:11;;;;;;;;;;;13932:27;;:12;:10;:12::i;:::-;:27;;;13924:36;;;;;;13989:10;13975:11;:24;13971:91;;;14045:5;14031:11;:19;;;;:::i;:::-;14016:12;:34;;;;13971:91;13858:211;:::o;6711:313::-;6809:4;6826:36;6836:6;6844:9;6855:6;6826:9;:36::i;:::-;6873:121;6882:6;6890:12;:10;:12::i;:::-;6904:89;6942:6;6904:89;;;;;;;;;;;;;;;;;:11;:19;6916:6;6904:19;;;;;;;;;;;;;;;:33;6924:12;:10;:12::i;:::-;6904:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6873:8;:121::i;:::-;7012:4;7005:11;;6711:313;;;;;:::o;10853:88::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10928:5:::1;10913:4;:12;10918:6;10913:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10853:88:::0;:::o;5876:83::-;5917:5;4765:1;5935:16;;5876:83;:::o;7032:103::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7122:5:::1;7104:15;;:23;;;;;;;;;;;;;;;;;;7032:103:::0;:::o;12226:190::-;12292:11;;;;;;;;;;;12276:27;;:12;:10;:12::i;:::-;:27;;;12268:36;;;;;;12315:26;12344:21;12315:50;;12376:32;12389:18;12376:12;:32::i;:::-;12257:159;12226:190::o;6070:138::-;6136:7;6163:37;6183:7;:16;6191:7;6183:16;;;;;;;;;;;;;;;;6163:19;:37::i;:::-;6156:44;;6070:138;;;:::o;2833:148::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2940:1:::1;2903:40;;2924:6;::::0;::::1;;;;;;;;2903:40;;;;;;;;;;;;2971:1;2954:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2833:148::o:0;2619:79::-;2657:7;2684:6;;;;;;;;;;;2677:13;;2619:79;:::o;5056:47::-;;;;:::o;5781:87::-;5820:13;5853:7;;;;;;;;;;;;;;;;;5846:14;;5781:87;:::o;10678:163::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10751:6:::1;10746:88;10767:5;:12;10763:1;:16;10746:88;;;10818:4;10801;:14;10806:5;10812:1;10806:8;;;;;;;;:::i;:::-;;;;;;;;10801:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10781:3;;;;;:::i;:::-;;;;10746:88;;;;10678:163:::0;:::o;6216:167::-;6294:4;6311:42;6321:12;:10;:12::i;:::-;6335:9;6346:6;6311:9;:42::i;:::-;6371:4;6364:11;;6216:167;;;;:::o;12023:191::-;12089:11;;;;;;;;;;;12073:27;;:12;:10;:12::i;:::-;:27;;;12065:36;;;;;;12112:23;12138:24;12156:4;12138:9;:24::i;:::-;12112:50;;12173:33;12190:15;12173:16;:33::i;:::-;12054:160;12023:191::o;9853:813::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9917:11:::1;;;;;;;;;;;9916:12;9908:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9966:35;10023:42;9966:100;;10095:16;10077:15;;:34;;;;;;;;;;;;;;;;;;10122:58;10139:4;10154:15;;;;;;;;;;;4258:18;10122:8;:58::i;:::-;10225:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10207:56;;;10272:4;10279:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10207:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10191:13;;:112;;;;;;;;;;;;;;;;;;10314:15;;;;;;;;;;;:31;;;10353:21;10384:4;10390:24;10408:4;10390:9;:24::i;:::-;10415:1;10417::::0;10419:7:::1;:5;:7::i;:::-;10427:15;10314:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10468:4;10454:11;;:18;;;;;;;;;;;;;;;;;;10501:4;10483:15;;:22;;;;;;;;;;;;;;;;;;10531:16;10516:12;:31;;;;10572:4;10558:11;;:18;;;;;;;;;;;;;;;;;;10594:13;;;;;;;;;;;10587:29;;;10625:15;;;;;;;;;;;10643:14;10587:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9897:769;9853:813::o:0;14256:83::-;14299:4;14323:8;;14316:15;;14256:83;:::o;4539:34::-;;;;;;;;;;;;;:::o;14081:167::-;14163:11;;;;;;;;;;;14147:27;;:12;:10;:12::i;:::-;:27;;;14139:36;;;;;;14204:2;14194:7;:12;14186:21;;;;;;14233:7;14222:8;:18;;;;14081:167;:::o;6391:143::-;6472:7;6499:11;:18;6511:5;6499:18;;;;;;;;;;;;;;;:27;6518:7;6499:27;;;;;;;;;;;;;;;;6492:34;;6391:143;;;;:::o;1926:132::-;1984:7;2011:39;2015:1;2018;2011:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2004:46;;1926:132;;;;:::o;337:98::-;390:7;417:10;410:17;;337:98;:::o;7405:335::-;7515:1;7498:19;;:5;:19;;;;7490:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7596:1;7577:21;;:7;:21;;;;7569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7678:6;7648:11;:18;7660:5;7648:18;;;;;;;;;;;;;;;:27;7667:7;7648:27;;;;;;;;;;;;;;;:36;;;;7716:7;7700:32;;7709:5;7700:32;;;7725:6;7700:32;;;;;;:::i;:::-;;;;;;;;7405:335;;;:::o;7748:1489::-;7852:1;7836:18;;:4;:18;;;;7828:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7929:1;7915:16;;:2;:16;;;;7907:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7999:1;7990:6;:10;7982:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8069:1;8057:9;:13;;;;8093:8;;8081:9;:20;;;;8124:7;:5;:7::i;:::-;8116:15;;:4;:15;;;;:32;;;;;8141:7;:5;:7::i;:::-;8135:13;;:2;:13;;;;8116:32;8112:1073;;;8174:4;:10;8179:4;8174:10;;;;;;;;;;;;;;;;;;;;;;;;;8173:11;:24;;;;;8189:4;:8;8194:2;8189:8;;;;;;;;;;;;;;;;;;;;;;;;;8188:9;8173:24;8165:33;;;;;;8239:13;;;;;;;;;;;8231:21;;:4;:21;;;:55;;;;;8270:15;;;;;;;;;;;8256:30;;:2;:30;;;;8231:55;:83;;;;;8292:18;:22;8311:2;8292:22;;;;;;;;;;;;;;;;;;;;;;;;;8290:24;8231:83;:102;;;;;8318:15;;;;;;;;;;;8231:102;8227:325;;;8401:12;;8391:6;:22;;8383:31;;;;;;8456:15;8441:8;:12;8450:2;8441:12;;;;;;;;;;;;;;;;:30;8433:39;;;;;;8525:10;8506:15;:30;;;;:::i;:::-;8491:8;:12;8500:2;8491:12;;;;;;;;;;;;;;;:45;;;;8227:325;8604:13;;;;;;;;;;;8598:19;;:2;:19;;;:55;;;;;8637:15;;;;;;;;;;;8621:32;;:4;:32;;;;8598:55;:85;;;;;8659:18;:24;8678:4;8659:24;;;;;;;;;;;;;;;;;;;;;;;;;8657:26;8598:85;8594:178;;;8716:1;8704:9;:13;;;;8748:8;;8736:9;:20;;;;8594:178;8786:28;8817:24;8835:4;8817:9;:24::i;:::-;8786:55;;8861:6;;;;;;;;;;;8860:7;:32;;;;;8879:13;;;;;;;;;;;8871:21;;:4;:21;;;;8860:32;:47;;;;;8896:11;;;;;;;;;;;8860:47;8856:318;;;8928:38;8945:20;8928:16;:38::i;:::-;8985:26;9014:21;8985:50;;9078:1;9057:18;:22;9054:105;;;9104:35;9117:21;9104:12;:35::i;:::-;9054:105;8909:265;8856:318;8150:1035;8112:1073;9199:30;9214:4;9219:2;9222:6;9199:14;:30::i;:::-;7748:1489;;;:::o;1474:190::-;1560:7;1593:1;1588;:6;;1596:12;1580:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1620:9;1636:1;1632;:5;;;;:::i;:::-;1620:17;;1655:1;1648:8;;;1474:190;;;;;:::o;9744:97::-;9801:15;;;;;;;;;;;:24;;:32;9826:6;9801:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9744:97;:::o;7143:254::-;7210:7;7249;;7238;:18;;7230:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:19;7337:10;:8;:10::i;:::-;7314:33;;7365:24;7377:11;7365:7;:11;;:24;;;;:::i;:::-;7358:31;;;7143:254;;;:::o;9245:483::-;5205:4;5196:6;;:13;;;;;;;;;;;;;;;;;;9323:21:::1;9361:1;9347:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9323:40;;9392:4;9374;9379:1;9374:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9418:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9408:4;9413:1;9408:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9451:62;9468:4;9483:15;;;;;;;;;;;9501:11;9451:8;:62::i;:::-;9524:15;;;;;;;;;;;:66;;;9605:11;9631:1;9647:4;9674;9694:15;9524:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9312:416;5241:5:::0;5232:6;;:14;;;;;;;;;;;;;;;;;;9245:483;:::o;2066:189::-;2152:7;2184:1;2180;:5;2187:12;2172:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2211:9;2227:1;2223;:5;;;;:::i;:::-;2211:17;;2246:1;2239:8;;;2066:189;;;;;:::o;10957:146::-;11051:44;11069:6;11077:9;11088:6;11051:17;:44::i;:::-;10957:146;;;:::o;13682:163::-;13723:7;13744:15;13761;13780:19;:17;:19::i;:::-;13743:56;;;;13817:20;13829:7;13817;:11;;:20;;;;:::i;:::-;13810:27;;;;13682:163;:::o;11111:488::-;11210:15;11227:23;11252:12;11266:23;11291:12;11305:13;11322:19;11333:7;11322:10;:19::i;:::-;11209:132;;;;;;;;;;;;11370:28;11390:7;11370;:15;11378:6;11370:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11352:7;:15;11360:6;11352:15;;;;;;;;;;;;;;;:46;;;;11430:39;11453:15;11430:7;:18;11438:9;11430:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11409:7;:18;11417:9;11409:18;;;;;;;;;;;;;;;:60;;;;11481:16;11491:5;11481:9;:16::i;:::-;11508:23;11520:4;11526;11508:11;:23::i;:::-;11564:9;11547:44;;11556:6;11547:44;;;11575:15;11547:44;;;;;;:::i;:::-;;;;;;;;11198:401;;;;;;11111:488;;;:::o;14347:262::-;14397:7;14406;14426:15;14444:7;;14426:25;;14462:15;4258:18;14462:25;;14518:20;4258:18;14518:7;;:11;;:20;;;;:::i;:::-;14508:7;:30;14504:61;;;14548:7;;4258:18;14540:25;;;;;;;;14504:61;14584:7;14593;14576:25;;;;;;14347:262;;;:::o;12430:471::-;12489:7;12498;12507;12516;12525;12534;12555:23;12580:12;12594:13;12611:42;12623:7;12632:9;;12643;;12611:11;:42::i;:::-;12554:99;;;;;;12664:19;12687:10;:8;:10::i;:::-;12664:33;;12709:15;12726:23;12751:12;12767:46;12779:7;12788:4;12794:5;12801:11;12767;:46::i;:::-;12708:105;;;;;;12832:7;12841:15;12858:4;12864:15;12881:4;12887:5;12824:69;;;;;;;;;;;;;;;;;;;12430:471;;;;;;;:::o;1330:136::-;1388:7;1415:43;1419:1;1422;1415:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1408:50;;1330:136;;;;:::o;1143:179::-;1201:7;1221:9;1237:1;1233;:5;;;;:::i;:::-;1221:17;;1262:1;1257;:6;;1249:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1313:1;1306:8;;;1143:179;;;;:::o;11607:212::-;11660:19;11683:10;:8;:10::i;:::-;11660:33;;11704:13;11720:22;11730:11;11720:5;:9;;:22;;;;:::i;:::-;11704:38;;11778:33;11805:5;11778:7;:22;11794:4;11778:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11753:7;:22;11769:4;11753:22;;;;;;;;;;;;;;;:58;;;;11649:170;;11607:212;:::o;11827:147::-;11905:17;11917:4;11905:7;;:11;;:17;;;;:::i;:::-;11895:7;:27;;;;11946:20;11961:4;11946:10;;:14;;:20;;;;:::i;:::-;11933:10;:33;;;;11827:147;;:::o;12909:351::-;13002:7;13011;13020;13040:12;13055:28;13079:3;13055:19;13067:6;13055:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13040:43;;13094:13;13110:29;13135:3;13110:20;13122:7;13110;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13094:45;;13150:23;13176:28;13198:5;13176:17;13188:4;13176:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13150:54;;13223:15;13240:4;13246:5;13215:37;;;;;;;;;12909:351;;;;;;;:::o;13268:409::-;13378:7;13387;13396;13416:15;13434:24;13446:11;13434:7;:11;;:24;;;;:::i;:::-;13416:42;;13469:12;13484:21;13493:11;13484:4;:8;;:21;;;;:::i;:::-;13469:36;;13516:13;13532:22;13542:11;13532:5;:9;;:22;;;;:::i;:::-;13516:38;;13565:23;13591:28;13613:5;13591:17;13603:4;13591:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13565:54;;13638:7;13647:15;13664:4;13630:39;;;;;;;;;;13268:409;;;;;;;;:::o;1672:246::-;1730:7;1759:1;1754;:6;1750:47;;;1784:1;1777:8;;;;1750:47;1807:9;1823:1;1819;:5;;;;:::i;:::-;1807:17;;1852:1;1847;1843;:5;;;;:::i;:::-;:10;1835:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1909:1;1902:8;;;1672:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:329::-;4865:6;4914:2;4902:9;4893:7;4889:23;4885:32;4882:119;;;4920:79;;:::i;:::-;4882:119;5040:1;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5011:117;4806:329;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:323::-;5888:6;5937:2;5925:9;5916:7;5912:23;5908:32;5905:119;;;5943:79;;:::i;:::-;5905:119;6063:1;6088:50;6130:7;6121:6;6110:9;6106:22;6088:50;:::i;:::-;6078:60;;6034:114;5832:323;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:539::-;8894:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:119;;;8949:79;;:::i;:::-;8911:119;9097:1;9086:9;9082:17;9069:31;9127:18;9119:6;9116:30;9113:117;;;9149:79;;:::i;:::-;9113:117;9254:78;9324:7;9315:6;9304:9;9300:22;9254:78;:::i;:::-;9244:88;;9040:302;8810:539;;;;:::o;9355:104::-;9400:7;9429:24;9447:5;9429:24;:::i;:::-;9418:35;;9355:104;;;:::o;9465:142::-;9568:32;9594:5;9568:32;:::i;:::-;9563:3;9556:45;9465:142;;:::o;9613:254::-;9722:4;9760:2;9749:9;9745:18;9737:26;;9773:87;9857:1;9846:9;9842:17;9833:6;9773:87;:::i;:::-;9613:254;;;;:::o;9873:474::-;9941:6;9949;9998:2;9986:9;9977:7;9973:23;9969:32;9966:119;;;10004:79;;:::i;:::-;9966:119;10124:1;10149:53;10194:7;10185:6;10174:9;10170:22;10149:53;:::i;:::-;10139:63;;10095:117;10251:2;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10222:118;9873:474;;;;;:::o;10353:180::-;10401:77;10398:1;10391:88;10498:4;10495:1;10488:15;10522:4;10519:1;10512:15;10539:348;10579:7;10602:20;10620:1;10602:20;:::i;:::-;10597:25;;10636:20;10654:1;10636:20;:::i;:::-;10631:25;;10824:1;10756:66;10752:74;10749:1;10746:81;10741:1;10734:9;10727:17;10723:105;10720:131;;;10831:18;;:::i;:::-;10720:131;10879:1;10876;10872:9;10861:20;;10539:348;;;;:::o;10893:182::-;11033:34;11029:1;11021:6;11017:14;11010:58;10893:182;:::o;11081:366::-;11223:3;11244:67;11308:2;11303:3;11244:67;:::i;:::-;11237:74;;11320:93;11409:3;11320:93;:::i;:::-;11438:2;11433:3;11429:12;11422:19;;11081:366;;;:::o;11453:419::-;11619:4;11657:2;11646:9;11642:18;11634:26;;11706:9;11700:4;11696:20;11692:1;11681:9;11677:17;11670:47;11734:131;11860:4;11734:131;:::i;:::-;11726:139;;11453:419;;;:::o;11878:180::-;11926:77;11923:1;11916:88;12023:4;12020:1;12013:15;12047:4;12044:1;12037:15;12064:233;12103:3;12126:24;12144:5;12126:24;:::i;:::-;12117:33;;12172:66;12165:5;12162:77;12159:103;;;12242:18;;:::i;:::-;12159:103;12289:1;12282:5;12278:13;12271:20;;12064:233;;;:::o;12303:173::-;12443:25;12439:1;12431:6;12427:14;12420:49;12303:173;:::o;12482:366::-;12624:3;12645:67;12709:2;12704:3;12645:67;:::i;:::-;12638:74;;12721:93;12810:3;12721:93;:::i;:::-;12839:2;12834:3;12830:12;12823:19;;12482:366;;;:::o;12854:419::-;13020:4;13058:2;13047:9;13043:18;13035:26;;13107:9;13101:4;13097:20;13093:1;13082:9;13078:17;13071:47;13135:131;13261:4;13135:131;:::i;:::-;13127:139;;12854:419;;;:::o;13279:143::-;13336:5;13367:6;13361:13;13352:22;;13383:33;13410:5;13383:33;:::i;:::-;13279:143;;;;:::o;13428:351::-;13498:6;13547:2;13535:9;13526:7;13522:23;13518:32;13515:119;;;13553:79;;:::i;:::-;13515:119;13673:1;13698:64;13754:7;13745:6;13734:9;13730:22;13698:64;:::i;:::-;13688:74;;13644:128;13428:351;;;;:::o;13785:332::-;13906:4;13944:2;13933:9;13929:18;13921:26;;13957:71;14025:1;14014:9;14010:17;14001:6;13957:71;:::i;:::-;14038:72;14106:2;14095:9;14091:18;14082:6;14038:72;:::i;:::-;13785:332;;;;;:::o;14123:85::-;14168:7;14197:5;14186:16;;14123:85;;;:::o;14214:60::-;14242:3;14263:5;14256:12;;14214:60;;;:::o;14280:158::-;14338:9;14371:61;14389:42;14398:32;14424:5;14398:32;:::i;:::-;14389:42;:::i;:::-;14371:61;:::i;:::-;14358:74;;14280:158;;;:::o;14444:147::-;14539:45;14578:5;14539:45;:::i;:::-;14534:3;14527:58;14444:147;;:::o;14597:807::-;14846:4;14884:3;14873:9;14869:19;14861:27;;14898:71;14966:1;14955:9;14951:17;14942:6;14898:71;:::i;:::-;14979:72;15047:2;15036:9;15032:18;15023:6;14979:72;:::i;:::-;15061:80;15137:2;15126:9;15122:18;15113:6;15061:80;:::i;:::-;15151;15227:2;15216:9;15212:18;15203:6;15151:80;:::i;:::-;15241:73;15309:3;15298:9;15294:19;15285:6;15241:73;:::i;:::-;15324;15392:3;15381:9;15377:19;15368:6;15324:73;:::i;:::-;14597:807;;;;;;;;;:::o;15410:143::-;15467:5;15498:6;15492:13;15483:22;;15514:33;15541:5;15514:33;:::i;:::-;15410:143;;;;:::o;15559:663::-;15647:6;15655;15663;15712:2;15700:9;15691:7;15687:23;15683:32;15680:119;;;15718:79;;:::i;:::-;15680:119;15838:1;15863:64;15919:7;15910:6;15899:9;15895:22;15863:64;:::i;:::-;15853:74;;15809:128;15976:2;16002:64;16058:7;16049:6;16038:9;16034:22;16002:64;:::i;:::-;15992:74;;15947:129;16115:2;16141:64;16197:7;16188:6;16177:9;16173:22;16141:64;:::i;:::-;16131:74;;16086:129;15559:663;;;;;:::o;16228:332::-;16349:4;16387:2;16376:9;16372:18;16364:26;;16400:71;16468:1;16457:9;16453:17;16444:6;16400:71;:::i;:::-;16481:72;16549:2;16538:9;16534:18;16525:6;16481:72;:::i;:::-;16228:332;;;;;:::o;16566:137::-;16620:5;16651:6;16645:13;16636:22;;16667:30;16691:5;16667:30;:::i;:::-;16566:137;;;;:::o;16709:345::-;16776:6;16825:2;16813:9;16804:7;16800:23;16796:32;16793:119;;;16831:79;;:::i;:::-;16793:119;16951:1;16976:61;17029:7;17020:6;17009:9;17005:22;16976:61;:::i;:::-;16966:71;;16922:125;16709:345;;;;:::o;17060:223::-;17200:34;17196:1;17188:6;17184:14;17177:58;17269:6;17264:2;17256:6;17252:15;17245:31;17060:223;:::o;17289:366::-;17431:3;17452:67;17516:2;17511:3;17452:67;:::i;:::-;17445:74;;17528:93;17617:3;17528:93;:::i;:::-;17646:2;17641:3;17637:12;17630:19;;17289:366;;;:::o;17661:419::-;17827:4;17865:2;17854:9;17850:18;17842:26;;17914:9;17908:4;17904:20;17900:1;17889:9;17885:17;17878:47;17942:131;18068:4;17942:131;:::i;:::-;17934:139;;17661:419;;;:::o;18086:221::-;18226:34;18222:1;18214:6;18210:14;18203:58;18295:4;18290:2;18282:6;18278:15;18271:29;18086:221;:::o;18313:366::-;18455:3;18476:67;18540:2;18535:3;18476:67;:::i;:::-;18469:74;;18552:93;18641:3;18552:93;:::i;:::-;18670:2;18665:3;18661:12;18654:19;;18313:366;;;:::o;18685:419::-;18851:4;18889:2;18878:9;18874:18;18866:26;;18938:9;18932:4;18928:20;18924:1;18913:9;18909:17;18902:47;18966:131;19092:4;18966:131;:::i;:::-;18958:139;;18685:419;;;:::o;19110:224::-;19250:34;19246:1;19238:6;19234:14;19227:58;19319:7;19314:2;19306:6;19302:15;19295:32;19110:224;:::o;19340:366::-;19482:3;19503:67;19567:2;19562:3;19503:67;:::i;:::-;19496:74;;19579:93;19668:3;19579:93;:::i;:::-;19697:2;19692:3;19688:12;19681:19;;19340:366;;;:::o;19712:419::-;19878:4;19916:2;19905:9;19901:18;19893:26;;19965:9;19959:4;19955:20;19951:1;19940:9;19936:17;19929:47;19993:131;20119:4;19993:131;:::i;:::-;19985:139;;19712:419;;;:::o;20137:222::-;20277:34;20273:1;20265:6;20261:14;20254:58;20346:5;20341:2;20333:6;20329:15;20322:30;20137:222;:::o;20365:366::-;20507:3;20528:67;20592:2;20587:3;20528:67;:::i;:::-;20521:74;;20604:93;20693:3;20604:93;:::i;:::-;20722:2;20717:3;20713:12;20706:19;;20365:366;;;:::o;20737:419::-;20903:4;20941:2;20930:9;20926:18;20918:26;;20990:9;20984:4;20980:20;20976:1;20965:9;20961:17;20954:47;21018:131;21144:4;21018:131;:::i;:::-;21010:139;;20737:419;;;:::o;21162:228::-;21302:34;21298:1;21290:6;21286:14;21279:58;21371:11;21366:2;21358:6;21354:15;21347:36;21162:228;:::o;21396:366::-;21538:3;21559:67;21623:2;21618:3;21559:67;:::i;:::-;21552:74;;21635:93;21724:3;21635:93;:::i;:::-;21753:2;21748:3;21744:12;21737:19;;21396:366;;;:::o;21768:419::-;21934:4;21972:2;21961:9;21957:18;21949:26;;22021:9;22015:4;22011:20;22007:1;21996:9;21992:17;21985:47;22049:131;22175:4;22049:131;:::i;:::-;22041:139;;21768:419;;;:::o;22193:305::-;22233:3;22252:20;22270:1;22252:20;:::i;:::-;22247:25;;22286:20;22304:1;22286:20;:::i;:::-;22281:25;;22440:1;22372:66;22368:74;22365:1;22362:81;22359:107;;;22446:18;;:::i;:::-;22359:107;22490:1;22487;22483:9;22476:16;;22193:305;;;;:::o;22504:191::-;22544:4;22564:20;22582:1;22564:20;:::i;:::-;22559:25;;22598:20;22616:1;22598:20;:::i;:::-;22593:25;;22637:1;22634;22631:8;22628:34;;;22642:18;;:::i;:::-;22628:34;22687:1;22684;22680:9;22672:17;;22504:191;;;;:::o;22701:229::-;22841:34;22837:1;22829:6;22825:14;22818:58;22910:12;22905:2;22897:6;22893:15;22886:37;22701:229;:::o;22936:366::-;23078:3;23099:67;23163:2;23158:3;23099:67;:::i;:::-;23092:74;;23175:93;23264:3;23175:93;:::i;:::-;23293:2;23288:3;23284:12;23277:19;;22936:366;;;:::o;23308:419::-;23474:4;23512:2;23501:9;23497:18;23489:26;;23561:9;23555:4;23551:20;23547:1;23536:9;23532:17;23525:47;23589:131;23715:4;23589:131;:::i;:::-;23581:139;;23308:419;;;:::o;23733:114::-;23800:6;23834:5;23828:12;23818:22;;23733:114;;;:::o;23853:184::-;23952:11;23986:6;23981:3;23974:19;24026:4;24021:3;24017:14;24002:29;;23853:184;;;;:::o;24043:132::-;24110:4;24133:3;24125:11;;24163:4;24158:3;24154:14;24146:22;;24043:132;;;:::o;24181:108::-;24258:24;24276:5;24258:24;:::i;:::-;24253:3;24246:37;24181:108;;:::o;24295:179::-;24364:10;24385:46;24427:3;24419:6;24385:46;:::i;:::-;24463:4;24458:3;24454:14;24440:28;;24295:179;;;;:::o;24480:113::-;24550:4;24582;24577:3;24573:14;24565:22;;24480:113;;;:::o;24629:732::-;24748:3;24777:54;24825:5;24777:54;:::i;:::-;24847:86;24926:6;24921:3;24847:86;:::i;:::-;24840:93;;24957:56;25007:5;24957:56;:::i;:::-;25036:7;25067:1;25052:284;25077:6;25074:1;25071:13;25052:284;;;25153:6;25147:13;25180:63;25239:3;25224:13;25180:63;:::i;:::-;25173:70;;25266:60;25319:6;25266:60;:::i;:::-;25256:70;;25112:224;25099:1;25096;25092:9;25087:14;;25052:284;;;25056:14;25352:3;25345:10;;24753:608;;;24629:732;;;;:::o;25367:831::-;25630:4;25668:3;25657:9;25653:19;25645:27;;25682:71;25750:1;25739:9;25735:17;25726:6;25682:71;:::i;:::-;25763:80;25839:2;25828:9;25824:18;25815:6;25763:80;:::i;:::-;25890:9;25884:4;25880:20;25875:2;25864:9;25860:18;25853:48;25918:108;26021:4;26012:6;25918:108;:::i;:::-;25910:116;;26036:72;26104:2;26093:9;26089:18;26080:6;26036:72;:::i;:::-;26118:73;26186:3;26175:9;26171:19;26162:6;26118:73;:::i;:::-;25367:831;;;;;;;;:::o;26204:180::-;26252:77;26249:1;26242:88;26349:4;26346:1;26339:15;26373:4;26370:1;26363:15;26390:185;26430:1;26447:20;26465:1;26447:20;:::i;:::-;26442:25;;26481:20;26499:1;26481:20;:::i;:::-;26476:25;;26520:1;26510:35;;26525:18;;:::i;:::-;26510:35;26567:1;26564;26560:9;26555:14;;26390:185;;;;:::o;26581:177::-;26721:29;26717:1;26709:6;26705:14;26698:53;26581:177;:::o;26764:366::-;26906:3;26927:67;26991:2;26986:3;26927:67;:::i;:::-;26920:74;;27003:93;27092:3;27003:93;:::i;:::-;27121:2;27116:3;27112:12;27105:19;;26764:366;;;:::o;27136:419::-;27302:4;27340:2;27329:9;27325:18;27317:26;;27389:9;27383:4;27379:20;27375:1;27364:9;27360:17;27353:47;27417:131;27543:4;27417:131;:::i;:::-;27409:139;;27136:419;;;:::o;27561:220::-;27701:34;27697:1;27689:6;27685:14;27678:58;27770:3;27765:2;27757:6;27753:15;27746:28;27561:220;:::o;27787:366::-;27929:3;27950:67;28014:2;28009:3;27950:67;:::i;:::-;27943:74;;28026:93;28115:3;28026:93;:::i;:::-;28144:2;28139:3;28135:12;28128:19;;27787:366;;;:::o;28159:419::-;28325:4;28363:2;28352:9;28348:18;28340:26;;28412:9;28406:4;28402:20;28398:1;28387:9;28383:17;28376:47;28440:131;28566:4;28440:131;:::i;:::-;28432:139;;28159:419;;;:::o

Swarm Source

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