ETH Price: $2,448.48 (+1.18%)

Token

AUSTAMA (AUSTAMA)
 

Overview

Max Total Supply

1,000,000,000 AUSTAMA

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,201,315.472501373 AUSTAMA

Value
$0.00
0x7cd1220dfc2b311784823482660a28d506f59d87
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:
AUSTAMA

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-22
*/

// Telegram: https://t.me/austamaportal
// Website: https://austama.space  
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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 AUSTAMA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    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 time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**9 * 10**9;
    uint256 private fee1=60;
    uint256 private fee2=60;
    uint256 private liqfee=30;
    uint256 private feeMax=100;
    uint256 private percent1=60;
    uint256 private percent2=20;
    uint256 private percent3=20;
    string private constant _name = "AUSTAMA";
    string private constant _symbol = "AUSTAMA";
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _feeAddrWallet2 = payable(0xaF4e43eda8AfeD3b25C4747203276BD2ad540d87);
        _feeAddrWallet3 = payable(0x3062d9D71d2E836bE060E7204f796adBf6073263);
        _tOwned[address(this)] = _tTotal.div(100).mul(98);
        _tOwned[address(0xaF4e43eda8AfeD3b25C4747203276BD2ad540d87)] = _tTotal.div(100).mul(1);
        _tOwned[address(0x4124bF057525C1B9305761dFF6A4A7519AEe6924)] = _tTotal.div(100).mul(1);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal.div(100).mul(100));
    }

    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 _tOwned[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 changeFees(uint8 _fee1,uint8 _fee2,uint8 _liq) external {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= feeMax && _fee2 <= feeMax && liqfee <= feeMax,"Cannot set fees above maximum");
        fee1 = _fee1;
        fee2 = _fee2;
        liqfee = _liq;
    }

    function changeFeeDist(uint8 _percent1,uint8 _percent2,uint8 _percent3) external {
        require(_msgSender() == _feeAddrWallet1);
        require((_percent1 + _percent2 + _percent3) == 100,"Total percentage has to be 100");
        percent1 = _percent1;
        percent2 = _percent2;
        percent3 = _percent3;
    }

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

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

        _tax = fee1.add(liqfee);
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _tax = fee2.add(liqfee);
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapAndLiquify(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
		
        _transferStandard(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 swapAndLiquify(uint256 tokenAmount) private {
        uint256 half = liqfee.div(2);
        uint256 part = fee2.add(half);
        uint256 sum = fee2.add(liqfee);
        uint256 swapTotal = tokenAmount.mul(part).div(sum);
        swapTokensForEth(swapTotal);
        addLiquidity(tokenAmount.sub(swapTotal),address(this).balance.mul(half).div(part),_feeAddrWallet1);
    }

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(100).mul(percent1));
        _feeAddrWallet2.transfer(amount.div(100).mul(percent2));
        _feeAddrWallet3.transfer(amount.div(100).mul(percent3));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(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 _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapAndLiquify(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _feeAddrWallet1);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_percent1","type":"uint8"},{"internalType":"uint8","name":"_percent2","type":"uint8"},{"internalType":"uint8","name":"_percent3","type":"uint8"}],"name":"changeFeeDist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"},{"internalType":"uint8","name":"_liq","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"}]

6080604052603c600955603c600a55601e600b556064600c55603c600d556014600e556014600f55620000646064620000506002670de0b6b3a76400006200085760201b620010cd1790919060201c565b620008db60201b620011481790919060201c565b6010556200008b6103e8670de0b6b3a7640000620008db60201b620011481790919060201c565b6011556000601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055506000620000d56200092d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073af4e43eda8afed3b25c4747203276bd2ad540d87601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733062d9d71d2e836be060e7204f796adbf6073263601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200029b6062620002876064670de0b6b3a7640000620008db60201b620011481790919060201c565b6200085760201b620010cd1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200031b6001620003076064670de0b6b3a7640000620008db60201b620011481790919060201c565b6200085760201b620010cd1790919060201c565b6002600073af4e43eda8afed3b25c4747203276bd2ad540d8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003af60016200039b6064670de0b6b3a7640000620008db60201b620011481790919060201c565b6200085760201b620010cd1790919060201c565b60026000734124bf057525c1b9305761dff6a4a7519aee692473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200041c6200093560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620005fd57600080fd5b505afa15801562000612573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006389190620009dd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620006bd57600080fd5b505afa158015620006d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006f89190620009dd565b6040518363ffffffff1660e01b81526004016200071792919062000a93565b602060405180830381600087803b1580156200073257600080fd5b505af115801562000747573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200076d9190620009dd565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200083a6064620008266064670de0b6b3a7640000620008db60201b620011481790919060201c565b6200085760201b620010cd1790919060201c565b60405162000849919062000b06565b60405180910390a362000d24565b6000808314156200086c5760009050620008d5565b600082846200087c919062000b77565b90508284826200088d919062000b3f565b14620008d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c79062000ae4565b60405180910390fd5b809150505b92915050565b60006200092583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200095e60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099f919062000ac0565b60405180910390fd5b5060008385620009b9919062000b3f565b9050809150509392505050565b600081519050620009d78162000d0a565b92915050565b600060208284031215620009f057600080fd5b600062000a0084828501620009c6565b91505092915050565b62000a148162000bd8565b82525050565b600062000a278262000b23565b62000a33818562000b2e565b935062000a4581856020860162000c16565b62000a508162000caa565b840191505092915050565b600062000a6a60218362000b2e565b915062000a778262000cbb565b604082019050919050565b62000a8d8162000c0c565b82525050565b600060408201905062000aaa600083018562000a09565b62000ab9602083018462000a09565b9392505050565b6000602082019050818103600083015262000adc818462000a1a565b905092915050565b6000602082019050818103600083015262000aff8162000a5b565b9050919050565b600060208201905062000b1d600083018462000a82565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000b4c8262000c0c565b915062000b598362000c0c565b92508262000b6c5762000b6b62000c7b565b5b828204905092915050565b600062000b848262000c0c565b915062000b918362000c0c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bcd5762000bcc62000c4c565b5b828202905092915050565b600062000be58262000bec565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000c3657808201518184015260208101905062000c19565b8381111562000c46576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000d158162000bd8565b811462000d2157600080fd5b50565b6135948062000d346000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103b8578063b515566a146103f5578063c3c8cd801461041e578063c9567bf914610435578063dd62ed3e1461044c5761012a565b8063715018a6146102f95780637e37e9bb146103105780638da5cb5b1461033957806395d89b41146103645780639909979d1461038f5761012a565b8063273123b7116100e7578063273123b714610228578063313ce567146102515780634ea18fab1461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806316114acd1461019757806318160ddd146101c057806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610489565b6040516101519190612bd8565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906126c6565b6104c6565b60405161018e9190612bbd565b60405180910390f35b3480156101a357600080fd5b506101be60048036038101906101b991906125e9565b6104e4565b005b3480156101cc57600080fd5b506101d5610686565b6040516101e29190612d7a565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612677565b610696565b60405161021f9190612bbd565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906125e9565b61076f565b005b34801561025d57600080fd5b5061026661085f565b6040516102739190612def565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061276c565b610868565b005b3480156102b157600080fd5b506102ba6108d3565b005b3480156102c857600080fd5b506102e360048036038101906102de91906125e9565b610945565b6040516102f09190612d7a565b60405180910390f35b34801561030557600080fd5b5061030e61098e565b005b34801561031c57600080fd5b506103376004803603810190610332919061280d565b610ae1565b005b34801561034557600080fd5b5061034e610bce565b60405161035b9190612b18565b60405180910390f35b34801561037057600080fd5b50610379610bf7565b6040516103869190612bd8565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b1919061280d565b610c34565b005b3480156103c457600080fd5b506103df60048036038101906103da91906126c6565b610d14565b6040516103ec9190612bbd565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612702565b610d32565b005b34801561042a57600080fd5b50610433610e82565b005b34801561044157600080fd5b5061044a610efc565b005b34801561045857600080fd5b50610473600480360381019061046e919061263b565b611046565b6040516104809190612d7a565b60405180910390f35b60606040518060400160405280600781526020017f41555354414d4100000000000000000000000000000000000000000000000000815250905090565b60006104da6104d3611192565b848461119a565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610525611192565b73ffffffffffffffffffffffffffffffffffffffff161461054557600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105c29190612b18565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190612795565b6040518363ffffffff1660e01b815260040161062f929190612b33565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190612743565b505050565b6000670de0b6b3a7640000905090565b60006106a3848484611365565b610764846106af611192565b61075f8560405180606001604052806028815260200161353760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610715611192565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1c9092919063ffffffff16565b61119a565b600190509392505050565b610777611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90612c9a565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a9611192565b73ffffffffffffffffffffffffffffffffffffffff16146108c957600080fd5b8060118190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610914611192565b73ffffffffffffffffffffffffffffffffffffffff161461093457600080fd5b600047905061094281611a80565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610996611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612c9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b22611192565b73ffffffffffffffffffffffffffffffffffffffff1614610b4257600080fd5b600c548360ff1611158015610b5c5750600c548260ff1611155b8015610b6c5750600c54600b5411155b610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba290612d5a565b60405180910390fd5b8260ff166009819055508160ff16600a819055508060ff16600b81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f41555354414d4100000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c75611192565b73ffffffffffffffffffffffffffffffffffffffff1614610c9557600080fd5b6064818385610ca49190612f06565b610cae9190612f06565b60ff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890612cfa565b60405180910390fd5b8260ff16600d819055508160ff16600e819055508060ff16600f81905550505050565b6000610d28610d21611192565b8484611365565b6001905092915050565b610d3a611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90612c9a565b60405180910390fd5b60005b8151811015610e7e57600160056000848481518110610e12577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e76906130fd565b915050610dca565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec3611192565b73ffffffffffffffffffffffffffffffffffffffff1614610ee357600080fd5b6000610eee30610945565b9050610ef981611c33565b50565b610f04611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612c9a565b60405180910390fd5b601660149054906101000a900460ff1615610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612d3a565b60405180910390fd5b610ffb610fed30610945565b47610ff6610bce565b611d1d565b60016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555061012c4261103e9190612eb0565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808314156110e05760009050611142565b600082846110ee9190612f6e565b90508284826110fd9190612f3d565b1461113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490612c7a565b60405180910390fd5b809150505b92915050565b600061118a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e41565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612d1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190612c3a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113589190612d7a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612c1a565b60405180910390fd5b60008111611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f90612cba565b60405180910390fd5b61149f600b54600954611ea490919063ffffffff16565b6008819055506114ad610bce565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561151b57506114eb610bce565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a0c57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115c45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115cd57600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116785750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116ce5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116db575060075442105b1561178b576010548111156116ef57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061173a57600080fd5b601e426117479190612eb0565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118365750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561188c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118af576118a8600b54600a54611ea490919063ffffffff16565b6008819055505b601660159054906101000a900460ff1615801561191a5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611930575060168054906101000a900460ff165b80156119865750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a0b5760075442116119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c690612bfa565b60405180910390fd5b60006119da30610945565b9050601154811115611a09576119ef81611c33565b60004790506000811115611a0757611a0647611a80565b5b505b505b5b611a17838383611f02565b505050565b6000838311158290611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b9190612bd8565b60405180910390fd5b5060008385611a739190612fc8565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae4600d54611ad660648661114890919063ffffffff16565b6110cd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0f573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b74600e54611b6660648661114890919063ffffffff16565b6110cd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b9f573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c04600f54611bf660648661114890919063ffffffff16565b6110cd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c2f573d6000803e3d6000fd5b5050565b6000611c4b6002600b5461114890919063ffffffff16565b90506000611c6482600a54611ea490919063ffffffff16565b90506000611c7f600b54600a54611ea490919063ffffffff16565b90506000611ca882611c9a85886110cd90919063ffffffff16565b61114890919063ffffffff16565b9050611cb38161213d565b611d16611cc9828761243790919063ffffffff16565b611cee85611ce088476110cd90919063ffffffff16565b61114890919063ffffffff16565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d1d565b5050505050565b6001601660156101000a81548160ff021916908315150217905550611d6530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561119a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611dcc96959493929190612b5c565b6060604051808303818588803b158015611de557600080fd5b505af1158015611df9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1e91906127be565b5050506000601660156101000a81548160ff021916908315150217905550505050565b60008083118290611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f9190612bd8565b60405180910390fd5b5060008385611e979190612f3d565b9050809150509392505050565b6000808284611eb39190612eb0565b905083811015611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef90612c5a565b60405180910390fd5b8091505092915050565b600080611f0e83612481565b91509150611f6483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061208e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161212e9190612d7a565b60405180910390a35050505050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561219b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121c95781602001602082028036833780820191505090505b5090503081600081518110612207577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122a957600080fd5b505afa1580156122bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e19190612612565b8160018151811061231b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461119a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123e6959493929190612d95565b600060405180830381600087803b15801561240057600080fd5b505af1158015612414573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600061247983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1c565b905092915050565b60008060006124af6103e86124a1600854876110cd90919063ffffffff16565b61114890919063ffffffff16565b905060006124c6828661243790919063ffffffff16565b90508082935093505050915091565b60006124e86124e384612e2f565b612e0a565b9050808382526020820190508285602086028201111561250757600080fd5b60005b85811015612537578161251d8882612541565b84526020840193506020830192505060018101905061250a565b5050509392505050565b600081359050612550816134da565b92915050565b600081519050612565816134da565b92915050565b600082601f83011261257c57600080fd5b813561258c8482602086016124d5565b91505092915050565b6000815190506125a4816134f1565b92915050565b6000813590506125b981613508565b92915050565b6000815190506125ce81613508565b92915050565b6000813590506125e38161351f565b92915050565b6000602082840312156125fb57600080fd5b600061260984828501612541565b91505092915050565b60006020828403121561262457600080fd5b600061263284828501612556565b91505092915050565b6000806040838503121561264e57600080fd5b600061265c85828601612541565b925050602061266d85828601612541565b9150509250929050565b60008060006060848603121561268c57600080fd5b600061269a86828701612541565b93505060206126ab86828701612541565b92505060406126bc868287016125aa565b9150509250925092565b600080604083850312156126d957600080fd5b60006126e785828601612541565b92505060206126f8858286016125aa565b9150509250929050565b60006020828403121561271457600080fd5b600082013567ffffffffffffffff81111561272e57600080fd5b61273a8482850161256b565b91505092915050565b60006020828403121561275557600080fd5b600061276384828501612595565b91505092915050565b60006020828403121561277e57600080fd5b600061278c848285016125aa565b91505092915050565b6000602082840312156127a757600080fd5b60006127b5848285016125bf565b91505092915050565b6000806000606084860312156127d357600080fd5b60006127e1868287016125bf565b93505060206127f2868287016125bf565b9250506040612803868287016125bf565b9150509250925092565b60008060006060848603121561282257600080fd5b6000612830868287016125d4565b9350506020612841868287016125d4565b9250506040612852868287016125d4565b9150509250925092565b60006128688383612883565b60208301905092915050565b61287d81613051565b82525050565b61288c81612ffc565b82525050565b61289b81612ffc565b82525050565b60006128ac82612e6b565b6128b68185612e8e565b93506128c183612e5b565b8060005b838110156128f25781516128d9888261285c565b97506128e483612e81565b9250506001810190506128c5565b5085935050505092915050565b6129088161300e565b82525050565b61291781613063565b82525050565b600061292882612e76565b6129328185612e9f565b9350612942818560208601613099565b61294b816131d3565b840191505092915050565b6000612963602883612e9f565b915061296e826131e4565b604082019050919050565b6000612986602383612e9f565b915061299182613233565b604082019050919050565b60006129a9602283612e9f565b91506129b482613282565b604082019050919050565b60006129cc601b83612e9f565b91506129d7826132d1565b602082019050919050565b60006129ef602183612e9f565b91506129fa826132fa565b604082019050919050565b6000612a12602083612e9f565b9150612a1d82613349565b602082019050919050565b6000612a35602983612e9f565b9150612a4082613372565b604082019050919050565b6000612a58602583612e9f565b9150612a63826133c1565b604082019050919050565b6000612a7b601e83612e9f565b9150612a8682613410565b602082019050919050565b6000612a9e602483612e9f565b9150612aa982613439565b604082019050919050565b6000612ac1601783612e9f565b9150612acc82613488565b602082019050919050565b6000612ae4601d83612e9f565b9150612aef826134b1565b602082019050919050565b612b038161303a565b82525050565b612b1281613044565b82525050565b6000602082019050612b2d6000830184612892565b92915050565b6000604082019050612b486000830185612874565b612b556020830184612afa565b9392505050565b600060c082019050612b716000830189612892565b612b7e6020830188612afa565b612b8b604083018761290e565b612b98606083018661290e565b612ba56080830185612892565b612bb260a0830184612afa565b979650505050505050565b6000602082019050612bd260008301846128ff565b92915050565b60006020820190508181036000830152612bf2818461291d565b905092915050565b60006020820190508181036000830152612c1381612956565b9050919050565b60006020820190508181036000830152612c3381612979565b9050919050565b60006020820190508181036000830152612c538161299c565b9050919050565b60006020820190508181036000830152612c73816129bf565b9050919050565b60006020820190508181036000830152612c93816129e2565b9050919050565b60006020820190508181036000830152612cb381612a05565b9050919050565b60006020820190508181036000830152612cd381612a28565b9050919050565b60006020820190508181036000830152612cf381612a4b565b9050919050565b60006020820190508181036000830152612d1381612a6e565b9050919050565b60006020820190508181036000830152612d3381612a91565b9050919050565b60006020820190508181036000830152612d5381612ab4565b9050919050565b60006020820190508181036000830152612d7381612ad7565b9050919050565b6000602082019050612d8f6000830184612afa565b92915050565b600060a082019050612daa6000830188612afa565b612db7602083018761290e565b8181036040830152612dc981866128a1565b9050612dd86060830185612892565b612de56080830184612afa565b9695505050505050565b6000602082019050612e046000830184612b09565b92915050565b6000612e14612e25565b9050612e2082826130cc565b919050565b6000604051905090565b600067ffffffffffffffff821115612e4a57612e496131a4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ebb8261303a565b9150612ec68361303a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612efb57612efa613146565b5b828201905092915050565b6000612f1182613044565b9150612f1c83613044565b92508260ff03821115612f3257612f31613146565b5b828201905092915050565b6000612f488261303a565b9150612f538361303a565b925082612f6357612f62613175565b5b828204905092915050565b6000612f798261303a565b9150612f848361303a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fbd57612fbc613146565b5b828202905092915050565b6000612fd38261303a565b9150612fde8361303a565b925082821015612ff157612ff0613146565b5b828203905092915050565b60006130078261301a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061305c82613075565b9050919050565b600061306e8261303a565b9050919050565b600061308082613087565b9050919050565b60006130928261301a565b9050919050565b60005b838110156130b757808201518184015260208101905061309c565b838111156130c6576000848401525b50505050565b6130d5826131d3565b810181811067ffffffffffffffff821117156130f4576130f36131a4565b5b80604052505050565b60006131088261303a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313b5761313a613146565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c2070657263656e746167652068617320746f206265203130300000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b6134e381612ffc565b81146134ee57600080fd5b50565b6134fa8161300e565b811461350557600080fd5b50565b6135118161303a565b811461351c57600080fd5b50565b61352881613044565b811461353357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201cebdea3569bb1f8052933fc411910edc68db8a5a0d78df74b43b3b7086199ef64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103b8578063b515566a146103f5578063c3c8cd801461041e578063c9567bf914610435578063dd62ed3e1461044c5761012a565b8063715018a6146102f95780637e37e9bb146103105780638da5cb5b1461033957806395d89b41146103645780639909979d1461038f5761012a565b8063273123b7116100e7578063273123b714610228578063313ce567146102515780634ea18fab1461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806316114acd1461019757806318160ddd146101c057806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610489565b6040516101519190612bd8565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c91906126c6565b6104c6565b60405161018e9190612bbd565b60405180910390f35b3480156101a357600080fd5b506101be60048036038101906101b991906125e9565b6104e4565b005b3480156101cc57600080fd5b506101d5610686565b6040516101e29190612d7a565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d9190612677565b610696565b60405161021f9190612bbd565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906125e9565b61076f565b005b34801561025d57600080fd5b5061026661085f565b6040516102739190612def565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061276c565b610868565b005b3480156102b157600080fd5b506102ba6108d3565b005b3480156102c857600080fd5b506102e360048036038101906102de91906125e9565b610945565b6040516102f09190612d7a565b60405180910390f35b34801561030557600080fd5b5061030e61098e565b005b34801561031c57600080fd5b506103376004803603810190610332919061280d565b610ae1565b005b34801561034557600080fd5b5061034e610bce565b60405161035b9190612b18565b60405180910390f35b34801561037057600080fd5b50610379610bf7565b6040516103869190612bd8565b60405180910390f35b34801561039b57600080fd5b506103b660048036038101906103b1919061280d565b610c34565b005b3480156103c457600080fd5b506103df60048036038101906103da91906126c6565b610d14565b6040516103ec9190612bbd565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612702565b610d32565b005b34801561042a57600080fd5b50610433610e82565b005b34801561044157600080fd5b5061044a610efc565b005b34801561045857600080fd5b50610473600480360381019061046e919061263b565b611046565b6040516104809190612d7a565b60405180910390f35b60606040518060400160405280600781526020017f41555354414d4100000000000000000000000000000000000000000000000000815250905090565b60006104da6104d3611192565b848461119a565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610525611192565b73ffffffffffffffffffffffffffffffffffffffff161461054557600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105c29190612b18565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190612795565b6040518363ffffffff1660e01b815260040161062f929190612b33565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106819190612743565b505050565b6000670de0b6b3a7640000905090565b60006106a3848484611365565b610764846106af611192565b61075f8560405180606001604052806028815260200161353760289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610715611192565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a1c9092919063ffffffff16565b61119a565b600190509392505050565b610777611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90612c9a565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a9611192565b73ffffffffffffffffffffffffffffffffffffffff16146108c957600080fd5b8060118190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610914611192565b73ffffffffffffffffffffffffffffffffffffffff161461093457600080fd5b600047905061094281611a80565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610996611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612c9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b22611192565b73ffffffffffffffffffffffffffffffffffffffff1614610b4257600080fd5b600c548360ff1611158015610b5c5750600c548260ff1611155b8015610b6c5750600c54600b5411155b610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba290612d5a565b60405180910390fd5b8260ff166009819055508160ff16600a819055508060ff16600b81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f41555354414d4100000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c75611192565b73ffffffffffffffffffffffffffffffffffffffff1614610c9557600080fd5b6064818385610ca49190612f06565b610cae9190612f06565b60ff1614610cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce890612cfa565b60405180910390fd5b8260ff16600d819055508160ff16600e819055508060ff16600f81905550505050565b6000610d28610d21611192565b8484611365565b6001905092915050565b610d3a611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbe90612c9a565b60405180910390fd5b60005b8151811015610e7e57600160056000848481518110610e12577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e76906130fd565b915050610dca565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec3611192565b73ffffffffffffffffffffffffffffffffffffffff1614610ee357600080fd5b6000610eee30610945565b9050610ef981611c33565b50565b610f04611192565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612c9a565b60405180910390fd5b601660149054906101000a900460ff1615610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612d3a565b60405180910390fd5b610ffb610fed30610945565b47610ff6610bce565b611d1d565b60016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555061012c4261103e9190612eb0565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808314156110e05760009050611142565b600082846110ee9190612f6e565b90508284826110fd9190612f3d565b1461113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113490612c7a565b60405180910390fd5b809150505b92915050565b600061118a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e41565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612d1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190612c3a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113589190612d7a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90612cda565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c90612c1a565b60405180910390fd5b60008111611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f90612cba565b60405180910390fd5b61149f600b54600954611ea490919063ffffffff16565b6008819055506114ad610bce565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561151b57506114eb610bce565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a0c57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115c45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115cd57600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116785750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116ce5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116db575060075442105b1561178b576010548111156116ef57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061173a57600080fd5b601e426117479190612eb0565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118365750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561188c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118af576118a8600b54600a54611ea490919063ffffffff16565b6008819055505b601660159054906101000a900460ff1615801561191a5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611930575060168054906101000a900460ff165b80156119865750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a0b5760075442116119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c690612bfa565b60405180910390fd5b60006119da30610945565b9050601154811115611a09576119ef81611c33565b60004790506000811115611a0757611a0647611a80565b5b505b505b5b611a17838383611f02565b505050565b6000838311158290611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b9190612bd8565b60405180910390fd5b5060008385611a739190612fc8565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ae4600d54611ad660648661114890919063ffffffff16565b6110cd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b0f573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b74600e54611b6660648661114890919063ffffffff16565b6110cd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b9f573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c04600f54611bf660648661114890919063ffffffff16565b6110cd90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c2f573d6000803e3d6000fd5b5050565b6000611c4b6002600b5461114890919063ffffffff16565b90506000611c6482600a54611ea490919063ffffffff16565b90506000611c7f600b54600a54611ea490919063ffffffff16565b90506000611ca882611c9a85886110cd90919063ffffffff16565b61114890919063ffffffff16565b9050611cb38161213d565b611d16611cc9828761243790919063ffffffff16565b611cee85611ce088476110cd90919063ffffffff16565b61114890919063ffffffff16565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d1d565b5050505050565b6001601660156101000a81548160ff021916908315150217905550611d6530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561119a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611dcc96959493929190612b5c565b6060604051808303818588803b158015611de557600080fd5b505af1158015611df9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1e91906127be565b5050506000601660156101000a81548160ff021916908315150217905550505050565b60008083118290611e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7f9190612bd8565b60405180910390fd5b5060008385611e979190612f3d565b9050809150509392505050565b6000808284611eb39190612eb0565b905083811015611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef90612c5a565b60405180910390fd5b8091505092915050565b600080611f0e83612481565b91509150611f6483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061208e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161212e9190612d7a565b60405180910390a35050505050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561219b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121c95781602001602082028036833780820191505090505b5090503081600081518110612207577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156122a957600080fd5b505afa1580156122bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e19190612612565b8160018151811061231b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461119a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123e6959493929190612d95565b600060405180830381600087803b15801561240057600080fd5b505af1158015612414573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600061247983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a1c565b905092915050565b60008060006124af6103e86124a1600854876110cd90919063ffffffff16565b61114890919063ffffffff16565b905060006124c6828661243790919063ffffffff16565b90508082935093505050915091565b60006124e86124e384612e2f565b612e0a565b9050808382526020820190508285602086028201111561250757600080fd5b60005b85811015612537578161251d8882612541565b84526020840193506020830192505060018101905061250a565b5050509392505050565b600081359050612550816134da565b92915050565b600081519050612565816134da565b92915050565b600082601f83011261257c57600080fd5b813561258c8482602086016124d5565b91505092915050565b6000815190506125a4816134f1565b92915050565b6000813590506125b981613508565b92915050565b6000815190506125ce81613508565b92915050565b6000813590506125e38161351f565b92915050565b6000602082840312156125fb57600080fd5b600061260984828501612541565b91505092915050565b60006020828403121561262457600080fd5b600061263284828501612556565b91505092915050565b6000806040838503121561264e57600080fd5b600061265c85828601612541565b925050602061266d85828601612541565b9150509250929050565b60008060006060848603121561268c57600080fd5b600061269a86828701612541565b93505060206126ab86828701612541565b92505060406126bc868287016125aa565b9150509250925092565b600080604083850312156126d957600080fd5b60006126e785828601612541565b92505060206126f8858286016125aa565b9150509250929050565b60006020828403121561271457600080fd5b600082013567ffffffffffffffff81111561272e57600080fd5b61273a8482850161256b565b91505092915050565b60006020828403121561275557600080fd5b600061276384828501612595565b91505092915050565b60006020828403121561277e57600080fd5b600061278c848285016125aa565b91505092915050565b6000602082840312156127a757600080fd5b60006127b5848285016125bf565b91505092915050565b6000806000606084860312156127d357600080fd5b60006127e1868287016125bf565b93505060206127f2868287016125bf565b9250506040612803868287016125bf565b9150509250925092565b60008060006060848603121561282257600080fd5b6000612830868287016125d4565b9350506020612841868287016125d4565b9250506040612852868287016125d4565b9150509250925092565b60006128688383612883565b60208301905092915050565b61287d81613051565b82525050565b61288c81612ffc565b82525050565b61289b81612ffc565b82525050565b60006128ac82612e6b565b6128b68185612e8e565b93506128c183612e5b565b8060005b838110156128f25781516128d9888261285c565b97506128e483612e81565b9250506001810190506128c5565b5085935050505092915050565b6129088161300e565b82525050565b61291781613063565b82525050565b600061292882612e76565b6129328185612e9f565b9350612942818560208601613099565b61294b816131d3565b840191505092915050565b6000612963602883612e9f565b915061296e826131e4565b604082019050919050565b6000612986602383612e9f565b915061299182613233565b604082019050919050565b60006129a9602283612e9f565b91506129b482613282565b604082019050919050565b60006129cc601b83612e9f565b91506129d7826132d1565b602082019050919050565b60006129ef602183612e9f565b91506129fa826132fa565b604082019050919050565b6000612a12602083612e9f565b9150612a1d82613349565b602082019050919050565b6000612a35602983612e9f565b9150612a4082613372565b604082019050919050565b6000612a58602583612e9f565b9150612a63826133c1565b604082019050919050565b6000612a7b601e83612e9f565b9150612a8682613410565b602082019050919050565b6000612a9e602483612e9f565b9150612aa982613439565b604082019050919050565b6000612ac1601783612e9f565b9150612acc82613488565b602082019050919050565b6000612ae4601d83612e9f565b9150612aef826134b1565b602082019050919050565b612b038161303a565b82525050565b612b1281613044565b82525050565b6000602082019050612b2d6000830184612892565b92915050565b6000604082019050612b486000830185612874565b612b556020830184612afa565b9392505050565b600060c082019050612b716000830189612892565b612b7e6020830188612afa565b612b8b604083018761290e565b612b98606083018661290e565b612ba56080830185612892565b612bb260a0830184612afa565b979650505050505050565b6000602082019050612bd260008301846128ff565b92915050565b60006020820190508181036000830152612bf2818461291d565b905092915050565b60006020820190508181036000830152612c1381612956565b9050919050565b60006020820190508181036000830152612c3381612979565b9050919050565b60006020820190508181036000830152612c538161299c565b9050919050565b60006020820190508181036000830152612c73816129bf565b9050919050565b60006020820190508181036000830152612c93816129e2565b9050919050565b60006020820190508181036000830152612cb381612a05565b9050919050565b60006020820190508181036000830152612cd381612a28565b9050919050565b60006020820190508181036000830152612cf381612a4b565b9050919050565b60006020820190508181036000830152612d1381612a6e565b9050919050565b60006020820190508181036000830152612d3381612a91565b9050919050565b60006020820190508181036000830152612d5381612ab4565b9050919050565b60006020820190508181036000830152612d7381612ad7565b9050919050565b6000602082019050612d8f6000830184612afa565b92915050565b600060a082019050612daa6000830188612afa565b612db7602083018761290e565b8181036040830152612dc981866128a1565b9050612dd86060830185612892565b612de56080830184612afa565b9695505050505050565b6000602082019050612e046000830184612b09565b92915050565b6000612e14612e25565b9050612e2082826130cc565b919050565b6000604051905090565b600067ffffffffffffffff821115612e4a57612e496131a4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ebb8261303a565b9150612ec68361303a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612efb57612efa613146565b5b828201905092915050565b6000612f1182613044565b9150612f1c83613044565b92508260ff03821115612f3257612f31613146565b5b828201905092915050565b6000612f488261303a565b9150612f538361303a565b925082612f6357612f62613175565b5b828204905092915050565b6000612f798261303a565b9150612f848361303a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fbd57612fbc613146565b5b828202905092915050565b6000612fd38261303a565b9150612fde8361303a565b925082821015612ff157612ff0613146565b5b828203905092915050565b60006130078261301a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061305c82613075565b9050919050565b600061306e8261303a565b9050919050565b600061308082613087565b9050919050565b60006130928261301a565b9050919050565b60005b838110156130b757808201518184015260208101905061309c565b838111156130c6576000848401525b50505050565b6130d5826131d3565b810181811067ffffffffffffffff821117156130f4576130f36131a4565b5b80604052505050565b60006131088261303a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313b5761313a613146565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c2070657263656e746167652068617320746f206265203130300000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b6134e381612ffc565b81146134ee57600080fd5b50565b6134fa8161300e565b811461350557600080fd5b50565b6135118161303a565b811461351c57600080fd5b50565b61352881613044565b811461353357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201cebdea3569bb1f8052933fc411910edc68db8a5a0d78df74b43b3b7086199ef64736f6c63430008040033

Deployed Bytecode Sourcemap

3597:9891:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5926:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6757:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13229:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6203:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6926:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12011:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6112:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7904:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12782:194;;;;;;;;;;;;;:::i;:::-;;6306:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2676:148;;;;;;;;;;;;;:::i;:::-;;7250:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2462:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6017:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7568:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6431:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11835:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12577:193;;;;;;;;;;;;;:::i;:::-;;11529:294;;;;;;;;;;;;;:::i;:::-;;6606:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5926:83;5963:13;5996:5;;;;;;;;;;;;;;;;;5989:12;;5926:83;:::o;6757:161::-;6832:4;6849:39;6858:12;:10;:12::i;:::-;6872:7;6881:6;6849:8;:39::i;:::-;6906:4;6899:11;;6757:161;;;;:::o;13229:256::-;13318:15;;;;;;;;;;;13302:31;;:12;:10;:12::i;:::-;:31;;;13294:40;;;;;;13345:20;13375:12;13345:43;;13399:13;:22;;;13422:15;;;;;;;;;;;13438:13;:23;;;13470:4;13438:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13399:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13229:256;;:::o;6203:95::-;6256:7;4053:17;6276:14;;6203:95;:::o;6926:313::-;7024:4;7041:36;7051:6;7059:9;7070:6;7041:9;:36::i;:::-;7088:121;7097:6;7105:12;:10;:12::i;:::-;7119:89;7157:6;7119:89;;;;;;;;;;;;;;;;;:11;:19;7131:6;7119:19;;;;;;;;;;;;;;;:33;7139:12;:10;:12::i;:::-;7119:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7088:8;:121::i;:::-;7227:4;7220:11;;6926:313;;;;;:::o;12011:88::-;2599:12;:10;:12::i;:::-;2589:22;;:6;;;;;;;;;;:22;;;2581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12086:5:::1;12071:4;:12;12076:6;12071:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12011:88:::0;:::o;6112:83::-;6153:5;4555:1;6171:16;;6112:83;:::o;7904:142::-;7990:15;;;;;;;;;;;7974:31;;:12;:10;:12::i;:::-;:31;;;7966:40;;;;;;8030:6;8017:10;:19;;;;7904:142;:::o;12782:194::-;12848:15;;;;;;;;;;;12832:31;;:12;:10;:12::i;:::-;:31;;;12824:40;;;;;;12875:26;12904:21;12875:50;;12936:32;12949:18;12936:12;:32::i;:::-;12782:194;:::o;6306:117::-;6372:7;6399;:16;6407:7;6399:16;;;;;;;;;;;;;;;;6392:23;;6306:117;;;:::o;2676:148::-;2599:12;:10;:12::i;:::-;2589:22;;:6;;;;;;;;;;:22;;;2581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2783:1:::1;2746:40;;2767:6;::::0;::::1;;;;;;;;2746:40;;;;;;;;;;;;2814:1;2797:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2676:148::o:0;7250:310::-;7360:15;;;;;;;;;;;7344:31;;:12;:10;:12::i;:::-;:31;;;7336:40;;;;;;7404:6;;7395:5;:15;;;;:34;;;;;7423:6;;7414:5;:15;;;;7395:34;:54;;;;;7443:6;;7433;;:16;;7395:54;7387:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;7500:5;7493:12;;:4;:12;;;;7523:5;7516:12;;:4;:12;;;;7548:4;7539:13;;:6;:13;;;;7250:310;;;:::o;2462:79::-;2500:7;2527:6;;;;;;;;;;;2520:13;;2462:79;:::o;6017:87::-;6056:13;6089:7;;;;;;;;;;;;;;;;;6082:14;;6017:87;:::o;7568:328::-;7684:15;;;;;;;;;;;7668:31;;:12;:10;:12::i;:::-;:31;;;7660:40;;;;;;7758:3;7744:9;7732;7720;:21;;;;:::i;:::-;:33;;;;:::i;:::-;7719:42;;;7711:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;7817:9;7806:20;;:8;:20;;;;7848:9;7837:20;;:8;:20;;;;7879:9;7868:20;;:8;:20;;;;7568:328;;;:::o;6431:167::-;6509:4;6526:42;6536:12;:10;:12::i;:::-;6550:9;6561:6;6526:9;:42::i;:::-;6586:4;6579:11;;6431:167;;;;:::o;11835:164::-;2599:12;:10;:12::i;:::-;2589:22;;:6;;;;;;;;;;:22;;;2581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11909:6:::1;11904:88;11925:5;:12;11921:1;:16;11904:88;;;11976:4;11959;:14;11964:5;11970:1;11964:8;;;;;;;;;;;;;;;;;;;;;;11959:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11939:3;;;;;:::i;:::-;;;;11904:88;;;;11835:164:::0;:::o;12577:193::-;12643:15;;;;;;;;;;;12627:31;;:12;:10;:12::i;:::-;:31;;;12619:40;;;;;;12670:23;12696:24;12714:4;12696:9;:24::i;:::-;12670:50;;12731:31;12746:15;12731:14;:31::i;:::-;12577:193;:::o;11529:294::-;2599:12;:10;:12::i;:::-;2589:22;;:6;;;;;;;;;;:22;;;2581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11593:11:::1;;;;;;;;;;;11592:12;11584:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:68;11655:24;11673:4;11655:9;:24::i;:::-;11680:21;11702:7;:5;:7::i;:::-;11642:12;:68::i;:::-;11735:4;11721:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11764:4;11750:11;;:18;;;;;;;;;;;;;;;;;;11805:9;11786:15;:29;;;;:::i;:::-;11779:4;:36;;;;11529:294::o:0;6606:143::-;6687:7;6714:11;:18;6726:5;6714:18;;;;;;;;;;;;;;;:27;6733:7;6714:27;;;;;;;;;;;;;;;;6707:34;;6606:143;;;;:::o;1515:246::-;1573:7;1602:1;1597;:6;1593:47;;;1627:1;1620:8;;;;1593:47;1650:9;1666:1;1662;:5;;;;:::i;:::-;1650:17;;1695:1;1690;1686;:5;;;;:::i;:::-;:10;1678:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1752:1;1745:8;;;1515:246;;;;;:::o;1769:132::-;1827:7;1854:39;1858:1;1861;1854:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1847:46;;1769:132;;;;:::o;180:98::-;233:7;260:10;253:17;;180:98;:::o;8057:335::-;8167:1;8150:19;;:5;:19;;;;8142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8248:1;8229:21;;:7;:21;;;;8221:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8330:6;8300:11;:18;8312:5;8300:18;;;;;;;;;;;;;;;:27;8319:7;8300:27;;;;;;;;;;;;;;;:36;;;;8368:7;8352:32;;8361:5;8352:32;;;8377:6;8352:32;;;;;;:::i;:::-;;;;;;;;8057:335;;;:::o;8400:1671::-;8504:1;8488:18;;:4;:18;;;;8480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8581:1;8567:16;;:2;:16;;;;8559:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8651:1;8642:6;:10;8634:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8718:16;8727:6;;8718:4;;:8;;:16;;;;:::i;:::-;8711:4;:23;;;;8757:7;:5;:7::i;:::-;8749:15;;:4;:15;;;;:32;;;;;8774:7;:5;:7::i;:::-;8768:13;;:2;:13;;;;8749:32;8745:1271;;;8807:4;:10;8812:4;8807:10;;;;;;;;;;;;;;;;;;;;;;;;;8806:11;:24;;;;;8822:4;:8;8827:2;8822:8;;;;;;;;;;;;;;;;;;;;;;;;;8821:9;8806:24;8798:33;;;;;;8858:13;;;;;;;;;;;8850:21;;:4;:21;;;:55;;;;;8889:15;;;;;;;;;;;8875:30;;:2;:30;;;;8850:55;:83;;;;;8911:18;:22;8930:2;8911:22;;;;;;;;;;;;;;;;;;;;;;;;;8909:24;8850:83;:111;;;;;8956:4;;8938:15;:22;8850:111;8846:333;;;9028:12;;9018:6;:22;;9010:31;;;;;;9083:15;9068:8;:12;9077:2;9068:12;;;;;;;;;;;;;;;;:30;9060:39;;;;;;9152:10;9133:15;:30;;;;:::i;:::-;9118:8;:12;9127:2;9118:12;;;;;;;;;;;;;;;:45;;;;8846:333;9231:13;;;;;;;;;;;9225:19;;:2;:19;;;:55;;;;;9264:15;;;;;;;;;;;9248:32;;:4;:32;;;;9225:55;:85;;;;;9286:18;:24;9305:4;9286:24;;;;;;;;;;;;;;;;;;;;;;;;;9284:26;9225:85;9221:149;;;9338:16;9347:6;;9338:4;;:8;;:16;;;;:::i;:::-;9331:4;:23;;;;9221:149;9403:6;;;;;;;;;;;9402:7;:32;;;;;9421:13;;;;;;;;;;;9413:21;;:4;:21;;;;9402:32;:47;;;;;9438:11;;;;;;;;;;9402:47;:76;;;;;9454:18;:24;9473:4;9454:24;;;;;;;;;;;;;;;;;;;;;;;;;9453:25;9402:76;9398:607;;;9525:4;;9507:15;:22;9499:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9592:28;9623:24;9641:4;9623:9;:24::i;:::-;9592:55;;9692:10;;9669:20;:33;9666:324;;;9726:36;9741:20;9726:14;:36::i;:::-;9785:26;9814:21;9785:50;;9882:1;9861:18;:22;9858:113;;;9912:35;9925:21;9912:12;:35::i;:::-;9858:113;9666:324;;9398:607;;8745:1271;10030:33;10048:4;10053:2;10056:6;10030:17;:33::i;:::-;8400:1671;;;:::o;1317:190::-;1403:7;1436:1;1431;:6;;1439:12;1423:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1463:9;1479:1;1475;:5;;;;:::i;:::-;1463:17;;1498:1;1491:8;;;1317:190;;;;;:::o;11265:252::-;11322:15;;;;;;;;;;;:24;;:55;11347:29;11367:8;;11347:15;11358:3;11347:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;11322:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11388:15;;;;;;;;;;;:24;;:55;11413:29;11433:8;;11413:15;11424:3;11413:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;11388:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11454:15;;;;;;;;;;;:24;;:55;11479:29;11499:8;;11479:15;11490:3;11479:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;11454:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11265:252;:::o;10574:389::-;10638:12;10653:13;10664:1;10653:6;;:10;;:13;;;;:::i;:::-;10638:28;;10677:12;10692:14;10701:4;10692;;:8;;:14;;;;:::i;:::-;10677:29;;10717:11;10731:16;10740:6;;10731:4;;:8;;:16;;;;:::i;:::-;10717:30;;10758:17;10778:30;10804:3;10778:21;10794:4;10778:11;:15;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;10758:50;;10819:27;10836:9;10819:16;:27::i;:::-;10857:98;10870:26;10886:9;10870:11;:15;;:26;;;;:::i;:::-;10897:41;10933:4;10897:31;10923:4;10897:21;:25;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;10939:15;;;;;;;;;;;10857:12;:98::i;:::-;10574:389;;;;;:::o;10971:288::-;4931:4;4922:6;;:13;;;;;;;;;;;;;;;;;;11077:60:::1;11094:4;11108:15;;;;;;;;;;;11125:11;11077:8;:60::i;:::-;11148:15;;;;;;;;;;;:31;;;11187:9;11206:4;11212:11;11224:1;11226::::0;11228:6:::1;11235:15;11148:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4967:5:::0;4958:6;;:14;;;;;;;;;;;;;;;;;;10971:288;;;:::o;1909:189::-;1995:7;2027:1;2023;:5;2030:12;2015:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2054:9;2070:1;2066;:5;;;;:::i;:::-;2054:17;;2089:1;2082:8;;;1909:189;;;;;:::o;986:179::-;1044:7;1064:9;1080:1;1076;:5;;;;:::i;:::-;1064:17;;1105:1;1100;:6;;1092:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1156:1;1149:8;;;986:179;;;;:::o;12107:421::-;12206:22;12229:12;12245:20;12257:7;12245:11;:20::i;:::-;12205:60;;;;12294:28;12314:7;12294;:15;12302:6;12294:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12276:7;:15;12284:6;12276:15;;;;;;;;;;;;;;;:46;;;;12354:38;12377:14;12354:7;:18;12362:9;12354:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12333:7;:18;12341:9;12333:18;;;;;;;;;;;;;;;:59;;;;12429:32;12456:4;12429:7;:22;12445:4;12429:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12404:7;:22;12420:4;12404:22;;;;;;;;;;;;;;;:57;;;;12494:9;12477:43;;12486:6;12477:43;;;12505:14;12477:43;;;;;;:::i;:::-;;;;;;;;12107:421;;;;;:::o;10079:483::-;4931:4;4922:6;;:13;;;;;;;;;;;;;;;;;;10157:21:::1;10195:1;10181:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10157:40;;10226:4;10208;10213:1;10208:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10252:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10242:4;10247:1;10242:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10285:62;10302:4;10317:15;;;;;;;;;;;10335:11;10285:8;:62::i;:::-;10358:15;;;;;;;;;;;:66;;;10439:11;10465:1;10481:4;10508;10528:15;10358:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4946:1;4967:5:::0;4958:6;;:14;;;;;;;;;;;;;;;;;;10079:483;:::o;1173:136::-;1231:7;1258:43;1262:1;1265;1258:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1251:50;;1173:136;;;;:::o;12987:234::-;13047:7;13056;13076:12;13091:27;13113:4;13091:17;13103:4;;13091:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13076:42;;13129:23;13155:17;13167:4;13155:7;:11;;:17;;;;:::i;:::-;13129:43;;13191:15;13208:4;13183:30;;;;;;12987:234;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:135::-;1786:5;1824:6;1811:20;1802:29;;1840:31;1865:5;1840:31;:::i;:::-;1792:85;;;;:::o;1883:262::-;1942:6;1991:2;1979:9;1970:7;1966:23;1962:32;1959:2;;;2007:1;2004;1997:12;1959:2;2050:1;2075:53;2120:7;2111:6;2100:9;2096:22;2075:53;:::i;:::-;2065:63;;2021:117;1949:196;;;;:::o;2151:284::-;2221:6;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;2286:1;2283;2276:12;2238:2;2329:1;2354:64;2410:7;2401:6;2390:9;2386:22;2354:64;:::i;:::-;2344:74;;2300:128;2228:207;;;;:::o;2441:407::-;2509:6;2517;2566:2;2554:9;2545:7;2541:23;2537:32;2534:2;;;2582:1;2579;2572:12;2534:2;2625:1;2650:53;2695:7;2686:6;2675:9;2671:22;2650:53;:::i;:::-;2640:63;;2596:117;2752:2;2778:53;2823:7;2814:6;2803:9;2799:22;2778:53;:::i;:::-;2768:63;;2723:118;2524:324;;;;;:::o;2854:552::-;2931:6;2939;2947;2996:2;2984:9;2975:7;2971:23;2967:32;2964:2;;;3012:1;3009;3002:12;2964:2;3055:1;3080:53;3125:7;3116:6;3105:9;3101:22;3080:53;:::i;:::-;3070:63;;3026:117;3182:2;3208:53;3253:7;3244:6;3233:9;3229:22;3208:53;:::i;:::-;3198:63;;3153:118;3310:2;3336:53;3381:7;3372:6;3361:9;3357:22;3336:53;:::i;:::-;3326:63;;3281:118;2954:452;;;;;:::o;3412:407::-;3480:6;3488;3537:2;3525:9;3516:7;3512:23;3508:32;3505:2;;;3553:1;3550;3543:12;3505:2;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3495:324;;;;;:::o;3825:405::-;3909:6;3958:2;3946:9;3937:7;3933:23;3929:32;3926:2;;;3974:1;3971;3964:12;3926:2;4045:1;4034:9;4030:17;4017:31;4075:18;4067:6;4064:30;4061:2;;;4107:1;4104;4097:12;4061:2;4135:78;4205:7;4196:6;4185:9;4181:22;4135:78;:::i;:::-;4125:88;;3988:235;3916:314;;;;:::o;4236:278::-;4303:6;4352:2;4340:9;4331:7;4327:23;4323:32;4320:2;;;4368:1;4365;4358:12;4320:2;4411:1;4436:61;4489:7;4480:6;4469:9;4465:22;4436:61;:::i;:::-;4426:71;;4382:125;4310:204;;;;:::o;4520:262::-;4579:6;4628:2;4616:9;4607:7;4603:23;4599:32;4596:2;;;4644:1;4641;4634:12;4596:2;4687:1;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4658:117;4586:196;;;;:::o;4788:284::-;4858:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:2;;;4923:1;4920;4913:12;4875:2;4966:1;4991:64;5047:7;5038:6;5027:9;5023:22;4991:64;:::i;:::-;4981:74;;4937:128;4865:207;;;;:::o;5078:596::-;5166:6;5174;5182;5231:2;5219:9;5210:7;5206:23;5202:32;5199:2;;;5247:1;5244;5237:12;5199:2;5290:1;5315:64;5371:7;5362:6;5351:9;5347:22;5315:64;:::i;:::-;5305:74;;5261:128;5428:2;5454:64;5510:7;5501:6;5490:9;5486:22;5454:64;:::i;:::-;5444:74;;5399:129;5567:2;5593:64;5649:7;5640:6;5629:9;5625:22;5593:64;:::i;:::-;5583:74;;5538:129;5189:485;;;;;:::o;5680:540::-;5751:6;5759;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:2;;;5832:1;5829;5822:12;5784:2;5875:1;5900:51;5943:7;5934:6;5923:9;5919:22;5900:51;:::i;:::-;5890:61;;5846:115;6000:2;6026:51;6069:7;6060:6;6049:9;6045:22;6026:51;:::i;:::-;6016:61;;5971:116;6126:2;6152:51;6195:7;6186:6;6175:9;6171:22;6152:51;:::i;:::-;6142:61;;6097:116;5774:446;;;;;:::o;6226:179::-;6295:10;6316:46;6358:3;6350:6;6316:46;:::i;:::-;6394:4;6389:3;6385:14;6371:28;;6306:99;;;;:::o;6411:147::-;6506:45;6545:5;6506:45;:::i;:::-;6501:3;6494:58;6484:74;;:::o;6564:108::-;6641:24;6659:5;6641:24;:::i;:::-;6636:3;6629:37;6619:53;;:::o;6678:118::-;6765:24;6783:5;6765:24;:::i;:::-;6760:3;6753:37;6743:53;;:::o;6832:732::-;6951:3;6980:54;7028:5;6980:54;:::i;:::-;7050:86;7129:6;7124:3;7050:86;:::i;:::-;7043:93;;7160:56;7210:5;7160:56;:::i;:::-;7239:7;7270:1;7255:284;7280:6;7277:1;7274:13;7255:284;;;7356:6;7350:13;7383:63;7442:3;7427:13;7383:63;:::i;:::-;7376:70;;7469:60;7522:6;7469:60;:::i;:::-;7459:70;;7315:224;7302:1;7299;7295:9;7290:14;;7255:284;;;7259:14;7555:3;7548:10;;6956:608;;;;;;;:::o;7570:109::-;7651:21;7666:5;7651:21;:::i;:::-;7646:3;7639:34;7629:50;;:::o;7685:147::-;7780:45;7819:5;7780:45;:::i;:::-;7775:3;7768:58;7758:74;;:::o;7838:364::-;7926:3;7954:39;7987:5;7954:39;:::i;:::-;8009:71;8073:6;8068:3;8009:71;:::i;:::-;8002:78;;8089:52;8134:6;8129:3;8122:4;8115:5;8111:16;8089:52;:::i;:::-;8166:29;8188:6;8166:29;:::i;:::-;8161:3;8157:39;8150:46;;7930:272;;;;;:::o;8208:366::-;8350:3;8371:67;8435:2;8430:3;8371:67;:::i;:::-;8364:74;;8447:93;8536:3;8447:93;:::i;:::-;8565:2;8560:3;8556:12;8549:19;;8354:220;;;:::o;8580:366::-;8722:3;8743:67;8807:2;8802:3;8743:67;:::i;:::-;8736:74;;8819:93;8908:3;8819:93;:::i;:::-;8937:2;8932:3;8928:12;8921:19;;8726:220;;;:::o;8952:366::-;9094:3;9115:67;9179:2;9174:3;9115:67;:::i;:::-;9108:74;;9191:93;9280:3;9191:93;:::i;:::-;9309:2;9304:3;9300:12;9293:19;;9098:220;;;:::o;9324:366::-;9466:3;9487:67;9551:2;9546:3;9487:67;:::i;:::-;9480:74;;9563:93;9652:3;9563:93;:::i;:::-;9681:2;9676:3;9672:12;9665:19;;9470:220;;;:::o;9696:366::-;9838:3;9859:67;9923:2;9918:3;9859:67;:::i;:::-;9852:74;;9935:93;10024:3;9935:93;:::i;:::-;10053:2;10048:3;10044:12;10037:19;;9842:220;;;:::o;10068:366::-;10210:3;10231:67;10295:2;10290:3;10231:67;:::i;:::-;10224:74;;10307:93;10396:3;10307:93;:::i;:::-;10425:2;10420:3;10416:12;10409:19;;10214:220;;;:::o;10440:366::-;10582:3;10603:67;10667:2;10662:3;10603:67;:::i;:::-;10596:74;;10679:93;10768:3;10679:93;:::i;:::-;10797:2;10792:3;10788:12;10781:19;;10586:220;;;:::o;10812:366::-;10954:3;10975:67;11039:2;11034:3;10975:67;:::i;:::-;10968:74;;11051:93;11140:3;11051:93;:::i;:::-;11169:2;11164:3;11160:12;11153:19;;10958:220;;;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11330:220;;;:::o;11556:366::-;11698:3;11719:67;11783:2;11778:3;11719:67;:::i;:::-;11712:74;;11795:93;11884:3;11795:93;:::i;:::-;11913:2;11908:3;11904:12;11897:19;;11702:220;;;:::o;11928:366::-;12070:3;12091:67;12155:2;12150:3;12091:67;:::i;:::-;12084:74;;12167:93;12256:3;12167:93;:::i;:::-;12285:2;12280:3;12276:12;12269:19;;12074:220;;;:::o;12300:366::-;12442:3;12463:67;12527:2;12522:3;12463:67;:::i;:::-;12456:74;;12539:93;12628:3;12539:93;:::i;:::-;12657:2;12652:3;12648:12;12641:19;;12446:220;;;:::o;12672:118::-;12759:24;12777:5;12759:24;:::i;:::-;12754:3;12747:37;12737:53;;:::o;12796:112::-;12879:22;12895:5;12879:22;:::i;:::-;12874:3;12867:35;12857:51;;:::o;12914:222::-;13007:4;13045:2;13034:9;13030:18;13022:26;;13058:71;13126:1;13115:9;13111:17;13102:6;13058:71;:::i;:::-;13012:124;;;;:::o;13142:348::-;13271:4;13309:2;13298:9;13294:18;13286:26;;13322:79;13398:1;13387:9;13383:17;13374:6;13322:79;:::i;:::-;13411:72;13479:2;13468:9;13464:18;13455:6;13411:72;:::i;:::-;13276:214;;;;;:::o;13496:807::-;13745:4;13783:3;13772:9;13768:19;13760:27;;13797:71;13865:1;13854:9;13850:17;13841:6;13797:71;:::i;:::-;13878:72;13946:2;13935:9;13931:18;13922:6;13878:72;:::i;:::-;13960:80;14036:2;14025:9;14021:18;14012:6;13960:80;:::i;:::-;14050;14126:2;14115:9;14111:18;14102:6;14050:80;:::i;:::-;14140:73;14208:3;14197:9;14193:19;14184:6;14140:73;:::i;:::-;14223;14291:3;14280:9;14276:19;14267:6;14223:73;:::i;:::-;13750:553;;;;;;;;;:::o;14309:210::-;14396:4;14434:2;14423:9;14419:18;14411:26;;14447:65;14509:1;14498:9;14494:17;14485:6;14447:65;:::i;:::-;14401:118;;;;:::o;14525:313::-;14638:4;14676:2;14665:9;14661:18;14653:26;;14725:9;14719:4;14715:20;14711:1;14700:9;14696:17;14689:47;14753:78;14826:4;14817:6;14753:78;:::i;:::-;14745:86;;14643:195;;;;:::o;14844:419::-;15010:4;15048:2;15037:9;15033:18;15025:26;;15097:9;15091:4;15087:20;15083:1;15072:9;15068:17;15061:47;15125:131;15251:4;15125:131;:::i;:::-;15117:139;;15015:248;;;:::o;15269:419::-;15435:4;15473:2;15462:9;15458:18;15450:26;;15522:9;15516:4;15512:20;15508:1;15497:9;15493:17;15486:47;15550:131;15676:4;15550:131;:::i;:::-;15542:139;;15440:248;;;:::o;15694:419::-;15860:4;15898:2;15887:9;15883:18;15875:26;;15947:9;15941:4;15937:20;15933:1;15922:9;15918:17;15911:47;15975:131;16101:4;15975:131;:::i;:::-;15967:139;;15865:248;;;:::o;16119:419::-;16285:4;16323:2;16312:9;16308:18;16300:26;;16372:9;16366:4;16362:20;16358:1;16347:9;16343:17;16336:47;16400:131;16526:4;16400:131;:::i;:::-;16392:139;;16290:248;;;:::o;16544:419::-;16710:4;16748:2;16737:9;16733:18;16725:26;;16797:9;16791:4;16787:20;16783:1;16772:9;16768:17;16761:47;16825:131;16951:4;16825:131;:::i;:::-;16817:139;;16715:248;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;17140:248;;;:::o;17394:419::-;17560:4;17598:2;17587:9;17583:18;17575:26;;17647:9;17641:4;17637:20;17633:1;17622:9;17618:17;17611:47;17675:131;17801:4;17675:131;:::i;:::-;17667:139;;17565:248;;;:::o;17819:419::-;17985:4;18023:2;18012:9;18008:18;18000:26;;18072:9;18066:4;18062:20;18058:1;18047:9;18043:17;18036:47;18100:131;18226:4;18100:131;:::i;:::-;18092:139;;17990:248;;;:::o;18244:419::-;18410:4;18448:2;18437:9;18433:18;18425:26;;18497:9;18491:4;18487:20;18483:1;18472:9;18468:17;18461:47;18525:131;18651:4;18525:131;:::i;:::-;18517:139;;18415:248;;;:::o;18669:419::-;18835:4;18873:2;18862:9;18858:18;18850:26;;18922:9;18916:4;18912:20;18908:1;18897:9;18893:17;18886:47;18950:131;19076:4;18950:131;:::i;:::-;18942:139;;18840:248;;;:::o;19094:419::-;19260:4;19298:2;19287:9;19283:18;19275:26;;19347:9;19341:4;19337:20;19333:1;19322:9;19318:17;19311:47;19375:131;19501:4;19375:131;:::i;:::-;19367:139;;19265:248;;;:::o;19519:419::-;19685:4;19723:2;19712:9;19708:18;19700:26;;19772:9;19766:4;19762:20;19758:1;19747:9;19743:17;19736:47;19800:131;19926:4;19800:131;:::i;:::-;19792:139;;19690:248;;;:::o;19944:222::-;20037:4;20075:2;20064:9;20060:18;20052:26;;20088:71;20156:1;20145:9;20141:17;20132:6;20088:71;:::i;:::-;20042:124;;;;:::o;20172:831::-;20435:4;20473:3;20462:9;20458:19;20450:27;;20487:71;20555:1;20544:9;20540:17;20531:6;20487:71;:::i;:::-;20568:80;20644:2;20633:9;20629:18;20620:6;20568:80;:::i;:::-;20695:9;20689:4;20685:20;20680:2;20669:9;20665:18;20658:48;20723:108;20826:4;20817:6;20723:108;:::i;:::-;20715:116;;20841:72;20909:2;20898:9;20894:18;20885:6;20841:72;:::i;:::-;20923:73;20991:3;20980:9;20976:19;20967:6;20923:73;:::i;:::-;20440:563;;;;;;;;:::o;21009:214::-;21098:4;21136:2;21125:9;21121:18;21113:26;;21149:67;21213:1;21202:9;21198:17;21189:6;21149:67;:::i;:::-;21103:120;;;;:::o;21229:129::-;21263:6;21290:20;;:::i;:::-;21280:30;;21319:33;21347:4;21339:6;21319:33;:::i;:::-;21270:88;;;:::o;21364:75::-;21397:6;21430:2;21424:9;21414:19;;21404:35;:::o;21445:311::-;21522:4;21612:18;21604:6;21601:30;21598:2;;;21634:18;;:::i;:::-;21598:2;21684:4;21676:6;21672:17;21664:25;;21744:4;21738;21734:15;21726:23;;21527:229;;;:::o;21762:132::-;21829:4;21852:3;21844:11;;21882:4;21877:3;21873:14;21865:22;;21834:60;;;:::o;21900:114::-;21967:6;22001:5;21995:12;21985:22;;21974:40;;;:::o;22020:99::-;22072:6;22106:5;22100:12;22090:22;;22079:40;;;:::o;22125:113::-;22195:4;22227;22222:3;22218:14;22210:22;;22200:38;;;:::o;22244:184::-;22343:11;22377:6;22372:3;22365:19;22417:4;22412:3;22408:14;22393:29;;22355:73;;;;:::o;22434:169::-;22518:11;22552:6;22547:3;22540:19;22592:4;22587:3;22583:14;22568:29;;22530:73;;;;:::o;22609:305::-;22649:3;22668:20;22686:1;22668:20;:::i;:::-;22663:25;;22702:20;22720:1;22702:20;:::i;:::-;22697:25;;22856:1;22788:66;22784:74;22781:1;22778:81;22775:2;;;22862:18;;:::i;:::-;22775:2;22906:1;22903;22899:9;22892:16;;22653:261;;;;:::o;22920:237::-;22958:3;22977:18;22993:1;22977:18;:::i;:::-;22972:23;;23009:18;23025:1;23009:18;:::i;:::-;23004:23;;23099:1;23093:4;23089:12;23086:1;23083:19;23080:2;;;23105:18;;:::i;:::-;23080:2;23149:1;23146;23142:9;23135:16;;22962:195;;;;:::o;23163:185::-;23203:1;23220:20;23238:1;23220:20;:::i;:::-;23215:25;;23254:20;23272:1;23254:20;:::i;:::-;23249:25;;23293:1;23283:2;;23298:18;;:::i;:::-;23283:2;23340:1;23337;23333:9;23328:14;;23205:143;;;;:::o;23354:348::-;23394:7;23417:20;23435:1;23417:20;:::i;:::-;23412:25;;23451:20;23469:1;23451:20;:::i;:::-;23446:25;;23639:1;23571:66;23567:74;23564:1;23561:81;23556:1;23549:9;23542:17;23538:105;23535:2;;;23646:18;;:::i;:::-;23535:2;23694:1;23691;23687:9;23676:20;;23402:300;;;;:::o;23708:191::-;23748:4;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23802:20;23820:1;23802:20;:::i;:::-;23797:25;;23841:1;23838;23835:8;23832:2;;;23846:18;;:::i;:::-;23832:2;23891:1;23888;23884:9;23876:17;;23753:146;;;;:::o;23905:96::-;23942:7;23971:24;23989:5;23971:24;:::i;:::-;23960:35;;23950:51;;;:::o;24007:90::-;24041:7;24084:5;24077:13;24070:21;24059:32;;24049:48;;;:::o;24103:126::-;24140:7;24180:42;24173:5;24169:54;24158:65;;24148:81;;;:::o;24235:77::-;24272:7;24301:5;24290:16;;24280:32;;;:::o;24318:86::-;24353:7;24393:4;24386:5;24382:16;24371:27;;24361:43;;;:::o;24410:134::-;24468:9;24501:37;24532:5;24501:37;:::i;:::-;24488:50;;24478:66;;;:::o;24550:121::-;24608:9;24641:24;24659:5;24641:24;:::i;:::-;24628:37;;24618:53;;;:::o;24677:126::-;24727:9;24760:37;24791:5;24760:37;:::i;:::-;24747:50;;24737:66;;;:::o;24809:113::-;24859:9;24892:24;24910:5;24892:24;:::i;:::-;24879:37;;24869:53;;;:::o;24928:307::-;24996:1;25006:113;25020:6;25017:1;25014:13;25006:113;;;25105:1;25100:3;25096:11;25090:18;25086:1;25081:3;25077:11;25070:39;25042:2;25039:1;25035:10;25030:15;;25006:113;;;25137:6;25134:1;25131:13;25128:2;;;25217:1;25208:6;25203:3;25199:16;25192:27;25128:2;24977:258;;;;:::o;25241:281::-;25324:27;25346:4;25324:27;:::i;:::-;25316:6;25312:40;25454:6;25442:10;25439:22;25418:18;25406:10;25403:34;25400:62;25397:2;;;25465:18;;:::i;:::-;25397:2;25505:10;25501:2;25494:22;25284:238;;;:::o;25528:233::-;25567:3;25590:24;25608:5;25590:24;:::i;:::-;25581:33;;25636:66;25629:5;25626:77;25623:2;;;25706:18;;:::i;:::-;25623:2;25753:1;25746:5;25742:13;25735:20;;25571:190;;;:::o;25767:180::-;25815:77;25812:1;25805:88;25912:4;25909:1;25902:15;25936:4;25933:1;25926:15;25953:180;26001:77;25998:1;25991:88;26098:4;26095:1;26088:15;26122:4;26119:1;26112:15;26139:180;26187:77;26184:1;26177:88;26284:4;26281:1;26274:15;26308:4;26305:1;26298:15;26325:102;26366:6;26417:2;26413:7;26408:2;26401:5;26397:14;26393:28;26383:38;;26373:54;;;:::o;26433:227::-;26573:34;26569:1;26561:6;26557:14;26550:58;26642:10;26637:2;26629:6;26625:15;26618:35;26539:121;:::o;26666:222::-;26806:34;26802:1;26794:6;26790:14;26783:58;26875:5;26870:2;26862:6;26858:15;26851:30;26772:116;:::o;26894:221::-;27034:34;27030:1;27022:6;27018:14;27011:58;27103:4;27098:2;27090:6;27086:15;27079:29;27000:115;:::o;27121:177::-;27261:29;27257:1;27249:6;27245:14;27238:53;27227:71;:::o;27304:220::-;27444:34;27440:1;27432:6;27428:14;27421:58;27513:3;27508:2;27500:6;27496:15;27489:28;27410:114;:::o;27530:182::-;27670:34;27666:1;27658:6;27654:14;27647:58;27636:76;:::o;27718:228::-;27858:34;27854:1;27846:6;27842:14;27835:58;27927:11;27922:2;27914:6;27910:15;27903:36;27824:122;:::o;27952:224::-;28092:34;28088:1;28080:6;28076:14;28069:58;28161:7;28156:2;28148:6;28144:15;28137:32;28058:118;:::o;28182:180::-;28322:32;28318:1;28310:6;28306:14;28299:56;28288:74;:::o;28368:223::-;28508:34;28504:1;28496:6;28492:14;28485:58;28577:6;28572:2;28564:6;28560:15;28553:31;28474:117;:::o;28597:173::-;28737:25;28733:1;28725:6;28721:14;28714:49;28703:67;:::o;28776:179::-;28916:31;28912:1;28904:6;28900:14;28893:55;28882:73;:::o;28961:122::-;29034:24;29052:5;29034:24;:::i;:::-;29027:5;29024:35;29014:2;;29073:1;29070;29063:12;29014:2;29004:79;:::o;29089:116::-;29159:21;29174:5;29159:21;:::i;:::-;29152:5;29149:32;29139:2;;29195:1;29192;29185:12;29139:2;29129:76;:::o;29211:122::-;29284:24;29302:5;29284:24;:::i;:::-;29277:5;29274:35;29264:2;;29323:1;29320;29313:12;29264:2;29254:79;:::o;29339:118::-;29410:22;29426:5;29410:22;:::i;:::-;29403:5;29400:33;29390:2;;29447:1;29444;29437:12;29390:2;29380:77;:::o

Swarm Source

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