ETH Price: $3,061.85 (+1.91%)
Gas: 3 Gwei

Token

All In Coin (ALLIN)
 

Overview

Max Total Supply

1,000,000,000 ALLIN

Holders

475

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
309,459.901388476 ALLIN

Value
$0.00
0xb32b819c70c54e8acfe24df78e70d3d828fba194
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:
ALLIN

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-05
*/

//Welcome to a true DeFi casino experience!

//TG: https://t.me/allinmain
//Website: https://allincryptocasino.com
//Discord: https://discord.gg/H5aw5zEvUu

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    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 ALLIN 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 _tax;
    uint256 private time;

    uint256 private constant _tTotal = 1 * 10 ** 9 * 10**9;
    uint256 private fee1=50;
    uint256 private fee2=50;
    uint256 private pc1 = 29;
    uint256 private pc2 = 22;
    uint256 private pc3 = 22;
    uint256 private pc4 = 21;
    uint256 private pc5 = 5;
    uint256 private pc6 = 1;
    string private constant _name = unicode"All In Coin";
    string private constant _symbol = unicode"ALLIN";
    uint256 private _maxTxAmount = _tTotal.div(100);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private maxCaSell = _tTotal.div(300);
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    address payable private _feeWallet2;
    address payable private _feeWallet3;
    address payable private _feeWallet4;
    address payable private _withdrawalWallet;
    address private depositContract;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsEnabled = true;
    bool private allowBlacklist = true;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0xB1cf86B9258B8a7f6888D0Bd92045b33Db90CA77);
        _feeWallet2 = payable(0xDDa1aa0c5b9c8b90f2FCec4A7BF16FC675739f0D);
        _feeWallet3 = payable(0xD24434C40E1c08d8b70F0B363E3B54Cff71243A0);
        _feeWallet4 = payable(0xeDF647837b955d1A0BA0Baa9183E9aAaa83C9A92);
        _withdrawalWallet = payable(0xD851cC237c245D49726ea6c34Bd3eB7Cda56bc1e);
        _tOwned[address(this)] = _tTotal.div(100).mul(55);
        _tOwned[_deployer] = _tTotal.div(100).mul(45);
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[depositContract] = true;

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

    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 changeMinBalance(uint256 newMin) public onlyOwner {
        minBalance = newMin;

    }

    function editFees(uint256 one, uint256 two) public onlyOwner {
        require(one <= 50 && two <= 50,"Fees have to smaller than or equal to 5%");
        fee1 = one;
        fee2 = two;
    }

    function removeLimits() public onlyOwner {
        limitsEnabled = false;
    }

    function changePercentages(uint256 nPc1, uint256 nPc2, uint256 nPc3, uint256 nPc4, uint256 nPc5, uint256 nPc6) public onlyOwner {
        require(nPc1 + nPc2 + nPc3 + nPc4 + nPc5 + nPc6 == 100,"Percentages have to add up to 100");
        pc1 = nPc1;
        pc2 = nPc2;
        pc3 = nPc3;
        pc4 = nPc4;
        pc5 = nPc5;
        pc6 = nPc6;
    }

    function setDepositAddress(address deposit) public onlyOwner {
        depositContract = deposit;
    }


    function excludeFromFees(address target) public onlyOwner {
        _isExcludedFromFee[target] = true;
    }

    function disableBlacklist() public onlyOwner {
        allowBlacklist = false;
    }
   
    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 = 0;
        if (from != _deployer && to != _deployer) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && limitsEnabled){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"Max wallet exceeded");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && from != depositContract) {
                require(block.timestamp > time,"tiny cooldown to blacklist bots");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    if(contractTokenBalance > maxCaSell){
                        contractTokenBalance = maxCaSell;
                        if(contractTokenBalance > amount){
                            contractTokenBalance = amount;
                        }
                    }
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            _tax = 0;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _tax = fee1;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _tax = fee2;
            }

        }
        if (to == depositContract || from == depositContract) {
            _tax = 0;
        }	
        _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 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 {
        _deployer.transfer(amount.mul(pc3).div(100));
        _marketingWallet.transfer(amount.mul(pc2).div(100));
        _feeWallet2.transfer(amount.mul(pc4).div(100));
        _feeWallet3.transfer(amount.mul(pc5).div(100));
        _feeWallet4.transfer(amount.mul(pc1).div(100));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        fee1 = 100;
        fee2 = 100;
        swapEnabled = true;
        tradingOpen = true;
        limitsEnabled = true;
        time = block.timestamp + (3 minutes);
    }


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

    function setBots(address[] memory bots_) public onlyOwner {
        require(allowBlacklist);
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address[] memory notbots) public onlyOwner {
        for (uint i = 0; i < notbots.length; i++) {
            bots[notbots[i]] = false;
        }
    }

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        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) public onlyOwner {
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,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":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nPc1","type":"uint256"},{"internalType":"uint256","name":"nPc2","type":"uint256"},{"internalType":"uint256","name":"nPc3","type":"uint256"},{"internalType":"uint256","name":"nPc4","type":"uint256"},{"internalType":"uint256","name":"nPc5","type":"uint256"},{"internalType":"uint256","name":"nPc6","type":"uint256"}],"name":"changePercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbots","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"one","type":"uint256"},{"internalType":"uint256","name":"two","type":"uint256"}],"name":"editFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","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":"removeLimits","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":[{"internalType":"address","name":"deposit","type":"address"}],"name":"setDepositAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260326009556032600a55601d600b556016600c556016600d556015600e556005600f5560016010556200004f6064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b601155620000756032670de0b6b3a764000062000a4f60201b620017b21790919060201c565b6012556200009c6103e8670de0b6b3a764000062000a4f60201b620017b21790919060201c565b601355620000c361012c670de0b6b3a764000062000a4f60201b620017b21790919060201c565b6014556000601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055506001601d60186101000a81548160ff02191690831515021790555060006200014462000aa160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b1cf86b9258b8a7f6888d0bd92045b33db90ca77601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dda1aa0c5b9c8b90f2fcec4a7bf16fc675739f0d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d24434c40e1c08d8b70f0b363e3b54cff71243a0601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073edf647837b955d1a0ba0baa9183e9aaaa83c9a92601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d851cc237c245d49726ea6c34bd3eb7cda56bc1e601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004096037620003f56064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000489602d620004756064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b60026000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d7919062000c27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000687919062000c27565b6040518363ffffffff1660e01b8152600401620006a692919062000c6a565b6020604051808303816000875af1158015620006c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ec919062000c27565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006200074262000b2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200096c6037620009586064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b6040516200097b919062000cb2565b60405180910390a3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000a32602d62000a1e6064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b60405162000a41919062000cb2565b60405180910390a362000f06565b600062000a9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b5560201b60201c565b905092915050565b600033905090565b600080830362000abd576000905062000b26565b6000828462000acd919062000cfe565b905082848262000ade919062000d78565b1462000b21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b189062000e37565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b96919062000ee2565b60405180910390fd5b506000838562000bb0919062000d78565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bef8262000bc2565b9050919050565b62000c018162000be2565b811462000c0d57600080fd5b50565b60008151905062000c218162000bf6565b92915050565b60006020828403121562000c405762000c3f62000bbd565b5b600062000c508482850162000c10565b91505092915050565b62000c648162000be2565b82525050565b600060408201905062000c81600083018562000c59565b62000c90602083018462000c59565b9392505050565b6000819050919050565b62000cac8162000c97565b82525050565b600060208201905062000cc9600083018462000ca1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d0b8262000c97565b915062000d188362000c97565b925082820262000d288162000c97565b9150828204841483151762000d425762000d4162000ccf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d858262000c97565b915062000d928362000c97565b92508262000da55762000da462000d49565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e1f60218362000db0565b915062000e2c8262000dc1565b604082019050919050565b6000602082019050818103600083015262000e528162000e10565b9050919050565b600081519050919050565b60005b8381101562000e8457808201518184015260208101905062000e67565b60008484015250505050565b6000601f19601f8301169050919050565b600062000eae8262000e59565b62000eba818562000db0565b935062000ecc81856020860162000e64565b62000ed78162000e90565b840191505092915050565b6000602082019050818103600083015262000efe818462000ea1565b905092915050565b6140c88062000f166000396000f3fe60806040526004361061016a5760003560e01c80638a0dae59116100d1578063c3c8cd801161008a578063dd62ed3e11610064578063dd62ed3e146104d3578063e57f14e114610510578063ea43915e14610539578063f2fde38b1461055057610171565b8063c3c8cd801461047c578063c9567bf914610493578063c97c1821146104aa57610171565b80638a0dae591461036e5780638da5cb5b1461039757806395d89b41146103c2578063a9059cbb146103ed578063ab18af271461042a578063b515566a1461045357610171565b8063313ce56711610123578063313ce567146102985780634ea18fab146102c35780636fc3eaec146102ec57806370a0823114610303578063715018a614610340578063751039fc1461035757610171565b806306fdde0314610176578063095ea7b3146101a157806316114acd146101de578063174fbaee1461020757806318160ddd1461023057806323b872dd1461025b57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610579565b6040516101989190612f8c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190613056565b6105b6565b6040516101d591906130b1565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906130cc565b6105d4565b005b34801561021357600080fd5b5061022e600480360381019061022991906130f9565b61078c565b005b34801561023c57600080fd5b50610245610884565b6040516102529190613148565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613163565b610894565b60405161028f91906130b1565b60405180910390f35b3480156102a457600080fd5b506102ad61096d565b6040516102ba91906131d2565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906131ed565b610976565b005b3480156102f857600080fd5b50610301610a15565b005b34801561030f57600080fd5b5061032a600480360381019061032591906130cc565b610abb565b6040516103379190613148565b60405180910390f35b34801561034c57600080fd5b50610355610b04565b005b34801561036357600080fd5b5061036c610c57565b005b34801561037a57600080fd5b506103956004803603810190610390919061321a565b610d09565b005b3480156103a357600080fd5b506103ac610e4a565b6040516103b991906132b6565b60405180910390f35b3480156103ce57600080fd5b506103d7610e73565b6040516103e49190612f8c565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613056565b610eb0565b60405161042191906130b1565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906130cc565b610ece565b005b34801561045f57600080fd5b5061047a60048036038101906104759190613419565b610fa7565b005b34801561048857600080fd5b506104916110ea565b005b34801561049f57600080fd5b506104a8611198565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190613419565b61130d565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613462565b611437565b6040516105079190613148565b60405180910390f35b34801561051c57600080fd5b50610537600480360381019061053291906130cc565b6114be565b005b34801561054557600080fd5b5061054e6115ae565b005b34801561055c57600080fd5b50610577600480360381019061057291906130cc565b611660565b005b60606040518060400160405280600b81526020017f416c6c20496e20436f696e000000000000000000000000000000000000000000815250905090565b60006105ca6105c3611876565b848461187e565b6001905092915050565b6105dc611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610660906134ee565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106e691906132b6565b602060405180830381865afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107279190613523565b6040518363ffffffff1660e01b81526004016107449291906135af565b6020604051808303816000875af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107879190613604565b505050565b610794611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610818906134ee565b60405180910390fd5b60328211158015610833575060328111155b610872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610869906136a3565b60405180910390fd5b8160098190555080600a819055505050565b6000670de0b6b3a7640000905090565b60006108a1848484611a47565b610962846108ad611876565b61095d8560405180606001604052806028815260200161406b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610913611876565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b61187e565b600190509392505050565b60006009905090565b61097e611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a02906134ee565b60405180910390fd5b8060138190555050565b610a1d611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa1906134ee565b60405180910390fd5b6000479050610ab881612501565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0c611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b90906134ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c5f611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce3906134ee565b60405180910390fd5b6000601d60176101000a81548160ff021916908315150217905550565b610d11611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906134ee565b60405180910390fd5b606481838587898b610db091906136f2565b610dba91906136f2565b610dc491906136f2565b610dce91906136f2565b610dd891906136f2565b14610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90613798565b60405180910390fd5b85600b8190555084600c8190555083600d8190555082600e8190555081600f8190555080601081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f414c4c494e000000000000000000000000000000000000000000000000000000815250905090565b6000610ec4610ebd611876565b8484611a47565b6001905092915050565b610ed6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a906134ee565b60405180910390fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610faf611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906134ee565b60405180910390fd5b601d60189054906101000a900460ff1661105557600080fd5b60005b81518110156110e65760016005600084848151811061107a576110796137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de906137e7565b915050611058565b5050565b6110f2611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906134ee565b60405180910390fd5b600061118a30610abb565b9050611195816127d4565b50565b6111a0611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611224906134ee565b60405180910390fd5b601d60149054906101000a900460ff161561127d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112749061387b565b60405180910390fd5b61129761128930610abb565b47611292610e4a565b612a4d565b60646009819055506064600a819055506001601d60166101000a81548160ff0219169083151502179055506001601d60146101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff02191690831515021790555060b44261130591906136f2565b600881905550565b611315611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611399906134ee565b60405180910390fd5b60005b8151811015611433576000600560008484815181106113c7576113c66137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061142b906137e7565b9150506113a5565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114c6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a906134ee565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115b6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906134ee565b60405180910390fd5b6000601d60186101000a81548160ff021916908315150217905550565b611668611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006117f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b62565b905092915050565b600080830361180e5760009050611870565b6000828461181c919061389b565b905082848261182b919061390c565b1461186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906139af565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490613a41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390613ad3565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190613148565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613bf7565b60405180910390fd5b60008111611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613c89565b60405180910390fd5b6000600781905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120fb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cc55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cce57600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d795750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dcf5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de75750601d60179054906101000a900460ff165b15611f265760125481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a91906136f2565b1115611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290613cf5565b60405180910390fd5b601154811115611e8a57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ed557600080fd5b601e42611ee291906136f2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601d60159054906101000a900460ff16158015611f915750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa95750601d60169054906101000a900460ff165b8015611fff5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120fa5760085442116120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990613d61565b60405180910390fd5b60006120ad30610abb565b90506013548111156120f8576014548111156120d5576014549050818111156120d4578190505b5b6120de816127d4565b600047905060008111156120f6576120f547612501565b5b505b505b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061219c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061224f5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561224e5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156122615760006007819055506123d6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561231b576009546007819055505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156123c65750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123d557600a546007819055505b5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061247f5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561248d5760006007819055505b612498838383612bc5565b505050565b60008383111582906124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dc9190612f8c565b60405180910390fd5b50600083856124f49190613d81565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125656064612557600d54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612590573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125f560646125e7600c54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612620573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126856064612677600e54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126b0573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127156064612707600f54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612740573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127a56064612797600b54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127d0573d6000803e3d6000fd5b5050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561280c5761280b6132d6565b5b60405190808252806020026020018201604052801561283a5781602001602082028036833780820191505090505b5090503081600081518110612852576128516137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291d9190613dca565b81600181518110612931576129306137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061299830601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129fc959493929190613ef0565b600060405180830381600087803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b6001601d60156101000a81548160ff021916908315150217905550612a9530601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612afc96959493929190613f4a565b60606040518083038185885af1158015612b1a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b3f9190613fab565b5050506000601d60156101000a81548160ff021916908315150217905550505050565b60008083118290612ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba09190612f8c565b60405180910390fd5b5060008385612bb8919061390c565b9050809150509392505050565b600080612bd183612e00565b91509150612c2783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbc82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612df19190613148565b60405180910390a35050505050565b6000806000612e2e6103e8612e20600754876117fc90919063ffffffff16565b6117b290919063ffffffff16565b90506000612e458286612e5490919063ffffffff16565b90508082935093505050915091565b6000612e9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b6000808284612ead91906136f2565b905083811015612ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee99061404a565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f36578082015181840152602081019050612f1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5e82612efc565b612f688185612f07565b9350612f78818560208601612f18565b612f8181612f42565b840191505092915050565b60006020820190508181036000830152612fa68184612f53565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fed82612fc2565b9050919050565b612ffd81612fe2565b811461300857600080fd5b50565b60008135905061301a81612ff4565b92915050565b6000819050919050565b61303381613020565b811461303e57600080fd5b50565b6000813590506130508161302a565b92915050565b6000806040838503121561306d5761306c612fb8565b5b600061307b8582860161300b565b925050602061308c85828601613041565b9150509250929050565b60008115159050919050565b6130ab81613096565b82525050565b60006020820190506130c660008301846130a2565b92915050565b6000602082840312156130e2576130e1612fb8565b5b60006130f08482850161300b565b91505092915050565b600080604083850312156131105761310f612fb8565b5b600061311e85828601613041565b925050602061312f85828601613041565b9150509250929050565b61314281613020565b82525050565b600060208201905061315d6000830184613139565b92915050565b60008060006060848603121561317c5761317b612fb8565b5b600061318a8682870161300b565b935050602061319b8682870161300b565b92505060406131ac86828701613041565b9150509250925092565b600060ff82169050919050565b6131cc816131b6565b82525050565b60006020820190506131e760008301846131c3565b92915050565b60006020828403121561320357613202612fb8565b5b600061321184828501613041565b91505092915050565b60008060008060008060c0878903121561323757613236612fb8565b5b600061324589828a01613041565b965050602061325689828a01613041565b955050604061326789828a01613041565b945050606061327889828a01613041565b935050608061328989828a01613041565b92505060a061329a89828a01613041565b9150509295509295509295565b6132b081612fe2565b82525050565b60006020820190506132cb60008301846132a7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61330e82612f42565b810181811067ffffffffffffffff8211171561332d5761332c6132d6565b5b80604052505050565b6000613340612fae565b905061334c8282613305565b919050565b600067ffffffffffffffff82111561336c5761336b6132d6565b5b602082029050602081019050919050565b600080fd5b600061339561339084613351565b613336565b905080838252602082019050602084028301858111156133b8576133b761337d565b5b835b818110156133e157806133cd888261300b565b8452602084019350506020810190506133ba565b5050509392505050565b600082601f830112613400576133ff6132d1565b5b8135613410848260208601613382565b91505092915050565b60006020828403121561342f5761342e612fb8565b5b600082013567ffffffffffffffff81111561344d5761344c612fbd565b5b613459848285016133eb565b91505092915050565b6000806040838503121561347957613478612fb8565b5b60006134878582860161300b565b92505060206134988582860161300b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d8602083612f07565b91506134e3826134a2565b602082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b60008151905061351d8161302a565b92915050565b60006020828403121561353957613538612fb8565b5b60006135478482850161350e565b91505092915050565b6000819050919050565b600061357561357061356b84612fc2565b613550565b612fc2565b9050919050565b60006135878261355a565b9050919050565b60006135998261357c565b9050919050565b6135a98161358e565b82525050565b60006040820190506135c460008301856135a0565b6135d16020830184613139565b9392505050565b6135e181613096565b81146135ec57600080fd5b50565b6000815190506135fe816135d8565b92915050565b60006020828403121561361a57613619612fb8565b5b6000613628848285016135ef565b91505092915050565b7f46656573206861766520746f20736d616c6c6572207468616e206f722065717560008201527f616c20746f203525000000000000000000000000000000000000000000000000602082015250565b600061368d602883612f07565b915061369882613631565b604082019050919050565b600060208201905081810360008301526136bc81613680565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136fd82613020565b915061370883613020565b92508282019050808211156137205761371f6136c3565b5b92915050565b7f50657263656e7461676573206861766520746f2061646420757020746f20313060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000613782602183612f07565b915061378d82613726565b604082019050919050565b600060208201905081810360008301526137b181613775565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006137f282613020565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613824576138236136c3565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613865601783612f07565b91506138708261382f565b602082019050919050565b6000602082019050818103600083015261389481613858565b9050919050565b60006138a682613020565b91506138b183613020565b92508282026138bf81613020565b915082820484148315176138d6576138d56136c3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061391782613020565b915061392283613020565b925082613932576139316138dd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613999602183612f07565b91506139a48261393d565b604082019050919050565b600060208201905081810360008301526139c88161398c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a2b602483612f07565b9150613a36826139cf565b604082019050919050565b60006020820190508181036000830152613a5a81613a1e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613abd602283612f07565b9150613ac882613a61565b604082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b4f602583612f07565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613be1602383612f07565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c73602983612f07565b9150613c7e82613c17565b604082019050919050565b60006020820190508181036000830152613ca281613c66565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613cdf601383612f07565b9150613cea82613ca9565b602082019050919050565b60006020820190508181036000830152613d0e81613cd2565b9050919050565b7f74696e7920636f6f6c646f776e20746f20626c61636b6c69737420626f747300600082015250565b6000613d4b601f83612f07565b9150613d5682613d15565b602082019050919050565b60006020820190508181036000830152613d7a81613d3e565b9050919050565b6000613d8c82613020565b9150613d9783613020565b9250828203905081811115613daf57613dae6136c3565b5b92915050565b600081519050613dc481612ff4565b92915050565b600060208284031215613de057613ddf612fb8565b5b6000613dee84828501613db5565b91505092915050565b6000819050919050565b6000613e1c613e17613e1284613df7565b613550565b613020565b9050919050565b613e2c81613e01565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e6781612fe2565b82525050565b6000613e798383613e5e565b60208301905092915050565b6000602082019050919050565b6000613e9d82613e32565b613ea78185613e3d565b9350613eb283613e4e565b8060005b83811015613ee3578151613eca8882613e6d565b9750613ed583613e85565b925050600181019050613eb6565b5085935050505092915050565b600060a082019050613f056000830188613139565b613f126020830187613e23565b8181036040830152613f248186613e92565b9050613f3360608301856132a7565b613f406080830184613139565b9695505050505050565b600060c082019050613f5f60008301896132a7565b613f6c6020830188613139565b613f796040830187613e23565b613f866060830186613e23565b613f9360808301856132a7565b613fa060a0830184613139565b979650505050505050565b600080600060608486031215613fc457613fc3612fb8565b5b6000613fd28682870161350e565b9350506020613fe38682870161350e565b9250506040613ff48682870161350e565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614034601b83612f07565b915061403f82613ffe565b602082019050919050565b6000602082019050818103600083015261406381614027565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122020a192282f9754cbcf14edee1b2996aa3e4da6a48d11aa3521a67123884398a064736f6c63430008120033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80638a0dae59116100d1578063c3c8cd801161008a578063dd62ed3e11610064578063dd62ed3e146104d3578063e57f14e114610510578063ea43915e14610539578063f2fde38b1461055057610171565b8063c3c8cd801461047c578063c9567bf914610493578063c97c1821146104aa57610171565b80638a0dae591461036e5780638da5cb5b1461039757806395d89b41146103c2578063a9059cbb146103ed578063ab18af271461042a578063b515566a1461045357610171565b8063313ce56711610123578063313ce567146102985780634ea18fab146102c35780636fc3eaec146102ec57806370a0823114610303578063715018a614610340578063751039fc1461035757610171565b806306fdde0314610176578063095ea7b3146101a157806316114acd146101de578063174fbaee1461020757806318160ddd1461023057806323b872dd1461025b57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610579565b6040516101989190612f8c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190613056565b6105b6565b6040516101d591906130b1565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906130cc565b6105d4565b005b34801561021357600080fd5b5061022e600480360381019061022991906130f9565b61078c565b005b34801561023c57600080fd5b50610245610884565b6040516102529190613148565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613163565b610894565b60405161028f91906130b1565b60405180910390f35b3480156102a457600080fd5b506102ad61096d565b6040516102ba91906131d2565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906131ed565b610976565b005b3480156102f857600080fd5b50610301610a15565b005b34801561030f57600080fd5b5061032a600480360381019061032591906130cc565b610abb565b6040516103379190613148565b60405180910390f35b34801561034c57600080fd5b50610355610b04565b005b34801561036357600080fd5b5061036c610c57565b005b34801561037a57600080fd5b506103956004803603810190610390919061321a565b610d09565b005b3480156103a357600080fd5b506103ac610e4a565b6040516103b991906132b6565b60405180910390f35b3480156103ce57600080fd5b506103d7610e73565b6040516103e49190612f8c565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613056565b610eb0565b60405161042191906130b1565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906130cc565b610ece565b005b34801561045f57600080fd5b5061047a60048036038101906104759190613419565b610fa7565b005b34801561048857600080fd5b506104916110ea565b005b34801561049f57600080fd5b506104a8611198565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190613419565b61130d565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613462565b611437565b6040516105079190613148565b60405180910390f35b34801561051c57600080fd5b50610537600480360381019061053291906130cc565b6114be565b005b34801561054557600080fd5b5061054e6115ae565b005b34801561055c57600080fd5b50610577600480360381019061057291906130cc565b611660565b005b60606040518060400160405280600b81526020017f416c6c20496e20436f696e000000000000000000000000000000000000000000815250905090565b60006105ca6105c3611876565b848461187e565b6001905092915050565b6105dc611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610660906134ee565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106e691906132b6565b602060405180830381865afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107279190613523565b6040518363ffffffff1660e01b81526004016107449291906135af565b6020604051808303816000875af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107879190613604565b505050565b610794611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610818906134ee565b60405180910390fd5b60328211158015610833575060328111155b610872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610869906136a3565b60405180910390fd5b8160098190555080600a819055505050565b6000670de0b6b3a7640000905090565b60006108a1848484611a47565b610962846108ad611876565b61095d8560405180606001604052806028815260200161406b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610913611876565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b61187e565b600190509392505050565b60006009905090565b61097e611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a02906134ee565b60405180910390fd5b8060138190555050565b610a1d611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa1906134ee565b60405180910390fd5b6000479050610ab881612501565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0c611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b90906134ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c5f611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce3906134ee565b60405180910390fd5b6000601d60176101000a81548160ff021916908315150217905550565b610d11611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906134ee565b60405180910390fd5b606481838587898b610db091906136f2565b610dba91906136f2565b610dc491906136f2565b610dce91906136f2565b610dd891906136f2565b14610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90613798565b60405180910390fd5b85600b8190555084600c8190555083600d8190555082600e8190555081600f8190555080601081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f414c4c494e000000000000000000000000000000000000000000000000000000815250905090565b6000610ec4610ebd611876565b8484611a47565b6001905092915050565b610ed6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a906134ee565b60405180910390fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610faf611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906134ee565b60405180910390fd5b601d60189054906101000a900460ff1661105557600080fd5b60005b81518110156110e65760016005600084848151811061107a576110796137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de906137e7565b915050611058565b5050565b6110f2611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906134ee565b60405180910390fd5b600061118a30610abb565b9050611195816127d4565b50565b6111a0611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611224906134ee565b60405180910390fd5b601d60149054906101000a900460ff161561127d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112749061387b565b60405180910390fd5b61129761128930610abb565b47611292610e4a565b612a4d565b60646009819055506064600a819055506001601d60166101000a81548160ff0219169083151502179055506001601d60146101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff02191690831515021790555060b44261130591906136f2565b600881905550565b611315611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611399906134ee565b60405180910390fd5b60005b8151811015611433576000600560008484815181106113c7576113c66137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061142b906137e7565b9150506113a5565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114c6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a906134ee565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115b6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906134ee565b60405180910390fd5b6000601d60186101000a81548160ff021916908315150217905550565b611668611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006117f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b62565b905092915050565b600080830361180e5760009050611870565b6000828461181c919061389b565b905082848261182b919061390c565b1461186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906139af565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490613a41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390613ad3565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190613148565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613bf7565b60405180910390fd5b60008111611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613c89565b60405180910390fd5b6000600781905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120fb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cc55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cce57600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d795750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dcf5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de75750601d60179054906101000a900460ff165b15611f265760125481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a91906136f2565b1115611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290613cf5565b60405180910390fd5b601154811115611e8a57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ed557600080fd5b601e42611ee291906136f2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601d60159054906101000a900460ff16158015611f915750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa95750601d60169054906101000a900460ff165b8015611fff5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120fa5760085442116120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990613d61565b60405180910390fd5b60006120ad30610abb565b90506013548111156120f8576014548111156120d5576014549050818111156120d4578190505b5b6120de816127d4565b600047905060008111156120f6576120f547612501565b5b505b505b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061219c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061224f5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561224e5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156122615760006007819055506123d6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561231b576009546007819055505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156123c65750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123d557600a546007819055505b5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061247f5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561248d5760006007819055505b612498838383612bc5565b505050565b60008383111582906124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dc9190612f8c565b60405180910390fd5b50600083856124f49190613d81565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125656064612557600d54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612590573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125f560646125e7600c54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612620573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126856064612677600e54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126b0573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127156064612707600f54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612740573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127a56064612797600b54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127d0573d6000803e3d6000fd5b5050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561280c5761280b6132d6565b5b60405190808252806020026020018201604052801561283a5781602001602082028036833780820191505090505b5090503081600081518110612852576128516137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291d9190613dca565b81600181518110612931576129306137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061299830601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129fc959493929190613ef0565b600060405180830381600087803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b6001601d60156101000a81548160ff021916908315150217905550612a9530601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612afc96959493929190613f4a565b60606040518083038185885af1158015612b1a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b3f9190613fab565b5050506000601d60156101000a81548160ff021916908315150217905550505050565b60008083118290612ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba09190612f8c565b60405180910390fd5b5060008385612bb8919061390c565b9050809150509392505050565b600080612bd183612e00565b91509150612c2783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbc82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612df19190613148565b60405180910390a35050505050565b6000806000612e2e6103e8612e20600754876117fc90919063ffffffff16565b6117b290919063ffffffff16565b90506000612e458286612e5490919063ffffffff16565b90508082935093505050915091565b6000612e9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b6000808284612ead91906136f2565b905083811015612ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee99061404a565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f36578082015181840152602081019050612f1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5e82612efc565b612f688185612f07565b9350612f78818560208601612f18565b612f8181612f42565b840191505092915050565b60006020820190508181036000830152612fa68184612f53565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fed82612fc2565b9050919050565b612ffd81612fe2565b811461300857600080fd5b50565b60008135905061301a81612ff4565b92915050565b6000819050919050565b61303381613020565b811461303e57600080fd5b50565b6000813590506130508161302a565b92915050565b6000806040838503121561306d5761306c612fb8565b5b600061307b8582860161300b565b925050602061308c85828601613041565b9150509250929050565b60008115159050919050565b6130ab81613096565b82525050565b60006020820190506130c660008301846130a2565b92915050565b6000602082840312156130e2576130e1612fb8565b5b60006130f08482850161300b565b91505092915050565b600080604083850312156131105761310f612fb8565b5b600061311e85828601613041565b925050602061312f85828601613041565b9150509250929050565b61314281613020565b82525050565b600060208201905061315d6000830184613139565b92915050565b60008060006060848603121561317c5761317b612fb8565b5b600061318a8682870161300b565b935050602061319b8682870161300b565b92505060406131ac86828701613041565b9150509250925092565b600060ff82169050919050565b6131cc816131b6565b82525050565b60006020820190506131e760008301846131c3565b92915050565b60006020828403121561320357613202612fb8565b5b600061321184828501613041565b91505092915050565b60008060008060008060c0878903121561323757613236612fb8565b5b600061324589828a01613041565b965050602061325689828a01613041565b955050604061326789828a01613041565b945050606061327889828a01613041565b935050608061328989828a01613041565b92505060a061329a89828a01613041565b9150509295509295509295565b6132b081612fe2565b82525050565b60006020820190506132cb60008301846132a7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61330e82612f42565b810181811067ffffffffffffffff8211171561332d5761332c6132d6565b5b80604052505050565b6000613340612fae565b905061334c8282613305565b919050565b600067ffffffffffffffff82111561336c5761336b6132d6565b5b602082029050602081019050919050565b600080fd5b600061339561339084613351565b613336565b905080838252602082019050602084028301858111156133b8576133b761337d565b5b835b818110156133e157806133cd888261300b565b8452602084019350506020810190506133ba565b5050509392505050565b600082601f830112613400576133ff6132d1565b5b8135613410848260208601613382565b91505092915050565b60006020828403121561342f5761342e612fb8565b5b600082013567ffffffffffffffff81111561344d5761344c612fbd565b5b613459848285016133eb565b91505092915050565b6000806040838503121561347957613478612fb8565b5b60006134878582860161300b565b92505060206134988582860161300b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d8602083612f07565b91506134e3826134a2565b602082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b60008151905061351d8161302a565b92915050565b60006020828403121561353957613538612fb8565b5b60006135478482850161350e565b91505092915050565b6000819050919050565b600061357561357061356b84612fc2565b613550565b612fc2565b9050919050565b60006135878261355a565b9050919050565b60006135998261357c565b9050919050565b6135a98161358e565b82525050565b60006040820190506135c460008301856135a0565b6135d16020830184613139565b9392505050565b6135e181613096565b81146135ec57600080fd5b50565b6000815190506135fe816135d8565b92915050565b60006020828403121561361a57613619612fb8565b5b6000613628848285016135ef565b91505092915050565b7f46656573206861766520746f20736d616c6c6572207468616e206f722065717560008201527f616c20746f203525000000000000000000000000000000000000000000000000602082015250565b600061368d602883612f07565b915061369882613631565b604082019050919050565b600060208201905081810360008301526136bc81613680565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136fd82613020565b915061370883613020565b92508282019050808211156137205761371f6136c3565b5b92915050565b7f50657263656e7461676573206861766520746f2061646420757020746f20313060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000613782602183612f07565b915061378d82613726565b604082019050919050565b600060208201905081810360008301526137b181613775565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006137f282613020565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613824576138236136c3565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613865601783612f07565b91506138708261382f565b602082019050919050565b6000602082019050818103600083015261389481613858565b9050919050565b60006138a682613020565b91506138b183613020565b92508282026138bf81613020565b915082820484148315176138d6576138d56136c3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061391782613020565b915061392283613020565b925082613932576139316138dd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613999602183612f07565b91506139a48261393d565b604082019050919050565b600060208201905081810360008301526139c88161398c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a2b602483612f07565b9150613a36826139cf565b604082019050919050565b60006020820190508181036000830152613a5a81613a1e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613abd602283612f07565b9150613ac882613a61565b604082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b4f602583612f07565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613be1602383612f07565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c73602983612f07565b9150613c7e82613c17565b604082019050919050565b60006020820190508181036000830152613ca281613c66565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613cdf601383612f07565b9150613cea82613ca9565b602082019050919050565b60006020820190508181036000830152613d0e81613cd2565b9050919050565b7f74696e7920636f6f6c646f776e20746f20626c61636b6c69737420626f747300600082015250565b6000613d4b601f83612f07565b9150613d5682613d15565b602082019050919050565b60006020820190508181036000830152613d7a81613d3e565b9050919050565b6000613d8c82613020565b9150613d9783613020565b9250828203905081811115613daf57613dae6136c3565b5b92915050565b600081519050613dc481612ff4565b92915050565b600060208284031215613de057613ddf612fb8565b5b6000613dee84828501613db5565b91505092915050565b6000819050919050565b6000613e1c613e17613e1284613df7565b613550565b613020565b9050919050565b613e2c81613e01565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e6781612fe2565b82525050565b6000613e798383613e5e565b60208301905092915050565b6000602082019050919050565b6000613e9d82613e32565b613ea78185613e3d565b9350613eb283613e4e565b8060005b83811015613ee3578151613eca8882613e6d565b9750613ed583613e85565b925050600181019050613eb6565b5085935050505092915050565b600060a082019050613f056000830188613139565b613f126020830187613e23565b8181036040830152613f248186613e92565b9050613f3360608301856132a7565b613f406080830184613139565b9695505050505050565b600060c082019050613f5f60008301896132a7565b613f6c6020830188613139565b613f796040830187613e23565b613f866060830186613e23565b613f9360808301856132a7565b613fa060a0830184613139565b979650505050505050565b600080600060608486031215613fc457613fc3612fb8565b5b6000613fd28682870161350e565b9350506020613fe38682870161350e565b9250506040613ff48682870161350e565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614034601b83612f07565b915061403f82613ffe565b602082019050919050565b6000602082019050818103600083015261406381614027565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122020a192282f9754cbcf14edee1b2996aa3e4da6a48d11aa3521a67123884398a064736f6c63430008120033

Deployed Bytecode Sourcemap

3863:11305:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6768:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7599:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14958:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8201:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7045:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7768:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6954:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8094:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14552:153;;;;;;;;;;;;;:::i;:::-;;7148:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:148;;;;;;;;;;;;;:::i;:::-;;8405:81;;;;;;;;;;;;;:::i;:::-;;8494:364;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2547:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7273:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8866:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13957:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14386:154;;;;;;;;;;;;;:::i;:::-;;13151:367;;;;;;;;;;;;;:::i;:::-;;14167:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7448:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8981:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9099:86;;;;;;;;;;;;;:::i;:::-;;2761:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6768:83;6805:13;6838:5;;;;;;;;;;;;;;;;;6831:12;;6768:83;:::o;7599:161::-;7674:4;7691:39;7700:12;:10;:12::i;:::-;7714:7;7723:6;7691:8;:39::i;:::-;7748:4;7741:11;;7599:161;;;;:::o;14958:207::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15031:20:::1;15061:12;15031:43;;15085:13;:22;;;15108:9;;;;;;;;;;;15118:13;:23;;;15150:4;15118:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15085:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15020:145;14958:207:::0;:::o;8201:196::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8288:2:::1;8281:3;:9;;:22;;;;;8301:2;8294:3;:9;;8281:22;8273:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8365:3;8358:4;:10;;;;8386:3;8379:4;:10;;;;8201:196:::0;;:::o;7045:95::-;7098:7;4317:19;7118:14;;7045:95;:::o;7768:313::-;7866:4;7883:36;7893:6;7901:9;7912:6;7883:9;:36::i;:::-;7930:121;7939:6;7947:12;:10;:12::i;:::-;7961:89;7999:6;7961:89;;;;;;;;;;;;;;;;;:11;:19;7973:6;7961:19;;;;;;;;;;;;;;;:33;7981:12;:10;:12::i;:::-;7961:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7930:8;:121::i;:::-;8069:4;8062:11;;7768:313;;;;;:::o;6954:83::-;6995:5;4951:1;7013:16;;6954:83;:::o;8094:99::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8177:6:::1;8164:10;:19;;;;8094:99:::0;:::o;14552:153::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14604:26:::1;14633:21;14604:50;;14665:32;14678:18;14665:12;:32::i;:::-;14593:112;14552:153::o:0;7148:117::-;7214:7;7241;:16;7249:7;7241:16;;;;;;;;;;;;;;;;7234:23;;7148:117;;;:::o;2942:148::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3049:1:::1;3012:40;;3033:6;::::0;::::1;;;;;;;;3012:40;;;;;;;;;;;;3080:1;3063:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2942:148::o:0;8405:81::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8473:5:::1;8457:13;;:21;;;;;;;;;;;;;;;;;;8405:81::o:0;8494:364::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8684:3:::1;8676:4;8669;8662;8655;8648;8641;:11;;;;:::i;:::-;:18;;;;:::i;:::-;:25;;;;:::i;:::-;:32;;;;:::i;:::-;:39;;;;:::i;:::-;:46;8633:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;8741:4;8735:3;:10;;;;8762:4;8756:3;:10;;;;8783:4;8777:3;:10;;;;8804:4;8798:3;:10;;;;8825:4;8819:3;:10;;;;8846:4;8840:3;:10;;;;8494:364:::0;;;;;;:::o;2547:79::-;2585:7;2612:6;;;;;;;;;;;2605:13;;2547:79;:::o;6859:87::-;6898:13;6931:7;;;;;;;;;;;;;;;;;6924:14;;6859:87;:::o;7273:167::-;7351:4;7368:42;7378:12;:10;:12::i;:::-;7392:9;7403:6;7368:9;:42::i;:::-;7428:4;7421:11;;7273:167;;;;:::o;8866:105::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8956:7:::1;8938:15;;:25;;;;;;;;;;;;;;;;;;8866:105:::0;:::o;13957:198::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14034:14:::1;;;;;;;;;;;14026:23;;;::::0;::::1;;14065:6;14060:88;14081:5;:12;14077:1;:16;14060:88;;;14132:4;14115;:14;14120:5;14126:1;14120:8;;;;;;;;:::i;:::-;;;;;;;;14115:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14095:3;;;;;:::i;:::-;;;;14060:88;;;;13957:198:::0;:::o;14386:154::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14438:23:::1;14464:24;14482:4;14464:9;:24::i;:::-;14438:50;;14499:33;14516:15;14499:16;:33::i;:::-;14427:113;14386:154::o:0;13151:367::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13215:11:::1;;;;;;;;;;;13214:12;13206:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13264:68;13277:24;13295:4;13277:9;:24::i;:::-;13302:21;13324:7;:5;:7::i;:::-;13264:12;:68::i;:::-;13350:3;13343:4;:10;;;;13371:3;13364:4;:10;;;;13399:4;13385:11;;:18;;;;;;;;;;;;;;;;;;13428:4;13414:11;;:18;;;;;;;;;;;;;;;;;;13459:4;13443:13;;:20;;;;;;;;;;;;;;;;;;13500:9;13481:15;:29;;;;:::i;:::-;13474:4;:36;;;;13151:367::o:0;14167:170::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14242:6:::1;14237:93;14258:7;:14;14254:1;:18;14237:93;;;14313:5;14294:4;:16;14299:7;14307:1;14299:10;;;;;;;;:::i;:::-;;;;;;;;14294:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14274:3;;;;;:::i;:::-;;;;14237:93;;;;14167:170:::0;:::o;7448:143::-;7529:7;7556:11;:18;7568:5;7556:18;;;;;;;;;;;;;;;:27;7575:7;7556:27;;;;;;;;;;;;;;;;7549:34;;7448:143;;;;:::o;8981:110::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9079:4:::1;9050:18;:26;9069:6;9050:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8981:110:::0;:::o;9099:86::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9172:5:::1;9155:14;;:22;;;;;;;;;;;;;;;;;;9099:86::o:0;2761:173::-;2684:12;:10;:12::i;:::-;2674:22;;:6;;;;;;;;;;:22;;;2666:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2877:9:::1;2848:39;;2869:6;::::0;::::1;;;;;;;;2848:39;;;;;;;;;;;;2907:9;2898:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2761:173:::0;:::o;1854:132::-;1912:7;1939:39;1943:1;1946;1939:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1932:46;;1854:132;;;;:::o;1600:246::-;1658:7;1687:1;1682;:6;1678:47;;1712:1;1705:8;;;;1678:47;1735:9;1751:1;1747;:5;;;;:::i;:::-;1735:17;;1780:1;1775;1771;:5;;;;:::i;:::-;:10;1763:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1837:1;1830:8;;;1600:246;;;;;:::o;265:98::-;318:7;345:10;338:17;;265:98;:::o;9196:335::-;9306:1;9289:19;;:5;:19;;;9281:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9387:1;9368:21;;:7;:21;;;9360:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9469:6;9439:11;:18;9451:5;9439:18;;;;;;;;;;;;;;;:27;9458:7;9439:27;;;;;;;;;;;;;;;:36;;;;9507:7;9491:32;;9500:5;9491:32;;;9516:6;9491:32;;;;;;:::i;:::-;;;;;;;;9196:335;;;:::o;9539:2451::-;9643:1;9627:18;;:4;:18;;;9619:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9720:1;9706:16;;:2;:16;;;9698:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9790:1;9781:6;:10;9773:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9857:1;9850:4;:8;;;;9881:9;;;;;;;;;;;9873:17;;:4;:17;;;;:36;;;;;9900:9;;;;;;;;;;;9894:15;;:2;:15;;;;9873:36;9869:1487;;;9935:4;:10;9940:4;9935:10;;;;;;;;;;;;;;;;;;;;;;;;;9934:11;:24;;;;;9950:4;:8;9955:2;9950:8;;;;;;;;;;;;;;;;;;;;;;;;;9949:9;9934:24;9926:33;;;;;;9986:13;;;;;;;;;;;9978:21;;:4;:21;;;:55;;;;;10017:15;;;;;;;;;;;10003:30;;:2;:30;;;;9978:55;:83;;;;;10039:18;:22;10058:2;10039:22;;;;;;;;;;;;;;;;;;;;;;;;;10037:24;9978:83;:100;;;;;10065:13;;;;;;;;;;;9978:100;9974:414;;;10161:16;;10150:6;10136:7;:11;10144:2;10136:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;10135:42;;10127:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10237:12;;10227:6;:22;;10219:31;;;;;;10292:15;10277:8;:12;10286:2;10277:12;;;;;;;;;;;;;;;;:30;10269:39;;;;;;10361:10;10342:15;:30;;;;:::i;:::-;10327:8;:12;10336:2;10327:12;;;;;;;;;;;;;;;:45;;;;9974:414;10435:6;;;;;;;;;;;10434:7;:32;;;;;10453:13;;;;;;;;;;;10445:21;;:4;:21;;;;10434:32;:47;;;;;10470:11;;;;;;;;;;;10434:47;:76;;;;;10486:18;:24;10505:4;10486:24;;;;;;;;;;;;;;;;;;;;;;;;;10485:25;10434:76;:103;;;;;10522:15;;;;;;;;;;;10514:23;;:4;:23;;;;10434:103;10430:915;;;10584:4;;10566:15;:22;10558:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10642:28;10673:24;10691:4;10673:9;:24::i;:::-;10642:55;;10742:10;;10719:20;:33;10716:614;;;10802:9;;10779:20;:32;10776:266;;;10862:9;;10839:32;;10924:6;10901:20;:29;10898:121;;;10985:6;10962:29;;10898:121;10776:266;11064:38;11081:20;11064:16;:38::i;:::-;11125:26;11154:21;11125:50;;11222:1;11201:18;:22;11198:113;;;11252:35;11265:21;11252:12;:35::i;:::-;11198:113;10753:577;10716:614;10539:806;10430:915;9869:1487;11371:18;:24;11390:4;11371:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11399:18;:22;11418:2;11399:22;;;;;;;;;;;;;;;;;;;;;;;;;11371:50;11370:102;;;;11435:13;;;;;;;;;;;11427:21;;:4;:21;;;;:44;;;;;11458:13;;;;;;;;;;;11452:19;;:2;:19;;;;11427:44;11370:102;11366:473;;;11496:1;11489:4;:8;;;;11366:473;;;11575:13;;;;;;;;;;;11567:21;;:4;:21;;;:55;;;;;11606:15;;;;;;;;;;;11592:30;;:2;:30;;;;11567:55;11564:106;;;11650:4;;11643;:11;;;;11564:106;11729:13;;;;;;;;;;;11723:19;;:2;:19;;;:55;;;;;11762:15;;;;;;;;;;;11746:32;;:4;:32;;;;11723:55;11719:107;;;11806:4;;11799;:11;;;;11719:107;11366:473;11859:15;;;;;;;;;;;11853:21;;:2;:21;;;:48;;;;11886:15;;;;;;;;;;;11878:23;;:4;:23;;;11853:48;11849:89;;;11925:1;11918:4;:8;;;;11849:89;11949:33;11967:4;11972:2;11975:6;11949:17;:33::i;:::-;9539:2451;;;:::o;1402:190::-;1488:7;1521:1;1516;:6;;1524:12;1508:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1548:9;1564:1;1560;:5;;;;:::i;:::-;1548:17;;1583:1;1576:8;;;1402:190;;;;;:::o;12797:342::-;12854:9;;;;;;;;;;;:18;;:44;12873:24;12893:3;12873:15;12884:3;;12873:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;12854:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12909:16;;;;;;;;;;;:25;;:51;12935:24;12955:3;12935:15;12946:3;;12935:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;12909:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12971:11;;;;;;;;;;;:20;;:46;12992:24;13012:3;12992:15;13003:3;;12992:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;12971:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13028:11;;;;;;;;;;;:20;;:46;13049:24;13069:3;13049:15;13060:3;;13049:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;13028:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13085:11;;;;;;;;;;;:20;;:46;13106:24;13126:3;13106:15;13117:3;;13106:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;13085:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12797:342;:::o;11998:483::-;5569:4;5560:6;;:13;;;;;;;;;;;;;;;;;;12076:21:::1;12114:1;12100:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12076:40;;12145:4;12127;12132:1;12127:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12171:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12161:4;12166:1;12161:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12204:62;12221:4;12236:15;;;;;;;;;;;12254:11;12204:8;:62::i;:::-;12277:15;;;;;;;;;;;:66;;;12358:11;12384:1;12400:4;12427;12447:15;12277:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12065:416;5605:5:::0;5596:6;;:14;;;;;;;;;;;;;;;;;;11998:483;:::o;12495:288::-;5569:4;5560:6;;:13;;;;;;;;;;;;;;;;;;12601:60:::1;12618:4;12632:15;;;;;;;;;;;12649:11;12601:8;:60::i;:::-;12672:15;;;;;;;;;;;:31;;;12711:9;12730:4;12736:11;12748:1;12750::::0;12752:6:::1;12759:15;12672:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5605:5:::0;5596:6;;:14;;;;;;;;;;;;;;;;;;12495:288;;;:::o;1994:189::-;2080:7;2112:1;2108;:5;2115:12;2100:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2139:9;2155:1;2151;:5;;;;:::i;:::-;2139:17;;2174:1;2167:8;;;1994:189;;;;;:::o;13528:421::-;13627:22;13650:12;13666:20;13678:7;13666:11;:20::i;:::-;13626:60;;;;13715:28;13735:7;13715;:15;13723:6;13715:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13697:7;:15;13705:6;13697:15;;;;;;;;;;;;;;;:46;;;;13775:38;13798:14;13775:7;:18;13783:9;13775:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;13754:7;:18;13762:9;13754:18;;;;;;;;;;;;;;;:59;;;;13850:32;13877:4;13850:7;:22;13866:4;13850:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;13825:7;:22;13841:4;13825:22;;;;;;;;;;;;;;;:57;;;;13915:9;13898:43;;13907:6;13898:43;;;13926:14;13898:43;;;;;;:::i;:::-;;;;;;;;13615:334;;13528:421;;;:::o;14716:234::-;14776:7;14785;14805:12;14820:27;14842:4;14820:17;14832:4;;14820:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;14805:42;;14858:23;14884:17;14896:4;14884:7;:11;;:17;;;;:::i;:::-;14858:43;;14920:15;14937:4;14912:30;;;;;;14716:234;;;:::o;1258:136::-;1316:7;1343:43;1347:1;1350;1343:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1336:50;;1258:136;;;;:::o;1071:179::-;1129:7;1149:9;1165:1;1161;:5;;;;:::i;:::-;1149:17;;1190:1;1185;:6;;1177:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1241:1;1234:8;;;1071:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:474::-;3849:6;3857;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;4159:2;4185:53;4230:7;4221:6;4210:9;4206:22;4185:53;:::i;:::-;4175:63;;4130:118;3781:474;;;;;:::o;4261:118::-;4348:24;4366:5;4348:24;:::i;:::-;4343:3;4336:37;4261:118;;:::o;4385:222::-;4478:4;4516:2;4505:9;4501:18;4493:26;;4529:71;4597:1;4586:9;4582:17;4573:6;4529:71;:::i;:::-;4385:222;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:1057::-;6107:6;6115;6123;6131;6139;6147;6196:3;6184:9;6175:7;6171:23;6167:33;6164:120;;;6203:79;;:::i;:::-;6164:120;6323:1;6348:53;6393:7;6384:6;6373:9;6369:22;6348:53;:::i;:::-;6338:63;;6294:117;6450:2;6476:53;6521:7;6512:6;6501:9;6497:22;6476:53;:::i;:::-;6466:63;;6421:118;6578:2;6604:53;6649:7;6640:6;6629:9;6625:22;6604:53;:::i;:::-;6594:63;;6549:118;6706:2;6732:53;6777:7;6768:6;6757:9;6753:22;6732:53;:::i;:::-;6722:63;;6677:118;6834:3;6861:53;6906:7;6897:6;6886:9;6882:22;6861:53;:::i;:::-;6851:63;;6805:119;6963:3;6990:53;7035:7;7026:6;7015:9;7011:22;6990:53;:::i;:::-;6980:63;;6934:119;6003:1057;;;;;;;;:::o;7066:118::-;7153:24;7171:5;7153:24;:::i;:::-;7148:3;7141:37;7066:118;;:::o;7190:222::-;7283:4;7321:2;7310:9;7306:18;7298:26;;7334:71;7402:1;7391:9;7387:17;7378:6;7334:71;:::i;:::-;7190:222;;;;:::o;7418:117::-;7527:1;7524;7517:12;7541:180;7589:77;7586:1;7579:88;7686:4;7683:1;7676:15;7710:4;7707:1;7700:15;7727:281;7810:27;7832:4;7810:27;:::i;:::-;7802:6;7798:40;7940:6;7928:10;7925:22;7904:18;7892:10;7889:34;7886:62;7883:88;;;7951:18;;:::i;:::-;7883:88;7991:10;7987:2;7980:22;7770:238;7727:281;;:::o;8014:129::-;8048:6;8075:20;;:::i;:::-;8065:30;;8104:33;8132:4;8124:6;8104:33;:::i;:::-;8014:129;;;:::o;8149:311::-;8226:4;8316:18;8308:6;8305:30;8302:56;;;8338:18;;:::i;:::-;8302:56;8388:4;8380:6;8376:17;8368:25;;8448:4;8442;8438:15;8430:23;;8149:311;;;:::o;8466:117::-;8575:1;8572;8565:12;8606:710;8702:5;8727:81;8743:64;8800:6;8743:64;:::i;:::-;8727:81;:::i;:::-;8718:90;;8828:5;8857:6;8850:5;8843:21;8891:4;8884:5;8880:16;8873:23;;8944:4;8936:6;8932:17;8924:6;8920:30;8973:3;8965:6;8962:15;8959:122;;;8992:79;;:::i;:::-;8959:122;9107:6;9090:220;9124:6;9119:3;9116:15;9090:220;;;9199:3;9228:37;9261:3;9249:10;9228:37;:::i;:::-;9223:3;9216:50;9295:4;9290:3;9286:14;9279:21;;9166:144;9150:4;9145:3;9141:14;9134:21;;9090:220;;;9094:21;8708:608;;8606:710;;;;;:::o;9339:370::-;9410:5;9459:3;9452:4;9444:6;9440:17;9436:27;9426:122;;9467:79;;:::i;:::-;9426:122;9584:6;9571:20;9609:94;9699:3;9691:6;9684:4;9676:6;9672:17;9609:94;:::i;:::-;9600:103;;9416:293;9339:370;;;;:::o;9715:539::-;9799:6;9848:2;9836:9;9827:7;9823:23;9819:32;9816:119;;;9854:79;;:::i;:::-;9816:119;10002:1;9991:9;9987:17;9974:31;10032:18;10024:6;10021:30;10018:117;;;10054:79;;:::i;:::-;10018:117;10159:78;10229:7;10220:6;10209:9;10205:22;10159:78;:::i;:::-;10149:88;;9945:302;9715:539;;;;:::o;10260:474::-;10328:6;10336;10385:2;10373:9;10364:7;10360:23;10356:32;10353:119;;;10391:79;;:::i;:::-;10353:119;10511:1;10536:53;10581:7;10572:6;10561:9;10557:22;10536:53;:::i;:::-;10526:63;;10482:117;10638:2;10664:53;10709:7;10700:6;10689:9;10685:22;10664:53;:::i;:::-;10654:63;;10609:118;10260:474;;;;;:::o;10740:182::-;10880:34;10876:1;10868:6;10864:14;10857:58;10740:182;:::o;10928:366::-;11070:3;11091:67;11155:2;11150:3;11091:67;:::i;:::-;11084:74;;11167:93;11256:3;11167:93;:::i;:::-;11285:2;11280:3;11276:12;11269:19;;10928:366;;;:::o;11300:419::-;11466:4;11504:2;11493:9;11489:18;11481:26;;11553:9;11547:4;11543:20;11539:1;11528:9;11524:17;11517:47;11581:131;11707:4;11581:131;:::i;:::-;11573:139;;11300:419;;;:::o;11725:143::-;11782:5;11813:6;11807:13;11798:22;;11829:33;11856:5;11829:33;:::i;:::-;11725:143;;;;:::o;11874:351::-;11944:6;11993:2;11981:9;11972:7;11968:23;11964:32;11961:119;;;11999:79;;:::i;:::-;11961:119;12119:1;12144:64;12200:7;12191:6;12180:9;12176:22;12144:64;:::i;:::-;12134:74;;12090:128;11874:351;;;;:::o;12231:60::-;12259:3;12280:5;12273:12;;12231:60;;;:::o;12297:142::-;12347:9;12380:53;12398:34;12407:24;12425:5;12407:24;:::i;:::-;12398:34;:::i;:::-;12380:53;:::i;:::-;12367:66;;12297:142;;;:::o;12445:126::-;12495:9;12528:37;12559:5;12528:37;:::i;:::-;12515:50;;12445:126;;;:::o;12577:134::-;12635:9;12668:37;12699:5;12668:37;:::i;:::-;12655:50;;12577:134;;;:::o;12717:147::-;12812:45;12851:5;12812:45;:::i;:::-;12807:3;12800:58;12717:147;;:::o;12870:348::-;12999:4;13037:2;13026:9;13022:18;13014:26;;13050:79;13126:1;13115:9;13111:17;13102:6;13050:79;:::i;:::-;13139:72;13207:2;13196:9;13192:18;13183:6;13139:72;:::i;:::-;12870:348;;;;;:::o;13224:116::-;13294:21;13309:5;13294:21;:::i;:::-;13287:5;13284:32;13274:60;;13330:1;13327;13320:12;13274:60;13224:116;:::o;13346:137::-;13400:5;13431:6;13425:13;13416:22;;13447:30;13471:5;13447:30;:::i;:::-;13346:137;;;;:::o;13489:345::-;13556:6;13605:2;13593:9;13584:7;13580:23;13576:32;13573:119;;;13611:79;;:::i;:::-;13573:119;13731:1;13756:61;13809:7;13800:6;13789:9;13785:22;13756:61;:::i;:::-;13746:71;;13702:125;13489:345;;;;:::o;13840:227::-;13980:34;13976:1;13968:6;13964:14;13957:58;14049:10;14044:2;14036:6;14032:15;14025:35;13840:227;:::o;14073:366::-;14215:3;14236:67;14300:2;14295:3;14236:67;:::i;:::-;14229:74;;14312:93;14401:3;14312:93;:::i;:::-;14430:2;14425:3;14421:12;14414:19;;14073:366;;;:::o;14445:419::-;14611:4;14649:2;14638:9;14634:18;14626:26;;14698:9;14692:4;14688:20;14684:1;14673:9;14669:17;14662:47;14726:131;14852:4;14726:131;:::i;:::-;14718:139;;14445:419;;;:::o;14870:180::-;14918:77;14915:1;14908:88;15015:4;15012:1;15005:15;15039:4;15036:1;15029:15;15056:191;15096:3;15115:20;15133:1;15115:20;:::i;:::-;15110:25;;15149:20;15167:1;15149:20;:::i;:::-;15144:25;;15192:1;15189;15185:9;15178:16;;15213:3;15210:1;15207:10;15204:36;;;15220:18;;:::i;:::-;15204:36;15056:191;;;;:::o;15253:220::-;15393:34;15389:1;15381:6;15377:14;15370:58;15462:3;15457:2;15449:6;15445:15;15438:28;15253:220;:::o;15479:366::-;15621:3;15642:67;15706:2;15701:3;15642:67;:::i;:::-;15635:74;;15718:93;15807:3;15718:93;:::i;:::-;15836:2;15831:3;15827:12;15820:19;;15479:366;;;:::o;15851:419::-;16017:4;16055:2;16044:9;16040:18;16032:26;;16104:9;16098:4;16094:20;16090:1;16079:9;16075:17;16068:47;16132:131;16258:4;16132:131;:::i;:::-;16124:139;;15851:419;;;:::o;16276:180::-;16324:77;16321:1;16314:88;16421:4;16418:1;16411:15;16445:4;16442:1;16435:15;16462:233;16501:3;16524:24;16542:5;16524:24;:::i;:::-;16515:33;;16570:66;16563:5;16560:77;16557:103;;16640:18;;:::i;:::-;16557:103;16687:1;16680:5;16676:13;16669:20;;16462:233;;;:::o;16701:173::-;16841:25;16837:1;16829:6;16825:14;16818:49;16701:173;:::o;16880:366::-;17022:3;17043:67;17107:2;17102:3;17043:67;:::i;:::-;17036:74;;17119:93;17208:3;17119:93;:::i;:::-;17237:2;17232:3;17228:12;17221:19;;16880:366;;;:::o;17252:419::-;17418:4;17456:2;17445:9;17441:18;17433:26;;17505:9;17499:4;17495:20;17491:1;17480:9;17476:17;17469:47;17533:131;17659:4;17533:131;:::i;:::-;17525:139;;17252:419;;;:::o;17677:410::-;17717:7;17740:20;17758:1;17740:20;:::i;:::-;17735:25;;17774:20;17792:1;17774:20;:::i;:::-;17769:25;;17829:1;17826;17822:9;17851:30;17869:11;17851:30;:::i;:::-;17840:41;;18030:1;18021:7;18017:15;18014:1;18011:22;17991:1;17984:9;17964:83;17941:139;;18060:18;;:::i;:::-;17941:139;17725:362;17677:410;;;;:::o;18093:180::-;18141:77;18138:1;18131:88;18238:4;18235:1;18228:15;18262:4;18259:1;18252:15;18279:185;18319:1;18336:20;18354:1;18336:20;:::i;:::-;18331:25;;18370:20;18388:1;18370:20;:::i;:::-;18365:25;;18409:1;18399:35;;18414:18;;:::i;:::-;18399:35;18456:1;18453;18449:9;18444:14;;18279:185;;;;:::o;18470:220::-;18610:34;18606:1;18598:6;18594:14;18587:58;18679:3;18674:2;18666:6;18662:15;18655:28;18470:220;:::o;18696:366::-;18838:3;18859:67;18923:2;18918:3;18859:67;:::i;:::-;18852:74;;18935:93;19024:3;18935:93;:::i;:::-;19053:2;19048:3;19044:12;19037:19;;18696:366;;;:::o;19068:419::-;19234:4;19272:2;19261:9;19257:18;19249:26;;19321:9;19315:4;19311:20;19307:1;19296:9;19292:17;19285:47;19349:131;19475:4;19349:131;:::i;:::-;19341:139;;19068:419;;;:::o;19493:223::-;19633:34;19629:1;19621:6;19617:14;19610:58;19702:6;19697:2;19689:6;19685:15;19678:31;19493:223;:::o;19722:366::-;19864:3;19885:67;19949:2;19944:3;19885:67;:::i;:::-;19878:74;;19961:93;20050:3;19961:93;:::i;:::-;20079:2;20074:3;20070:12;20063:19;;19722:366;;;:::o;20094:419::-;20260:4;20298:2;20287:9;20283:18;20275:26;;20347:9;20341:4;20337:20;20333:1;20322:9;20318:17;20311:47;20375:131;20501:4;20375:131;:::i;:::-;20367:139;;20094:419;;;:::o;20519:221::-;20659:34;20655:1;20647:6;20643:14;20636:58;20728:4;20723:2;20715:6;20711:15;20704:29;20519:221;:::o;20746:366::-;20888:3;20909:67;20973:2;20968:3;20909:67;:::i;:::-;20902:74;;20985:93;21074:3;20985:93;:::i;:::-;21103:2;21098:3;21094:12;21087:19;;20746:366;;;:::o;21118:419::-;21284:4;21322:2;21311:9;21307:18;21299:26;;21371:9;21365:4;21361:20;21357:1;21346:9;21342:17;21335:47;21399:131;21525:4;21399:131;:::i;:::-;21391:139;;21118:419;;;:::o;21543:224::-;21683:34;21679:1;21671:6;21667:14;21660:58;21752:7;21747:2;21739:6;21735:15;21728:32;21543:224;:::o;21773:366::-;21915:3;21936:67;22000:2;21995:3;21936:67;:::i;:::-;21929:74;;22012:93;22101:3;22012:93;:::i;:::-;22130:2;22125:3;22121:12;22114:19;;21773:366;;;:::o;22145:419::-;22311:4;22349:2;22338:9;22334:18;22326:26;;22398:9;22392:4;22388:20;22384:1;22373:9;22369:17;22362:47;22426:131;22552:4;22426:131;:::i;:::-;22418:139;;22145:419;;;:::o;22570:222::-;22710:34;22706:1;22698:6;22694:14;22687:58;22779:5;22774:2;22766:6;22762:15;22755:30;22570:222;:::o;22798:366::-;22940:3;22961:67;23025:2;23020:3;22961:67;:::i;:::-;22954:74;;23037:93;23126:3;23037:93;:::i;:::-;23155:2;23150:3;23146:12;23139:19;;22798:366;;;:::o;23170:419::-;23336:4;23374:2;23363:9;23359:18;23351:26;;23423:9;23417:4;23413:20;23409:1;23398:9;23394:17;23387:47;23451:131;23577:4;23451:131;:::i;:::-;23443:139;;23170:419;;;:::o;23595:228::-;23735:34;23731:1;23723:6;23719:14;23712:58;23804:11;23799:2;23791:6;23787:15;23780:36;23595:228;:::o;23829:366::-;23971:3;23992:67;24056:2;24051:3;23992:67;:::i;:::-;23985:74;;24068:93;24157:3;24068:93;:::i;:::-;24186:2;24181:3;24177:12;24170:19;;23829:366;;;:::o;24201:419::-;24367:4;24405:2;24394:9;24390:18;24382:26;;24454:9;24448:4;24444:20;24440:1;24429:9;24425:17;24418:47;24482:131;24608:4;24482:131;:::i;:::-;24474:139;;24201:419;;;:::o;24626:169::-;24766:21;24762:1;24754:6;24750:14;24743:45;24626:169;:::o;24801:366::-;24943:3;24964:67;25028:2;25023:3;24964:67;:::i;:::-;24957:74;;25040:93;25129:3;25040:93;:::i;:::-;25158:2;25153:3;25149:12;25142:19;;24801:366;;;:::o;25173:419::-;25339:4;25377:2;25366:9;25362:18;25354:26;;25426:9;25420:4;25416:20;25412:1;25401:9;25397:17;25390:47;25454:131;25580:4;25454:131;:::i;:::-;25446:139;;25173:419;;;:::o;25598:181::-;25738:33;25734:1;25726:6;25722:14;25715:57;25598:181;:::o;25785:366::-;25927:3;25948:67;26012:2;26007:3;25948:67;:::i;:::-;25941:74;;26024:93;26113:3;26024:93;:::i;:::-;26142:2;26137:3;26133:12;26126:19;;25785:366;;;:::o;26157:419::-;26323:4;26361:2;26350:9;26346:18;26338:26;;26410:9;26404:4;26400:20;26396:1;26385:9;26381:17;26374:47;26438:131;26564:4;26438:131;:::i;:::-;26430:139;;26157:419;;;:::o;26582:194::-;26622:4;26642:20;26660:1;26642:20;:::i;:::-;26637:25;;26676:20;26694:1;26676:20;:::i;:::-;26671:25;;26720:1;26717;26713:9;26705:17;;26744:1;26738:4;26735:11;26732:37;;;26749:18;;:::i;:::-;26732:37;26582:194;;;;:::o;26782:143::-;26839:5;26870:6;26864:13;26855:22;;26886:33;26913:5;26886:33;:::i;:::-;26782:143;;;;:::o;26931:351::-;27001:6;27050:2;27038:9;27029:7;27025:23;27021:32;27018:119;;;27056:79;;:::i;:::-;27018:119;27176:1;27201:64;27257:7;27248:6;27237:9;27233:22;27201:64;:::i;:::-;27191:74;;27147:128;26931:351;;;;:::o;27288:85::-;27333:7;27362:5;27351:16;;27288:85;;;:::o;27379:158::-;27437:9;27470:61;27488:42;27497:32;27523:5;27497:32;:::i;:::-;27488:42;:::i;:::-;27470:61;:::i;:::-;27457:74;;27379:158;;;:::o;27543:147::-;27638:45;27677:5;27638:45;:::i;:::-;27633:3;27626:58;27543:147;;:::o;27696:114::-;27763:6;27797:5;27791:12;27781:22;;27696:114;;;:::o;27816:184::-;27915:11;27949:6;27944:3;27937:19;27989:4;27984:3;27980:14;27965:29;;27816:184;;;;:::o;28006:132::-;28073:4;28096:3;28088:11;;28126:4;28121:3;28117:14;28109:22;;28006:132;;;:::o;28144:108::-;28221:24;28239:5;28221:24;:::i;:::-;28216:3;28209:37;28144:108;;:::o;28258:179::-;28327:10;28348:46;28390:3;28382:6;28348:46;:::i;:::-;28426:4;28421:3;28417:14;28403:28;;28258:179;;;;:::o;28443:113::-;28513:4;28545;28540:3;28536:14;28528:22;;28443:113;;;:::o;28592:732::-;28711:3;28740:54;28788:5;28740:54;:::i;:::-;28810:86;28889:6;28884:3;28810:86;:::i;:::-;28803:93;;28920:56;28970:5;28920:56;:::i;:::-;28999:7;29030:1;29015:284;29040:6;29037:1;29034:13;29015:284;;;29116:6;29110:13;29143:63;29202:3;29187:13;29143:63;:::i;:::-;29136:70;;29229:60;29282:6;29229:60;:::i;:::-;29219:70;;29075:224;29062:1;29059;29055:9;29050:14;;29015:284;;;29019:14;29315:3;29308:10;;28716:608;;;28592:732;;;;:::o;29330:831::-;29593:4;29631:3;29620:9;29616:19;29608:27;;29645:71;29713:1;29702:9;29698:17;29689:6;29645:71;:::i;:::-;29726:80;29802:2;29791:9;29787:18;29778:6;29726:80;:::i;:::-;29853:9;29847:4;29843:20;29838:2;29827:9;29823:18;29816:48;29881:108;29984:4;29975:6;29881:108;:::i;:::-;29873:116;;29999:72;30067:2;30056:9;30052:18;30043:6;29999:72;:::i;:::-;30081:73;30149:3;30138:9;30134:19;30125:6;30081:73;:::i;:::-;29330:831;;;;;;;;:::o;30167:807::-;30416:4;30454:3;30443:9;30439:19;30431:27;;30468:71;30536:1;30525:9;30521:17;30512:6;30468:71;:::i;:::-;30549:72;30617:2;30606:9;30602:18;30593:6;30549:72;:::i;:::-;30631:80;30707:2;30696:9;30692:18;30683:6;30631:80;:::i;:::-;30721;30797:2;30786:9;30782:18;30773:6;30721:80;:::i;:::-;30811:73;30879:3;30868:9;30864:19;30855:6;30811:73;:::i;:::-;30894;30962:3;30951:9;30947:19;30938:6;30894:73;:::i;:::-;30167:807;;;;;;;;;:::o;30980:663::-;31068:6;31076;31084;31133:2;31121:9;31112:7;31108:23;31104:32;31101:119;;;31139:79;;:::i;:::-;31101:119;31259:1;31284:64;31340:7;31331:6;31320:9;31316:22;31284:64;:::i;:::-;31274:74;;31230:128;31397:2;31423:64;31479:7;31470:6;31459:9;31455:22;31423:64;:::i;:::-;31413:74;;31368:129;31536:2;31562:64;31618:7;31609:6;31598:9;31594:22;31562:64;:::i;:::-;31552:74;;31507:129;30980:663;;;;;:::o;31649:177::-;31789:29;31785:1;31777:6;31773:14;31766:53;31649:177;:::o;31832:366::-;31974:3;31995:67;32059:2;32054:3;31995:67;:::i;:::-;31988:74;;32071:93;32160:3;32071:93;:::i;:::-;32189:2;32184:3;32180:12;32173:19;;31832:366;;;:::o;32204:419::-;32370:4;32408:2;32397:9;32393:18;32385:26;;32457:9;32451:4;32447:20;32443:1;32432:9;32428:17;32421:47;32485:131;32611:4;32485:131;:::i;:::-;32477:139;;32204:419;;;:::o

Swarm Source

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