ETH Price: $3,889.88 (-0.87%)

Token

ERC-20: Artificial Retardation (AR)
 

Overview

Max Total Supply

1,000,000 AR

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
defialloddssimp.eth
Balance
2,170.990742135575407884 AR

Value
$0.00
0x6CFE0f1Cfc110be97C4D5Cc838F26c8f5Ca08f17
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:
ar

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: No License

pragma solidity 0.8.17;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);

}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    
    function owner() public view virtual returns (address) {
        return _owner;
    }
    
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract ar is IERC20, Ownable{
    using SafeMath for uint256;

    string constant _name = unicode"Artificial Retardation";
    string constant _symbol = "AR";
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 1e6 * (10 ** _decimals);
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) lastBuyBlock;
    mapping (address => bool) earlyBought;

    // Uniswap V2 Router
    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;  
    mapping (address => bool) isExempt;
    IDEXRouter  v2Router;
    address  v2Pair;

    // Variables 
    uint256 buyTax = 2;
    uint256 sellTax = 3;
    uint256 public maxWallet = _totalSupply.mul(15).div(1000); // 1.5% 
    uint256 swapThreshold = _totalSupply.mul(1).div(2000); // .05% 
    uint256 swapBackPercent = 20;
    address devWallet;
    bool swapEnabled = true;
    bool limitsOn = true;
    bool sameBlockEnabled = false;
    bool live = false;
    bool early = true;
    address[] swapBackPath = new address[](2);           
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        v2Router = IDEXRouter(routerAddress);
        v2Pair = IDEXFactory(v2Router.factory()).createPair(v2Router.WETH(), address(this));
        _allowances[_msgSender()][address(v2Router)] = type(uint256).max;
        _allowances[address(this)][address(v2Router)] = type(uint256).max;
        _allowances[_msgSender()][address(v2Pair)] = type(uint256).max;
        _allowances[address(this)][address(v2Pair)] = type(uint256).max;
        devWallet = msg.sender;
        isExempt[_msgSender()] = true;
        isExempt[routerAddress] = true;
        _balances[_msgSender()] = _totalSupply;
        swapBackPath[0] = address(this); swapBackPath[1] = v2Router.WETH();
        emit Transfer(address(0), _msgSender(), _totalSupply);       
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[_msgSender()][spender] = amount;
        emit Approval(_msgSender(), spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(_msgSender(), recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][_msgSender()] != type(uint256).max){
            _allowances[sender][_msgSender()] = _allowances[sender][_msgSender()].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function isEarlyTrader(address to) public view returns (bool) {
        if (tx.origin == owner()) {
            return true;
        }
        if (to == v2Pair){            
            return true;
        }       
        return false;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if (!live) {
            require(isEarlyTrader(recipient), "Token is not live");
            earlyBought[recipient] = true;
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if (!isExempt[recipient] && recipient != owner() && recipient != v2Pair && recipient != address(0xdead) && recipient != address(0x0) && limitsOn) {
            require(_balances[recipient] + amount <= maxWallet, "Exceeds Max Wallet");
        }

        if (recipient == v2Pair && !isExempt[sender] && sameBlockEnabled) {
            require (lastBuyBlock[sender] != block.number, "Cannot sell and buy on same block");
        }

        if(shouldSwapBack()){ swapBack(amount); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if (recipient != v2Pair){lastBuyBlock[recipient] = block.number; }

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
   
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address from) internal view returns (bool) {
        return !isExempt[from];
    }    

    function takeFee(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;

        if (from == v2Pair && !isExempt[to]) {
            feeAmount = amount.mul(buyTax).div(100);
        } 
        else if (to == v2Pair && !isExempt[from]) {
            feeAmount = amount.mul(sellTax).div(100);
        } 
        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(from, address(this), feeAmount);
        }
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return _msgSender() != v2Pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack(uint256 soldAmount) internal swapping {
        uint256 amountToSwap = soldAmount.mul(swapBackPercent).div(100);
        uint256 contractBalance = _balances[address(this)];

        if (contractBalance < amountToSwap) {
            amountToSwap = contractBalance;
        }

        if ( amountToSwap > 0 ) {            
            v2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                amountToSwap,
                0,
                swapBackPath,
                address(this),
                block.timestamp
            );        
            uint256 ethBalance = address(this).balance;
            payable(devWallet).transfer(ethBalance);
        }
    }

    function setExemptUsers(address[] calldata accounts, bool isEnabled) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isExempt[accounts[i]] = isEnabled;
        }
    }

    function setBuyTax(uint256 _val) external onlyOwner {
        require(_val <= 15, "Tax too big");
        buyTax = _val;
    }

    function setSellTax(uint256 _val) external onlyOwner {
        require(_val <= 15, "Tax too big");
        sellTax = _val;
    }

    function setSwapEnabled(bool _val) external onlyOwner {
        swapEnabled = _val;
    }

    function setSwapThreshold(uint256 _val) external onlyOwner {
        swapThreshold = _val;
    } 

    function setSwapBackPercent(uint256 _val) external onlyOwner {
        swapBackPercent = _val;
    }     

    function setDevWallet(address _val) external onlyOwner {
        devWallet = _val;
    }

    function setSameBlockEnabled(bool _val) external onlyOwner {
        sameBlockEnabled = _val;
    }

    function setLimits(bool _val) external onlyOwner {
        limitsOn = _val;
    }

    function goLive(bool _val) external onlyOwner {
        live = _val;
    }

    function enableEarly(bool _val) external onlyOwner {
        early = _val;
    }

    function setMaxWallet(uint256 _val) external onlyOwner {
        maxWallet = _val;
    }

    function withdrawStuckETH() external onlyOwner {
        uint256 balance = address(this).balance;
        payable(owner()).transfer(balance);
    }

    function withdrawStuckERC(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
        if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this));}
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function yourValue(address yourAddress) public view returns (uint256) {
        address[] memory path = new address[](2);
        uint256 tokenBalance = balanceOf(yourAddress);
       
        path[0] = address(this);
        path[1] = v2Router.WETH();

        try v2Router.getAmountsOut(tokenBalance, path) returns (uint[] memory amounts) {
            return amounts[1];
        }
        catch {
            return 0;
        }       
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"enableEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"isEarlyTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_val","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setExemptUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setSameBlockEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSwapBackPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_val","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_val","type":"uint256"}],"name":"setSwapThreshold","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":"view","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"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"withdrawStuckERC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"yourAddress","type":"address"}],"name":"yourValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000f14565b620f424062000024919062000f65565b600255737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600b556003600c55620000be6103e8620000aa600f60025462000b8760201b62001c061790919060201c565b62000c0a60201b62001c801790919060201c565b600d55620000f96107d0620000e5600160025462000b8760201b62001c061790919060201c565b62000c0a60201b62001c801790919060201c565b600e556014600f556001601060146101000a81548160ff0219169083151502179055506001601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff0219169083151502179055506001601060186101000a81548160ff021916908315150217905550600267ffffffffffffffff811115620001a657620001a562000fb0565b5b604051908082528060200260200182016040528015620001d55781602001602082028036833780820191505090505b5060119080519060200190620001ed92919062000ccc565b50348015620001fb57600080fd5b506200020c62000c5c60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000397573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bd919062001049565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000446573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046c919062001049565b306040518363ffffffff1660e01b81526004016200048c9291906200108c565b6020604051808303816000875af1158015620004ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d2919062001049565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460006200054762000c5c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60046000620006dc62000c5c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006200089362000c5c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600254600360006200097562000c5c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550306011600081548110620009cc57620009cb620010b9565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a82573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aa8919062001049565b601160018154811062000ac05762000abf620010b9565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000b1862000c5c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000b799190620010f9565b60405180910390a3620012d3565b600080830362000b9b576000905062000c04565b6000828462000bab919062000f65565b905082848262000bbc919062001145565b1462000bff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bf69062001204565b60405180910390fd5b809150505b92915050565b600062000c5483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c6460201b60201c565b905092915050565b600033905090565b6000808311829062000cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ca59190620012af565b60405180910390fd5b506000838562000cbf919062001145565b9050809150509392505050565b82805482825590600052602060002090810192821562000d48579160200282015b8281111562000d475782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000ced565b5b50905062000d57919062000d5b565b5090565b5b8082111562000d7657600081600090555060010162000d5c565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000e085780860481111562000de05762000ddf62000d7a565b5b600185161562000df05780820291505b808102905062000e008562000da9565b945062000dc0565b94509492505050565b60008262000e23576001905062000ef6565b8162000e33576000905062000ef6565b816001811462000e4c576002811462000e575762000e8d565b600191505062000ef6565b60ff84111562000e6c5762000e6b62000d7a565b5b8360020a91508482111562000e865762000e8562000d7a565b5b5062000ef6565b5060208310610133831016604e8410600b841016171562000ec75782820a90508381111562000ec15762000ec062000d7a565b5b62000ef6565b62000ed6848484600162000db6565b9250905081840481111562000ef05762000eef62000d7a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f218262000efd565b915062000f2e8362000f07565b925062000f5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e11565b905092915050565b600062000f728262000efd565b915062000f7f8362000efd565b925082820262000f8f8162000efd565b9150828204841483151762000fa95762000fa862000d7a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010118262000fe4565b9050919050565b620010238162001004565b81146200102f57600080fd5b50565b600081519050620010438162001018565b92915050565b60006020828403121562001062576200106162000fdf565b5b6000620010728482850162001032565b91505092915050565b620010868162001004565b82525050565b6000604082019050620010a360008301856200107b565b620010b260208301846200107b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b620010f38162000efd565b82525050565b6000602082019050620011106000830184620010e8565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011528262000efd565b91506200115f8362000efd565b92508262001172576200117162001116565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011ec6021836200117d565b9150620011f9826200118e565b604082019050919050565b600060208201905081810360008301526200121f81620011dd565b9050919050565b600081519050919050565b60005b838110156200125157808201518184015260208101905062001234565b60008484015250505050565b6000601f19601f8301169050919050565b60006200127b8262001226565b6200128781856200117d565b93506200129981856020860162001231565b620012a4816200125d565b840191505092915050565b60006020820190508181036000830152620012cb81846200126e565b905092915050565b613bca80620012e36000396000f3fe6080604052600436106101c65760003560e01c806395d89b41116100f7578063e01af92c11610095578063f5648a4f11610064578063f5648a4f14610657578063f8b45b051461066e578063fbf586d414610699578063fd3c2620146106d6576101cd565b8063e01af92c1461059f578063e95e704c146105c8578063f2fde38b14610605578063f3096f491461062e576101cd565b8063a9059cbb116100d1578063a9059cbb146104d3578063b3bdd0aa14610510578063dc1052e214610539578063dd62ed3e14610562576101cd565b806395d89b41146104565780639adce734146104815780639d0014b1146104aa576101cd565b80635d0044ca11610164578063715018a61161013e578063715018a6146103c25780638cd09d50146103d95780638da5cb5b146104025780639434654b1461042d576101cd565b80635d0044ca1461031f578063656497401461034857806370a0823114610385576101cd565b80631f53ac02116101a05780631f53ac021461026557806323b872dd1461028e578063313ce567146102cb57806344309fca146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ff565b6040516101f49190612d4d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e17565b61073c565b6040516102319190612e72565b60405180910390f35b34801561024657600080fd5b5061024f61083c565b60405161025c9190612e9c565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612eb7565b610846565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612ee4565b610906565b6040516102c29190612e72565b60405180910390f35b3480156102d757600080fd5b506102e0610b1b565b6040516102ed9190612f53565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612f9a565b610b24565b005b34801561032b57600080fd5b5061034660048036038101906103419190612fc7565b610bbd565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612e17565b610c43565b60405161037c9190612e72565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612eb7565b610dcc565b6040516103b99190612e9c565b60405180910390f35b3480156103ce57600080fd5b506103d7610e15565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612fc7565b610f4f565b005b34801561040e57600080fd5b50610417611019565b6040516104249190613003565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612f9a565b611042565b005b34801561046257600080fd5b5061046b6110db565b6040516104789190612d4d565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612f9a565b611118565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190612fc7565b6111b1565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190612e17565b611237565b6040516105079190612e72565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190613083565b611253565b005b34801561054557600080fd5b50610560600480360381019061055b9190612fc7565b611374565b005b34801561056e57600080fd5b50610589600480360381019061058491906130e3565b61143e565b6040516105969190612e9c565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190612f9a565b6114c5565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190612eb7565b61155e565b6040516105fc9190612e9c565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190612eb7565b6117ba565b005b34801561063a57600080fd5b5061065560048036038101906106509190612fc7565b611962565b005b34801561066357600080fd5b5061066c6119e8565b005b34801561067a57600080fd5b50610683611aba565b6040516106909190612e9c565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb9190612eb7565b611ac0565b6040516106cd9190612e72565b60405180910390f35b3480156106e257600080fd5b506106fd60048036038101906106f89190612f9a565b611b6d565b005b60606040518060400160405280601681526020017f4172746966696369616c205265746172646174696f6e00000000000000000000815250905090565b6000816004600061074b611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166107e5611cca565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161082a9190612e9c565b60405180910390a36001905092915050565b6000600254905090565b61084e611cca565b73ffffffffffffffffffffffffffffffffffffffff1661086c611019565b73ffffffffffffffffffffffffffffffffffffffff16146108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b99061316f565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610972611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b0757610a7f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a35611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd29092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac8611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b12848484611d36565b90509392505050565b60006012905090565b610b2c611cca565b73ffffffffffffffffffffffffffffffffffffffff16610b4a611019565b73ffffffffffffffffffffffffffffffffffffffff1614610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b979061316f565b60405180910390fd5b80601060186101000a81548160ff02191690831515021790555050565b610bc5611cca565b73ffffffffffffffffffffffffffffffffffffffff16610be3611019565b73ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c309061316f565b60405180910390fd5b80600d8190555050565b6000610c4d611cca565b73ffffffffffffffffffffffffffffffffffffffff16610c6b611019565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061316f565b60405180910390fd5b60008203610d46578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d029190613003565b602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4391906131a4565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610d819291906131d1565b6020604051808303816000875af1158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc4919061320f565b905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e1d611cca565b73ffffffffffffffffffffffffffffffffffffffff16610e3b611019565b73ffffffffffffffffffffffffffffffffffffffff1614610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e889061316f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f57611cca565b73ffffffffffffffffffffffffffffffffffffffff16610f75611019565b73ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc29061316f565b60405180910390fd5b600f81111561100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690613288565b60405180910390fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61104a611cca565b73ffffffffffffffffffffffffffffffffffffffff16611068611019565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b59061316f565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b60606040518060400160405280600281526020017f4152000000000000000000000000000000000000000000000000000000000000815250905090565b611120611cca565b73ffffffffffffffffffffffffffffffffffffffff1661113e611019565b73ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b9061316f565b60405180910390fd5b80601060156101000a81548160ff02191690831515021790555050565b6111b9611cca565b73ffffffffffffffffffffffffffffffffffffffff166111d7611019565b73ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112249061316f565b60405180910390fd5b80600e8190555050565b600061124b611244611cca565b8484611d36565b905092915050565b61125b611cca565b73ffffffffffffffffffffffffffffffffffffffff16611279611019565b73ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c69061316f565b60405180910390fd5b60005b8383905081101561136e5781600860008686858181106112f5576112f46132a8565b5b905060200201602081019061130a9190612eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061136690613306565b9150506112d2565b50505050565b61137c611cca565b73ffffffffffffffffffffffffffffffffffffffff1661139a611019565b73ffffffffffffffffffffffffffffffffffffffff16146113f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e79061316f565b60405180910390fd5b600f811115611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90613288565b60405180910390fd5b80600b8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114cd611cca565b73ffffffffffffffffffffffffffffffffffffffff166114eb611019565b73ffffffffffffffffffffffffffffffffffffffff1614611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115389061316f565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b600080600267ffffffffffffffff81111561157c5761157b61334e565b5b6040519080825280602002602001820160405280156115aa5781602001602082028036833780820191505090505b50905060006115b884610dcc565b905030826000815181106115cf576115ce6132a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169a9190613392565b826001815181106116ae576116ad6132a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f82846040518363ffffffff1660e01b815260040161174592919061347d565b600060405180830381865afa92505050801561178457506040513d6000823e3d601f19601f8201168201806040525081019061178191906135bc565b60015b611793576000925050506117b5565b806001815181106117a7576117a66132a8565b5b602002602001015193505050505b919050565b6117c2611cca565b73ffffffffffffffffffffffffffffffffffffffff166117e0611019565b73ffffffffffffffffffffffffffffffffffffffff1614611836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182d9061316f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613677565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61196a611cca565b73ffffffffffffffffffffffffffffffffffffffff16611988611019565b73ffffffffffffffffffffffffffffffffffffffff16146119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d59061316f565b60405180910390fd5b80600f8190555050565b6119f0611cca565b73ffffffffffffffffffffffffffffffffffffffff16611a0e611019565b73ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b9061316f565b60405180910390fd5b6000479050611a71611019565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab6573d6000803e3d6000fd5b5050565b600d5481565b6000611aca611019565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603611b055760019050611b68565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b635760019050611b68565b600090505b919050565b611b75611cca565b73ffffffffffffffffffffffffffffffffffffffff16611b93611019565b73ffffffffffffffffffffffffffffffffffffffff1614611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be09061316f565b60405180910390fd5b80601060166101000a81548160ff02191690831515021790555050565b6000808303611c185760009050611c7a565b60008284611c269190613697565b9050828482611c359190613708565b14611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c906137ab565b60405180910390fd5b809150505b92915050565b6000611cc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612408565b905092915050565b600033905090565b6000838311158290611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d119190612d4d565b60405180910390fd5b5060008385611d2991906137cb565b9050809150509392505050565b6000601060179054906101000a900460ff16611ded57611d5583611ac0565b611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b9061384b565b60405180910390fd5b6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601260009054906101000a900460ff1615611e1457611e0d84848461246b565b9050612401565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ea15750611e71611019565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611efb5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f35575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6e5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f865750601060159054906101000a900460ff165b1561201b57600d5482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd9919061386b565b111561201a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612011906138eb565b60405180910390fd5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c25750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120da5750601060169054906101000a900460ff165b156121615743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403612160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121579061397d565b60405180910390fd5b5b61216961263e565b15612178576121778261271c565b5b612201826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd29092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061224f856128e3565b6122595782612265565b61226485858561293a565b5b90506122b981600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1590919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146123965743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123f39190612e9c565b60405180910390a360019150505b9392505050565b6000808311829061244f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124469190612d4d565b60405180910390fd5b506000838561245e9190613708565b9050809150509392505050565b60006124f6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd29092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061258b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1590919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161262b9190612e9c565b60405180910390a3600190509392505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612681611cca565b73ffffffffffffffffffffffffffffffffffffffff16141580156126b25750601260009054906101000a900460ff16155b80156126ca5750601060149054906101000a900460ff165b80156127175750600e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff02191690831515021790555060006127616064612753600f5485611c0690919063ffffffff16565b611c8090919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127b3578091505b60008211156128c357600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000601130426040518663ffffffff1660e01b8152600401612821959493929190613ace565b600060405180830381600087803b15801561283b57600080fd5b505af115801561284f573d6000803e3d6000fd5b505050506000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128c0573d6000803e3d6000fd5b50505b50506000601260006101000a81548160ff02191690831515021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156129e85750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a1c57612a156064612a07600b5486611c0690919063ffffffff16565b611c8090919063ffffffff16565b9050612af4565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ac35750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612af357612af06064612ae2600c5486611c0690919063ffffffff16565b611c8090919063ffffffff16565b90505b5b6000811115612bf857612b4f81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1590919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bef9190612e9c565b60405180910390a35b612c0b8184612c7390919063ffffffff16565b9150509392505050565b6000808284612c24919061386b565b905083811015612c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6090613b74565b60405180910390fd5b8091505092915050565b6000612cb583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cd2565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf7578082015181840152602081019050612cdc565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1f82612cbd565b612d298185612cc8565b9350612d39818560208601612cd9565b612d4281612d03565b840191505092915050565b60006020820190508181036000830152612d678184612d14565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dae82612d83565b9050919050565b612dbe81612da3565b8114612dc957600080fd5b50565b600081359050612ddb81612db5565b92915050565b6000819050919050565b612df481612de1565b8114612dff57600080fd5b50565b600081359050612e1181612deb565b92915050565b60008060408385031215612e2e57612e2d612d79565b5b6000612e3c85828601612dcc565b9250506020612e4d85828601612e02565b9150509250929050565b60008115159050919050565b612e6c81612e57565b82525050565b6000602082019050612e876000830184612e63565b92915050565b612e9681612de1565b82525050565b6000602082019050612eb16000830184612e8d565b92915050565b600060208284031215612ecd57612ecc612d79565b5b6000612edb84828501612dcc565b91505092915050565b600080600060608486031215612efd57612efc612d79565b5b6000612f0b86828701612dcc565b9350506020612f1c86828701612dcc565b9250506040612f2d86828701612e02565b9150509250925092565b600060ff82169050919050565b612f4d81612f37565b82525050565b6000602082019050612f686000830184612f44565b92915050565b612f7781612e57565b8114612f8257600080fd5b50565b600081359050612f9481612f6e565b92915050565b600060208284031215612fb057612faf612d79565b5b6000612fbe84828501612f85565b91505092915050565b600060208284031215612fdd57612fdc612d79565b5b6000612feb84828501612e02565b91505092915050565b612ffd81612da3565b82525050565b60006020820190506130186000830184612ff4565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130435761304261301e565b5b8235905067ffffffffffffffff8111156130605761305f613023565b5b60208301915083602082028301111561307c5761307b613028565b5b9250929050565b60008060006040848603121561309c5761309b612d79565b5b600084013567ffffffffffffffff8111156130ba576130b9612d7e565b5b6130c68682870161302d565b935093505060206130d986828701612f85565b9150509250925092565b600080604083850312156130fa576130f9612d79565b5b600061310885828601612dcc565b925050602061311985828601612dcc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613159602083612cc8565b915061316482613123565b602082019050919050565b600060208201905081810360008301526131888161314c565b9050919050565b60008151905061319e81612deb565b92915050565b6000602082840312156131ba576131b9612d79565b5b60006131c88482850161318f565b91505092915050565b60006040820190506131e66000830185612ff4565b6131f36020830184612e8d565b9392505050565b60008151905061320981612f6e565b92915050565b60006020828403121561322557613224612d79565b5b6000613233848285016131fa565b91505092915050565b7f54617820746f6f20626967000000000000000000000000000000000000000000600082015250565b6000613272600b83612cc8565b915061327d8261323c565b602082019050919050565b600060208201905081810360008301526132a181613265565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061331182612de1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613343576133426132d7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061338c81612db5565b92915050565b6000602082840312156133a8576133a7612d79565b5b60006133b68482850161337d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133f481612da3565b82525050565b600061340683836133eb565b60208301905092915050565b6000602082019050919050565b600061342a826133bf565b61343481856133ca565b935061343f836133db565b8060005b8381101561347057815161345788826133fa565b975061346283613412565b925050600181019050613443565b5085935050505092915050565b60006040820190506134926000830185612e8d565b81810360208301526134a4818461341f565b90509392505050565b6134b682612d03565b810181811067ffffffffffffffff821117156134d5576134d461334e565b5b80604052505050565b60006134e8612d6f565b90506134f482826134ad565b919050565b600067ffffffffffffffff8211156135145761351361334e565b5b602082029050602081019050919050565b6000613538613533846134f9565b6134de565b9050808382526020820190506020840283018581111561355b5761355a613028565b5b835b818110156135845780613570888261318f565b84526020840193505060208101905061355d565b5050509392505050565b600082601f8301126135a3576135a261301e565b5b81516135b3848260208601613525565b91505092915050565b6000602082840312156135d2576135d1612d79565b5b600082015167ffffffffffffffff8111156135f0576135ef612d7e565b5b6135fc8482850161358e565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613661602683612cc8565b915061366c82613605565b604082019050919050565b6000602082019050818103600083015261369081613654565b9050919050565b60006136a282612de1565b91506136ad83612de1565b92508282026136bb81612de1565b915082820484148315176136d2576136d16132d7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061371382612de1565b915061371e83612de1565b92508261372e5761372d6136d9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613795602183612cc8565b91506137a082613739565b604082019050919050565b600060208201905081810360008301526137c481613788565b9050919050565b60006137d682612de1565b91506137e183612de1565b92508282039050818111156137f9576137f86132d7565b5b92915050565b7f546f6b656e206973206e6f74206c697665000000000000000000000000000000600082015250565b6000613835601183612cc8565b9150613840826137ff565b602082019050919050565b6000602082019050818103600083015261386481613828565b9050919050565b600061387682612de1565b915061388183612de1565b9250828201905080821115613899576138986132d7565b5b92915050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b60006138d5601283612cc8565b91506138e08261389f565b602082019050919050565b60006020820190508181036000830152613904816138c8565b9050919050565b7f43616e6e6f742073656c6c20616e6420627579206f6e2073616d6520626c6f6360008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613967602183612cc8565b91506139728261390b565b604082019050919050565b600060208201905081810360008301526139968161395a565b9050919050565b6000819050919050565b6000819050919050565b60006139cc6139c76139c28461399d565b6139a7565b612de1565b9050919050565b6139dc816139b1565b82525050565b600081549050919050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a42613a3d83613a02565b613a0f565b9050919050565b6000613a558254613a2f565b9050919050565b6000600182019050919050565b6000613a74826139e2565b613a7e81856133ca565b9350613a89836139ed565b8060005b83811015613ac157613a9e82613a49565b613aa888826133fa565b9750613ab383613a5c565b925050600181019050613a8d565b5085935050505092915050565b600060a082019050613ae36000830188612e8d565b613af060208301876139d3565b8181036040830152613b028186613a69565b9050613b116060830185612ff4565b613b1e6080830184612e8d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b5e601b83612cc8565b9150613b6982613b28565b602082019050919050565b60006020820190508181036000830152613b8d81613b51565b905091905056fea2646970667358221220a1e0d3d102674cb62a9c8227a994c21d810adaed776663c70b6ef5ab98a7cd1564736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806395d89b41116100f7578063e01af92c11610095578063f5648a4f11610064578063f5648a4f14610657578063f8b45b051461066e578063fbf586d414610699578063fd3c2620146106d6576101cd565b8063e01af92c1461059f578063e95e704c146105c8578063f2fde38b14610605578063f3096f491461062e576101cd565b8063a9059cbb116100d1578063a9059cbb146104d3578063b3bdd0aa14610510578063dc1052e214610539578063dd62ed3e14610562576101cd565b806395d89b41146104565780639adce734146104815780639d0014b1146104aa576101cd565b80635d0044ca11610164578063715018a61161013e578063715018a6146103c25780638cd09d50146103d95780638da5cb5b146104025780639434654b1461042d576101cd565b80635d0044ca1461031f578063656497401461034857806370a0823114610385576101cd565b80631f53ac02116101a05780631f53ac021461026557806323b872dd1461028e578063313ce567146102cb57806344309fca146102f6576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106ff565b6040516101f49190612d4d565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612e17565b61073c565b6040516102319190612e72565b60405180910390f35b34801561024657600080fd5b5061024f61083c565b60405161025c9190612e9c565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612eb7565b610846565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612ee4565b610906565b6040516102c29190612e72565b60405180910390f35b3480156102d757600080fd5b506102e0610b1b565b6040516102ed9190612f53565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612f9a565b610b24565b005b34801561032b57600080fd5b5061034660048036038101906103419190612fc7565b610bbd565b005b34801561035457600080fd5b5061036f600480360381019061036a9190612e17565b610c43565b60405161037c9190612e72565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612eb7565b610dcc565b6040516103b99190612e9c565b60405180910390f35b3480156103ce57600080fd5b506103d7610e15565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612fc7565b610f4f565b005b34801561040e57600080fd5b50610417611019565b6040516104249190613003565b60405180910390f35b34801561043957600080fd5b50610454600480360381019061044f9190612f9a565b611042565b005b34801561046257600080fd5b5061046b6110db565b6040516104789190612d4d565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612f9a565b611118565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190612fc7565b6111b1565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190612e17565b611237565b6040516105079190612e72565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190613083565b611253565b005b34801561054557600080fd5b50610560600480360381019061055b9190612fc7565b611374565b005b34801561056e57600080fd5b50610589600480360381019061058491906130e3565b61143e565b6040516105969190612e9c565b60405180910390f35b3480156105ab57600080fd5b506105c660048036038101906105c19190612f9a565b6114c5565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190612eb7565b61155e565b6040516105fc9190612e9c565b60405180910390f35b34801561061157600080fd5b5061062c60048036038101906106279190612eb7565b6117ba565b005b34801561063a57600080fd5b5061065560048036038101906106509190612fc7565b611962565b005b34801561066357600080fd5b5061066c6119e8565b005b34801561067a57600080fd5b50610683611aba565b6040516106909190612e9c565b60405180910390f35b3480156106a557600080fd5b506106c060048036038101906106bb9190612eb7565b611ac0565b6040516106cd9190612e72565b60405180910390f35b3480156106e257600080fd5b506106fd60048036038101906106f89190612f9a565b611b6d565b005b60606040518060400160405280601681526020017f4172746966696369616c205265746172646174696f6e00000000000000000000815250905090565b6000816004600061074b611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff166107e5611cca565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161082a9190612e9c565b60405180910390a36001905092915050565b6000600254905090565b61084e611cca565b73ffffffffffffffffffffffffffffffffffffffff1661086c611019565b73ffffffffffffffffffffffffffffffffffffffff16146108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b99061316f565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610972611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b0757610a7f826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a35611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd29092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ac8611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610b12848484611d36565b90509392505050565b60006012905090565b610b2c611cca565b73ffffffffffffffffffffffffffffffffffffffff16610b4a611019565b73ffffffffffffffffffffffffffffffffffffffff1614610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b979061316f565b60405180910390fd5b80601060186101000a81548160ff02191690831515021790555050565b610bc5611cca565b73ffffffffffffffffffffffffffffffffffffffff16610be3611019565b73ffffffffffffffffffffffffffffffffffffffff1614610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c309061316f565b60405180910390fd5b80600d8190555050565b6000610c4d611cca565b73ffffffffffffffffffffffffffffffffffffffff16610c6b611019565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb89061316f565b60405180910390fd5b60008203610d46578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d029190613003565b602060405180830381865afa158015610d1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4391906131a4565b91505b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610d819291906131d1565b6020604051808303816000875af1158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc4919061320f565b905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e1d611cca565b73ffffffffffffffffffffffffffffffffffffffff16610e3b611019565b73ffffffffffffffffffffffffffffffffffffffff1614610e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e889061316f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f57611cca565b73ffffffffffffffffffffffffffffffffffffffff16610f75611019565b73ffffffffffffffffffffffffffffffffffffffff1614610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc29061316f565b60405180910390fd5b600f81111561100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690613288565b60405180910390fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61104a611cca565b73ffffffffffffffffffffffffffffffffffffffff16611068611019565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b59061316f565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b60606040518060400160405280600281526020017f4152000000000000000000000000000000000000000000000000000000000000815250905090565b611120611cca565b73ffffffffffffffffffffffffffffffffffffffff1661113e611019565b73ffffffffffffffffffffffffffffffffffffffff1614611194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118b9061316f565b60405180910390fd5b80601060156101000a81548160ff02191690831515021790555050565b6111b9611cca565b73ffffffffffffffffffffffffffffffffffffffff166111d7611019565b73ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112249061316f565b60405180910390fd5b80600e8190555050565b600061124b611244611cca565b8484611d36565b905092915050565b61125b611cca565b73ffffffffffffffffffffffffffffffffffffffff16611279611019565b73ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c69061316f565b60405180910390fd5b60005b8383905081101561136e5781600860008686858181106112f5576112f46132a8565b5b905060200201602081019061130a9190612eb7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061136690613306565b9150506112d2565b50505050565b61137c611cca565b73ffffffffffffffffffffffffffffffffffffffff1661139a611019565b73ffffffffffffffffffffffffffffffffffffffff16146113f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e79061316f565b60405180910390fd5b600f811115611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90613288565b60405180910390fd5b80600b8190555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114cd611cca565b73ffffffffffffffffffffffffffffffffffffffff166114eb611019565b73ffffffffffffffffffffffffffffffffffffffff1614611541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115389061316f565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b600080600267ffffffffffffffff81111561157c5761157b61334e565b5b6040519080825280602002602001820160405280156115aa5781602001602082028036833780820191505090505b50905060006115b884610dcc565b905030826000815181106115cf576115ce6132a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169a9190613392565b826001815181106116ae576116ad6132a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f82846040518363ffffffff1660e01b815260040161174592919061347d565b600060405180830381865afa92505050801561178457506040513d6000823e3d601f19601f8201168201806040525081019061178191906135bc565b60015b611793576000925050506117b5565b806001815181106117a7576117a66132a8565b5b602002602001015193505050505b919050565b6117c2611cca565b73ffffffffffffffffffffffffffffffffffffffff166117e0611019565b73ffffffffffffffffffffffffffffffffffffffff1614611836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182d9061316f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613677565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61196a611cca565b73ffffffffffffffffffffffffffffffffffffffff16611988611019565b73ffffffffffffffffffffffffffffffffffffffff16146119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d59061316f565b60405180910390fd5b80600f8190555050565b6119f0611cca565b73ffffffffffffffffffffffffffffffffffffffff16611a0e611019565b73ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b9061316f565b60405180910390fd5b6000479050611a71611019565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab6573d6000803e3d6000fd5b5050565b600d5481565b6000611aca611019565b73ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1603611b055760019050611b68565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b635760019050611b68565b600090505b919050565b611b75611cca565b73ffffffffffffffffffffffffffffffffffffffff16611b93611019565b73ffffffffffffffffffffffffffffffffffffffff1614611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be09061316f565b60405180910390fd5b80601060166101000a81548160ff02191690831515021790555050565b6000808303611c185760009050611c7a565b60008284611c269190613697565b9050828482611c359190613708565b14611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c906137ab565b60405180910390fd5b809150505b92915050565b6000611cc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612408565b905092915050565b600033905090565b6000838311158290611d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d119190612d4d565b60405180910390fd5b5060008385611d2991906137cb565b9050809150509392505050565b6000601060179054906101000a900460ff16611ded57611d5583611ac0565b611d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8b9061384b565b60405180910390fd5b6001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601260009054906101000a900460ff1615611e1457611e0d84848461246b565b9050612401565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ea15750611e71611019565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611efb5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f35575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f6e5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f865750601060159054906101000a900460ff165b1561201b57600d5482600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fd9919061386b565b111561201a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612011906138eb565b60405180910390fd5b5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c25750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120da5750601060169054906101000a900460ff165b156121615743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403612160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121579061397d565b60405180910390fd5b5b61216961263e565b15612178576121778261271c565b5b612201826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd29092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061224f856128e3565b6122595782612265565b61226485858561293a565b5b90506122b981600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1590919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146123965743600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123f39190612e9c565b60405180910390a360019150505b9392505050565b6000808311829061244f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124469190612d4d565b60405180910390fd5b506000838561245e9190613708565b9050809150509392505050565b60006124f6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd29092919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061258b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1590919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161262b9190612e9c565b60405180910390a3600190509392505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612681611cca565b73ffffffffffffffffffffffffffffffffffffffff16141580156126b25750601260009054906101000a900460ff16155b80156126ca5750601060149054906101000a900460ff165b80156127175750600e54600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601260006101000a81548160ff02191690831515021790555060006127616064612753600f5485611c0690919063ffffffff16565b611c8090919063ffffffff16565b90506000600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156127b3578091505b60008211156128c357600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000601130426040518663ffffffff1660e01b8152600401612821959493929190613ace565b600060405180830381600087803b15801561283b57600080fd5b505af115801561284f573d6000803e3d6000fd5b505050506000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128c0573d6000803e3d6000fd5b50505b50506000601260006101000a81548160ff02191690831515021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008060009050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156129e85750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a1c57612a156064612a07600b5486611c0690919063ffffffff16565b611c8090919063ffffffff16565b9050612af4565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ac35750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612af357612af06064612ae2600c5486611c0690919063ffffffff16565b611c8090919063ffffffff16565b90505b5b6000811115612bf857612b4f81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c1590919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612bef9190612e9c565b60405180910390a35b612c0b8184612c7390919063ffffffff16565b9150509392505050565b6000808284612c24919061386b565b905083811015612c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6090613b74565b60405180910390fd5b8091505092915050565b6000612cb583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cd2565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf7578082015181840152602081019050612cdc565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1f82612cbd565b612d298185612cc8565b9350612d39818560208601612cd9565b612d4281612d03565b840191505092915050565b60006020820190508181036000830152612d678184612d14565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dae82612d83565b9050919050565b612dbe81612da3565b8114612dc957600080fd5b50565b600081359050612ddb81612db5565b92915050565b6000819050919050565b612df481612de1565b8114612dff57600080fd5b50565b600081359050612e1181612deb565b92915050565b60008060408385031215612e2e57612e2d612d79565b5b6000612e3c85828601612dcc565b9250506020612e4d85828601612e02565b9150509250929050565b60008115159050919050565b612e6c81612e57565b82525050565b6000602082019050612e876000830184612e63565b92915050565b612e9681612de1565b82525050565b6000602082019050612eb16000830184612e8d565b92915050565b600060208284031215612ecd57612ecc612d79565b5b6000612edb84828501612dcc565b91505092915050565b600080600060608486031215612efd57612efc612d79565b5b6000612f0b86828701612dcc565b9350506020612f1c86828701612dcc565b9250506040612f2d86828701612e02565b9150509250925092565b600060ff82169050919050565b612f4d81612f37565b82525050565b6000602082019050612f686000830184612f44565b92915050565b612f7781612e57565b8114612f8257600080fd5b50565b600081359050612f9481612f6e565b92915050565b600060208284031215612fb057612faf612d79565b5b6000612fbe84828501612f85565b91505092915050565b600060208284031215612fdd57612fdc612d79565b5b6000612feb84828501612e02565b91505092915050565b612ffd81612da3565b82525050565b60006020820190506130186000830184612ff4565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126130435761304261301e565b5b8235905067ffffffffffffffff8111156130605761305f613023565b5b60208301915083602082028301111561307c5761307b613028565b5b9250929050565b60008060006040848603121561309c5761309b612d79565b5b600084013567ffffffffffffffff8111156130ba576130b9612d7e565b5b6130c68682870161302d565b935093505060206130d986828701612f85565b9150509250925092565b600080604083850312156130fa576130f9612d79565b5b600061310885828601612dcc565b925050602061311985828601612dcc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613159602083612cc8565b915061316482613123565b602082019050919050565b600060208201905081810360008301526131888161314c565b9050919050565b60008151905061319e81612deb565b92915050565b6000602082840312156131ba576131b9612d79565b5b60006131c88482850161318f565b91505092915050565b60006040820190506131e66000830185612ff4565b6131f36020830184612e8d565b9392505050565b60008151905061320981612f6e565b92915050565b60006020828403121561322557613224612d79565b5b6000613233848285016131fa565b91505092915050565b7f54617820746f6f20626967000000000000000000000000000000000000000000600082015250565b6000613272600b83612cc8565b915061327d8261323c565b602082019050919050565b600060208201905081810360008301526132a181613265565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061331182612de1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613343576133426132d7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061338c81612db5565b92915050565b6000602082840312156133a8576133a7612d79565b5b60006133b68482850161337d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133f481612da3565b82525050565b600061340683836133eb565b60208301905092915050565b6000602082019050919050565b600061342a826133bf565b61343481856133ca565b935061343f836133db565b8060005b8381101561347057815161345788826133fa565b975061346283613412565b925050600181019050613443565b5085935050505092915050565b60006040820190506134926000830185612e8d565b81810360208301526134a4818461341f565b90509392505050565b6134b682612d03565b810181811067ffffffffffffffff821117156134d5576134d461334e565b5b80604052505050565b60006134e8612d6f565b90506134f482826134ad565b919050565b600067ffffffffffffffff8211156135145761351361334e565b5b602082029050602081019050919050565b6000613538613533846134f9565b6134de565b9050808382526020820190506020840283018581111561355b5761355a613028565b5b835b818110156135845780613570888261318f565b84526020840193505060208101905061355d565b5050509392505050565b600082601f8301126135a3576135a261301e565b5b81516135b3848260208601613525565b91505092915050565b6000602082840312156135d2576135d1612d79565b5b600082015167ffffffffffffffff8111156135f0576135ef612d7e565b5b6135fc8482850161358e565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613661602683612cc8565b915061366c82613605565b604082019050919050565b6000602082019050818103600083015261369081613654565b9050919050565b60006136a282612de1565b91506136ad83612de1565b92508282026136bb81612de1565b915082820484148315176136d2576136d16132d7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061371382612de1565b915061371e83612de1565b92508261372e5761372d6136d9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613795602183612cc8565b91506137a082613739565b604082019050919050565b600060208201905081810360008301526137c481613788565b9050919050565b60006137d682612de1565b91506137e183612de1565b92508282039050818111156137f9576137f86132d7565b5b92915050565b7f546f6b656e206973206e6f74206c697665000000000000000000000000000000600082015250565b6000613835601183612cc8565b9150613840826137ff565b602082019050919050565b6000602082019050818103600083015261386481613828565b9050919050565b600061387682612de1565b915061388183612de1565b9250828201905080821115613899576138986132d7565b5b92915050565b7f45786365656473204d61782057616c6c65740000000000000000000000000000600082015250565b60006138d5601283612cc8565b91506138e08261389f565b602082019050919050565b60006020820190508181036000830152613904816138c8565b9050919050565b7f43616e6e6f742073656c6c20616e6420627579206f6e2073616d6520626c6f6360008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613967602183612cc8565b91506139728261390b565b604082019050919050565b600060208201905081810360008301526139968161395a565b9050919050565b6000819050919050565b6000819050919050565b60006139cc6139c76139c28461399d565b6139a7565b612de1565b9050919050565b6139dc816139b1565b82525050565b600081549050919050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a42613a3d83613a02565b613a0f565b9050919050565b6000613a558254613a2f565b9050919050565b6000600182019050919050565b6000613a74826139e2565b613a7e81856133ca565b9350613a89836139ed565b8060005b83811015613ac157613a9e82613a49565b613aa888826133fa565b9750613ab383613a5c565b925050600181019050613a8d565b5085935050505092915050565b600060a082019050613ae36000830188612e8d565b613af060208301876139d3565b8181036040830152613b028186613a69565b9050613b116060830185612ff4565b613b1e6080830184612e8d565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b5e601b83612cc8565b9150613b6982613b28565b602082019050919050565b60006020820190508181036000830152613b8d81613b51565b905091905056fea2646970667358221220a1e0d3d102674cb62a9c8227a994c21d810adaed776663c70b6ef5ab98a7cd1564736f6c63430008110033

Deployed Bytecode Sourcemap

3991:9212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6314:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6652:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6044:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11753:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7046:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6138:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12135:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12225:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12481:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6400:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2996:148;;;;;;;;;;;;;:::i;:::-;;11293:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2765:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12051:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6224:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11960:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11531:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6880:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10936:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11156:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6511:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11432:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12743:457;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3152:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11638:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12323:150;;;;;;;;;;;;;:::i;:::-;;4735:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7428:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11851:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6314:80;6362:13;6386:5;;;;;;;;;;;;;;;;;6379:12;;6314:80;:::o;6652:220::-;6727:4;6781:6;6744:11;:25;6756:12;:10;:12::i;:::-;6744:25;;;;;;;;;;;;;;;:34;6770:7;6744:34;;;;;;;;;;;;;;;:43;;;;6826:7;6803:39;;6812:12;:10;:12::i;:::-;6803:39;;;6835:6;6803:39;;;;;;:::i;:::-;;;;;;;;6860:4;6853:11;;6652:220;;;;:::o;6044:88::-;6099:7;6117:12;;6110:19;;6044:88;:::o;11753:90::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11831:4:::1;11819:9;;:16;;;;;;;;;;;;;;;;;;11753:90:::0;:::o;7046:374::-;7146:4;7203:17;7166:11;:19;7178:6;7166:19;;;;;;;;;;;;;;;:33;7186:12;:10;:12::i;:::-;7166:33;;;;;;;;;;;;;;;;:54;7163:192;;7272:71;7310:6;7272:71;;;;;;;;;;;;;;;;;:11;:19;7284:6;7272:19;;;;;;;;;;;;;;;:33;7292:12;:10;:12::i;:::-;7272:33;;;;;;;;;;;;;;;;:37;;:71;;;;;:::i;:::-;7236:11;:19;7248:6;7236:19;;;;;;;;;;;;;;;:33;7256:12;:10;:12::i;:::-;7236:33;;;;;;;;;;;;;;;:107;;;;7163:192;7372:40;7386:6;7394:9;7405:6;7372:13;:40::i;:::-;7365:47;;7046:374;;;;;:::o;6138:80::-;6190:5;4189:2;6199:16;;6138:80;:::o;12135:82::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12205:4:::1;12197:5;;:12;;;;;;;;;;;;;;;;;;12135:82:::0;:::o;12225:90::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12303:4:::1;12291:9;:16;;;;12225:90:::0;:::o;12481:254::-;12571:4;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12601:1:::1;12591:6;:11:::0;12588:73:::1;;12621:12;12614:30;;;12653:4;12614:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12605:54;;12588:73;12685:12;12678:29;;;12708:10;12720:6;12678:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12671:56;;12481:254:::0;;;;:::o;6400:105::-;6466:7;6484:9;:18;6494:7;6484:18;;;;;;;;;;;;;;;;6477:25;;6400:105;;;:::o;2996:148::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3103:1:::1;3066:40;;3087:6;::::0;::::1;;;;;;;;3066:40;;;;;;;;;;;;3134:1;3117:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2996:148::o:0;11293:131::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11373:2:::1;11365:4;:10;;11357:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;11412:4;11402:7;:14;;;;11293:131:::0;:::o;2765:87::-;2811:7;2838:6;;;;;;;;;;;2831:13;;2765:87;:::o;12051:76::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12115:4:::1;12108;;:11;;;;;;;;;;;;;;;;;;12051:76:::0;:::o;6224:84::-;6274:13;6298:7;;;;;;;;;;;;;;;;;6291:14;;6224:84;:::o;11960:83::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12031:4:::1;12020:8;;:15;;;;;;;;;;;;;;;;;;11960:83:::0;:::o;11531:98::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11617:4:::1;11601:13;:20;;;;11531:98:::0;:::o;6880:158::-;6960:4;6984:46;6998:12;:10;:12::i;:::-;7012:9;7023:6;6984:13;:46::i;:::-;6977:53;;6880:158;;;;:::o;10936:212::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11040:9:::1;11035:106;11059:8;;:15;;11055:1;:19;11035:106;;;11120:9;11096:8;:21;11105:8;;11114:1;11105:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11096:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11076:3;;;;;:::i;:::-;;;;11035:106;;;;10936:212:::0;;;:::o;11156:129::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11235:2:::1;11227:4;:10;;11219:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;11273:4;11264:6;:13;;;;11156:129:::0;:::o;6511:133::-;6595:7;6613:11;:19;6625:6;6613:19;;;;;;;;;;;;;;;:28;6633:7;6613:28;;;;;;;;;;;;;;;;6606:35;;6511:133;;;;:::o;11432:91::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11511:4:::1;11497:11;;:18;;;;;;;;;;;;;;;;;;11432:91:::0;:::o;12743:457::-;12804:7;12824:21;12862:1;12848:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12824:40;;12875:20;12898:22;12908:11;12898:9;:22::i;:::-;12875:45;;12958:4;12940;12945:1;12940:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12984:8;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12974:4;12979:1;12974:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;13016:8;;;;;;;;;;;:22;;;13039:12;13053:4;13016:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13012:174;;13173:1;13166:8;;;;;;13012:174;13113:7;13121:1;13113:10;;;;;;;;:::i;:::-;;;;;;;;13106:17;;;;;12743:457;;;;:::o;3152:244::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3261:1:::1;3241:22;;:8;:22;;::::0;3233:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3351:8;3322:38;;3343:6;::::0;::::1;;;;;;;;3322:38;;;;;;;;;;;;3380:8;3371:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3152:244:::0;:::o;11638:102::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11728:4:::1;11710:15;:22;;;;11638:102:::0;:::o;12323:150::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12381:15:::1;12399:21;12381:39;;12439:7;:5;:7::i;:::-;12431:25;;:34;12457:7;12431:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12370:103;12323:150::o:0;4735:57::-;;;;:::o;7428:251::-;7484:4;7518:7;:5;:7::i;:::-;7505:20;;:9;:20;;;7501:64;;7549:4;7542:11;;;;7501:64;7585:6;;;;;;;;;;;7579:12;;:2;:12;;;7575:67;;7626:4;7619:11;;;;7575:67;7666:5;7659:12;;7428:251;;;;:::o;11851:101::-;2915:12;:10;:12::i;:::-;2904:23;;:7;:5;:7::i;:::-;:23;;;2896:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11940:4:::1;11921:16;;:23;;;;;;;;;;;;;;;;;;11851:101:::0;:::o;616:246::-;674:7;703:1;698;:6;694:47;;728:1;721:8;;;;694:47;751:9;767:1;763;:5;;;;:::i;:::-;751:17;;796:1;791;787;:5;;;;:::i;:::-;:10;779:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;853:1;846:8;;;616:246;;;;;:::o;868:132::-;926:7;953:39;957:1;960;953:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;946:46;;868:132;;;;:::o;2093:98::-;2146:7;2173:10;2166:17;;2093:98;:::o;420:190::-;506:7;539:1;534;:6;;542:12;526:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;566:9;582:1;578;:5;;;;:::i;:::-;566:17;;601:1;594:8;;;420:190;;;;;:::o;7687:1253::-;7779:4;7803;;;;;;;;;;;7798:136;;7832:24;7846:9;7832:13;:24::i;:::-;7824:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7918:4;7893:11;:22;7905:9;7893:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;7798:136;7949:6;;;;;;;;;;;7946:63;;;7965:41;7980:6;7988:9;7999:6;7965:14;:41::i;:::-;7958:48;;;;7946:63;8026:8;:19;8035:9;8026:19;;;;;;;;;;;;;;;;;;;;;;;;;8025:20;:44;;;;;8062:7;:5;:7::i;:::-;8049:20;;:9;:20;;;;8025:44;:67;;;;;8086:6;;;;;;;;;;;8073:19;;:9;:19;;;;8025:67;:99;;;;;8117:6;8096:28;;:9;:28;;;;8025:99;:128;;;;;8149:3;8128:25;;:9;:25;;;;8025:128;:140;;;;;8157:8;;;;;;;;;;;8025:140;8021:246;;;8223:9;;8213:6;8190:9;:20;8200:9;8190:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:42;;8182:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8021:246;8296:6;;;;;;;;;;;8283:19;;:9;:19;;;:40;;;;;8307:8;:16;8316:6;8307:16;;;;;;;;;;;;;;;;;;;;;;;;;8306:17;8283:40;:60;;;;;8327:16;;;;;;;;;;;8283:60;8279:176;;;8393:12;8369;:20;8382:6;8369:20;;;;;;;;;;;;;;;;:36;8360:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;8279:176;8470:16;:14;:16::i;:::-;8467:41;;;8489:16;8498:6;8489:8;:16::i;:::-;8467:41;8541:53;8563:6;8541:53;;;;;;;;;;;;;;;;;:9;:17;8551:6;8541:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8521:9;:17;8531:6;8521:17;;;;;;;;;;;;;;;:73;;;;8605:22;8630:21;8644:6;8630:13;:21::i;:::-;:67;;8691:6;8630:67;;;8654:34;8662:6;8670:9;8681:6;8654:7;:34::i;:::-;8630:67;8605:92;;8731:40;8756:14;8731:9;:20;8741:9;8731:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8708:9;:20;8718:9;8708:20;;;;;;;;;;;;;;;:63;;;;8801:6;;;;;;;;;;;8788:19;;:9;:19;;;8784:66;;8835:12;8809;:23;8822:9;8809:23;;;;;;;;;;;;;;;:38;;;;8784:66;8884:9;8867:43;;8876:6;8867:43;;;8895:14;8867:43;;;;;;:::i;:::-;;;;;;;;8928:4;8921:11;;;7687:1253;;;;;;:::o;1006:189::-;1092:7;1124:1;1120;:5;1127:12;1112:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1151:9;1167:1;1163;:5;;;;:::i;:::-;1151:17;;1186:1;1179:8;;;1006:189;;;;;:::o;8951:330::-;9044:4;9081:53;9103:6;9081:53;;;;;;;;;;;;;;;;;:9;:17;9091:6;9081:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9061:9;:17;9071:6;9061:17;;;;;;;;;;;;;;;:73;;;;9168:32;9193:6;9168:9;:20;9178:9;9168:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9145:9;:20;9155:9;9145:20;;;;;;;;;;;;;;;:55;;;;9233:9;9216:35;;9225:6;9216:35;;;9244:6;9216:35;;;;;;:::i;:::-;;;;;;;;9269:4;9262:11;;8951:330;;;;;:::o;9999:201::-;10048:4;10088:6;;;;;;;;;;;10072:22;;:12;:10;:12::i;:::-;:22;;;;:42;;;;;10108:6;;;;;;;;;;;10107:7;10072:42;:66;;;;;10127:11;;;;;;;;;;;10072:66;:120;;;;;10179:13;;10151:9;:24;10169:4;10151:24;;;;;;;;;;;;;;;;:41;;10072:120;10065:127;;9999:201;:::o;10208:720::-;5191:4;5182:6;;:13;;;;;;;;;;;;;;;;;;10275:20:::1;10298:40;10334:3;10298:31;10313:15;;10298:10;:14;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;10275:63;;10349:23;10375:9;:24;10393:4;10375:24;;;;;;;;;;;;;;;;10349:50;;10434:12;10416:15;:30;10412:93;;;10478:15;10463:30;;10412:93;10537:1;10522:12;:16;10517:404;;;10568:8;;;;;;;;;;;:59;;;10646:12;10677:1;10697:12;10736:4;10760:15;10568:222;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10813:18;10834:21;10813:42;;10878:9;;;;;;;;;;;10870:27;;:39;10898:10;10870:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10541:380;10517:404;10264:664;;5209:5:::0;5200:6;;:14;;;;;;;;;;;;;;;;;;10208:720;:::o;9289:107::-;9349:4;9374:8;:14;9383:4;9374:14;;;;;;;;;;;;;;;;;;;;;;;;;9373:15;9366:22;;9289:107;;;:::o;9408:583::-;9485:7;9505:17;9525:1;9505:21;;9551:6;;;;;;;;;;;9543:14;;:4;:14;;;:31;;;;;9562:8;:12;9571:2;9562:12;;;;;;;;;;;;;;;;;;;;;;;;;9561:13;9543:31;9539:223;;;9603:27;9626:3;9603:18;9614:6;;9603;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;9591:39;;9539:223;;;9668:6;;;;;;;;;;;9662:12;;:2;:12;;;:31;;;;;9679:8;:14;9688:4;9679:14;;;;;;;;;;;;;;;;;;;;;;;;;9678:15;9662:31;9658:104;;;9722:28;9746:3;9722:19;9733:7;;9722:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9710:40;;9658:104;9539:223;9789:1;9777:9;:13;9773:172;;;9834:39;9863:9;9834;:24;9852:4;9834:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9807:9;:24;9825:4;9807:24;;;;;;;;;;;;;;;:66;;;;9916:4;9893:40;;9902:4;9893:40;;;9923:9;9893:40;;;;;;:::i;:::-;;;;;;;;9773:172;9962:21;9973:9;9962:6;:10;;:21;;;;:::i;:::-;9955:28;;;9408:583;;;;;:::o;93:179::-;151:7;171:9;187:1;183;:5;;;;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;263:1;256:8;;;93:179;;;;:::o;278:136::-;336:7;363:43;367:1;370;363:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;356:50;;278:136;;;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;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;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:323::-;5505:6;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:50;5747:7;5738:6;5727:9;5723:22;5705:50;:::i;:::-;5695:60;;5651:114;5449:323;;;;:::o;5778:329::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:118::-;6200:24;6218:5;6200:24;:::i;:::-;6195:3;6188:37;6113:118;;:::o;6237:222::-;6330:4;6368:2;6357:9;6353:18;6345:26;;6381:71;6449:1;6438:9;6434:17;6425:6;6381:71;:::i;:::-;6237:222;;;;:::o;6465:117::-;6574:1;6571;6564:12;6588:117;6697:1;6694;6687:12;6711:117;6820:1;6817;6810:12;6851:568;6924:8;6934:6;6984:3;6977:4;6969:6;6965:17;6961:27;6951:122;;6992:79;;:::i;:::-;6951:122;7105:6;7092:20;7082:30;;7135:18;7127:6;7124:30;7121:117;;;7157:79;;:::i;:::-;7121:117;7271:4;7263:6;7259:17;7247:29;;7325:3;7317:4;7309:6;7305:17;7295:8;7291:32;7288:41;7285:128;;;7332:79;;:::i;:::-;7285:128;6851:568;;;;;:::o;7425:698::-;7517:6;7525;7533;7582:2;7570:9;7561:7;7557:23;7553:32;7550:119;;;7588:79;;:::i;:::-;7550:119;7736:1;7725:9;7721:17;7708:31;7766:18;7758:6;7755:30;7752:117;;;7788:79;;:::i;:::-;7752:117;7901:80;7973:7;7964:6;7953:9;7949:22;7901:80;:::i;:::-;7883:98;;;;7679:312;8030:2;8056:50;8098:7;8089:6;8078:9;8074:22;8056:50;:::i;:::-;8046:60;;8001:115;7425:698;;;;;:::o;8129:474::-;8197:6;8205;8254:2;8242:9;8233:7;8229:23;8225:32;8222:119;;;8260:79;;:::i;:::-;8222:119;8380:1;8405:53;8450:7;8441:6;8430:9;8426:22;8405:53;:::i;:::-;8395:63;;8351:117;8507:2;8533:53;8578:7;8569:6;8558:9;8554:22;8533:53;:::i;:::-;8523:63;;8478:118;8129:474;;;;;:::o;8609:182::-;8749:34;8745:1;8737:6;8733:14;8726:58;8609:182;:::o;8797:366::-;8939:3;8960:67;9024:2;9019:3;8960:67;:::i;:::-;8953:74;;9036:93;9125:3;9036:93;:::i;:::-;9154:2;9149:3;9145:12;9138:19;;8797:366;;;:::o;9169:419::-;9335:4;9373:2;9362:9;9358:18;9350:26;;9422:9;9416:4;9412:20;9408:1;9397:9;9393:17;9386:47;9450:131;9576:4;9450:131;:::i;:::-;9442:139;;9169:419;;;:::o;9594:143::-;9651:5;9682:6;9676:13;9667:22;;9698:33;9725:5;9698:33;:::i;:::-;9594:143;;;;:::o;9743:351::-;9813:6;9862:2;9850:9;9841:7;9837:23;9833:32;9830:119;;;9868:79;;:::i;:::-;9830:119;9988:1;10013:64;10069:7;10060:6;10049:9;10045:22;10013:64;:::i;:::-;10003:74;;9959:128;9743:351;;;;:::o;10100:332::-;10221:4;10259:2;10248:9;10244:18;10236:26;;10272:71;10340:1;10329:9;10325:17;10316:6;10272:71;:::i;:::-;10353:72;10421:2;10410:9;10406:18;10397:6;10353:72;:::i;:::-;10100:332;;;;;:::o;10438:137::-;10492:5;10523:6;10517:13;10508:22;;10539:30;10563:5;10539:30;:::i;:::-;10438:137;;;;:::o;10581:345::-;10648:6;10697:2;10685:9;10676:7;10672:23;10668:32;10665:119;;;10703:79;;:::i;:::-;10665:119;10823:1;10848:61;10901:7;10892:6;10881:9;10877:22;10848:61;:::i;:::-;10838:71;;10794:125;10581:345;;;;:::o;10932:161::-;11072:13;11068:1;11060:6;11056:14;11049:37;10932:161;:::o;11099:366::-;11241:3;11262:67;11326:2;11321:3;11262:67;:::i;:::-;11255:74;;11338:93;11427:3;11338:93;:::i;:::-;11456:2;11451:3;11447:12;11440:19;;11099:366;;;:::o;11471:419::-;11637:4;11675:2;11664:9;11660:18;11652:26;;11724:9;11718:4;11714:20;11710:1;11699:9;11695:17;11688:47;11752:131;11878:4;11752:131;:::i;:::-;11744:139;;11471:419;;;:::o;11896:180::-;11944:77;11941:1;11934:88;12041:4;12038:1;12031:15;12065:4;12062:1;12055:15;12082:180;12130:77;12127:1;12120:88;12227:4;12224:1;12217:15;12251:4;12248:1;12241:15;12268:233;12307:3;12330:24;12348:5;12330:24;:::i;:::-;12321:33;;12376:66;12369:5;12366:77;12363:103;;12446:18;;:::i;:::-;12363:103;12493:1;12486:5;12482:13;12475:20;;12268:233;;;:::o;12507:180::-;12555:77;12552:1;12545:88;12652:4;12649:1;12642:15;12676:4;12673:1;12666:15;12693:143;12750:5;12781:6;12775:13;12766:22;;12797:33;12824:5;12797:33;:::i;:::-;12693:143;;;;:::o;12842:351::-;12912:6;12961:2;12949:9;12940:7;12936:23;12932:32;12929:119;;;12967:79;;:::i;:::-;12929:119;13087:1;13112:64;13168:7;13159:6;13148:9;13144:22;13112:64;:::i;:::-;13102:74;;13058:128;12842:351;;;;:::o;13199:114::-;13266:6;13300:5;13294:12;13284:22;;13199:114;;;:::o;13319:184::-;13418:11;13452:6;13447:3;13440:19;13492:4;13487:3;13483:14;13468:29;;13319:184;;;;:::o;13509:132::-;13576:4;13599:3;13591:11;;13629:4;13624:3;13620:14;13612:22;;13509:132;;;:::o;13647:108::-;13724:24;13742:5;13724:24;:::i;:::-;13719:3;13712:37;13647:108;;:::o;13761:179::-;13830:10;13851:46;13893:3;13885:6;13851:46;:::i;:::-;13929:4;13924:3;13920:14;13906:28;;13761:179;;;;:::o;13946:113::-;14016:4;14048;14043:3;14039:14;14031:22;;13946:113;;;:::o;14095:732::-;14214:3;14243:54;14291:5;14243:54;:::i;:::-;14313:86;14392:6;14387:3;14313:86;:::i;:::-;14306:93;;14423:56;14473:5;14423:56;:::i;:::-;14502:7;14533:1;14518:284;14543:6;14540:1;14537:13;14518:284;;;14619:6;14613:13;14646:63;14705:3;14690:13;14646:63;:::i;:::-;14639:70;;14732:60;14785:6;14732:60;:::i;:::-;14722:70;;14578:224;14565:1;14562;14558:9;14553:14;;14518:284;;;14522:14;14818:3;14811:10;;14219:608;;;14095:732;;;;:::o;14833:483::-;15004:4;15042:2;15031:9;15027:18;15019:26;;15055:71;15123:1;15112:9;15108:17;15099:6;15055:71;:::i;:::-;15173:9;15167:4;15163:20;15158:2;15147:9;15143:18;15136:48;15201:108;15304:4;15295:6;15201:108;:::i;:::-;15193:116;;14833:483;;;;;:::o;15322:281::-;15405:27;15427:4;15405:27;:::i;:::-;15397:6;15393:40;15535:6;15523:10;15520:22;15499:18;15487:10;15484:34;15481:62;15478:88;;;15546:18;;:::i;:::-;15478:88;15586:10;15582:2;15575:22;15365:238;15322:281;;:::o;15609:129::-;15643:6;15670:20;;:::i;:::-;15660:30;;15699:33;15727:4;15719:6;15699:33;:::i;:::-;15609:129;;;:::o;15744:311::-;15821:4;15911:18;15903:6;15900:30;15897:56;;;15933:18;;:::i;:::-;15897:56;15983:4;15975:6;15971:17;15963:25;;16043:4;16037;16033:15;16025:23;;15744:311;;;:::o;16078:732::-;16185:5;16210:81;16226:64;16283:6;16226:64;:::i;:::-;16210:81;:::i;:::-;16201:90;;16311:5;16340:6;16333:5;16326:21;16374:4;16367:5;16363:16;16356:23;;16427:4;16419:6;16415:17;16407:6;16403:30;16456:3;16448:6;16445:15;16442:122;;;16475:79;;:::i;:::-;16442:122;16590:6;16573:231;16607:6;16602:3;16599:15;16573:231;;;16682:3;16711:48;16755:3;16743:10;16711:48;:::i;:::-;16706:3;16699:61;16789:4;16784:3;16780:14;16773:21;;16649:155;16633:4;16628:3;16624:14;16617:21;;16573:231;;;16577:21;16191:619;;16078:732;;;;;:::o;16833:385::-;16915:5;16964:3;16957:4;16949:6;16945:17;16941:27;16931:122;;16972:79;;:::i;:::-;16931:122;17082:6;17076:13;17107:105;17208:3;17200:6;17193:4;17185:6;17181:17;17107:105;:::i;:::-;17098:114;;16921:297;16833:385;;;;:::o;17224:554::-;17319:6;17368:2;17356:9;17347:7;17343:23;17339:32;17336:119;;;17374:79;;:::i;:::-;17336:119;17515:1;17504:9;17500:17;17494:24;17545:18;17537:6;17534:30;17531:117;;;17567:79;;:::i;:::-;17531:117;17672:89;17753:7;17744:6;17733:9;17729:22;17672:89;:::i;:::-;17662:99;;17465:306;17224:554;;;;:::o;17784:225::-;17924:34;17920:1;17912:6;17908:14;17901:58;17993:8;17988:2;17980:6;17976:15;17969:33;17784:225;:::o;18015:366::-;18157:3;18178:67;18242:2;18237:3;18178:67;:::i;:::-;18171:74;;18254:93;18343:3;18254:93;:::i;:::-;18372:2;18367:3;18363:12;18356:19;;18015:366;;;:::o;18387:419::-;18553:4;18591:2;18580:9;18576:18;18568:26;;18640:9;18634:4;18630:20;18626:1;18615:9;18611:17;18604:47;18668:131;18794:4;18668:131;:::i;:::-;18660:139;;18387:419;;;:::o;18812:410::-;18852:7;18875:20;18893:1;18875:20;:::i;:::-;18870:25;;18909:20;18927:1;18909:20;:::i;:::-;18904:25;;18964:1;18961;18957:9;18986:30;19004:11;18986:30;:::i;:::-;18975:41;;19165:1;19156:7;19152:15;19149:1;19146:22;19126:1;19119:9;19099:83;19076:139;;19195:18;;:::i;:::-;19076:139;18860:362;18812:410;;;;:::o;19228:180::-;19276:77;19273:1;19266:88;19373:4;19370:1;19363:15;19397:4;19394:1;19387:15;19414:185;19454:1;19471:20;19489:1;19471:20;:::i;:::-;19466:25;;19505:20;19523:1;19505:20;:::i;:::-;19500:25;;19544:1;19534:35;;19549:18;;:::i;:::-;19534:35;19591:1;19588;19584:9;19579:14;;19414:185;;;;:::o;19605:220::-;19745:34;19741:1;19733:6;19729:14;19722:58;19814:3;19809:2;19801:6;19797:15;19790:28;19605:220;:::o;19831:366::-;19973:3;19994:67;20058:2;20053:3;19994:67;:::i;:::-;19987:74;;20070:93;20159:3;20070:93;:::i;:::-;20188:2;20183:3;20179:12;20172:19;;19831:366;;;:::o;20203:419::-;20369:4;20407:2;20396:9;20392:18;20384:26;;20456:9;20450:4;20446:20;20442:1;20431:9;20427:17;20420:47;20484:131;20610:4;20484:131;:::i;:::-;20476:139;;20203:419;;;:::o;20628:194::-;20668:4;20688:20;20706:1;20688:20;:::i;:::-;20683:25;;20722:20;20740:1;20722:20;:::i;:::-;20717:25;;20766:1;20763;20759:9;20751:17;;20790:1;20784:4;20781:11;20778:37;;;20795:18;;:::i;:::-;20778:37;20628:194;;;;:::o;20828:167::-;20968:19;20964:1;20956:6;20952:14;20945:43;20828:167;:::o;21001:366::-;21143:3;21164:67;21228:2;21223:3;21164:67;:::i;:::-;21157:74;;21240:93;21329:3;21240:93;:::i;:::-;21358:2;21353:3;21349:12;21342:19;;21001:366;;;:::o;21373:419::-;21539:4;21577:2;21566:9;21562:18;21554:26;;21626:9;21620:4;21616:20;21612:1;21601:9;21597:17;21590:47;21654:131;21780:4;21654:131;:::i;:::-;21646:139;;21373:419;;;:::o;21798:191::-;21838:3;21857:20;21875:1;21857:20;:::i;:::-;21852:25;;21891:20;21909:1;21891:20;:::i;:::-;21886:25;;21934:1;21931;21927:9;21920:16;;21955:3;21952:1;21949:10;21946:36;;;21962:18;;:::i;:::-;21946:36;21798:191;;;;:::o;21995:168::-;22135:20;22131:1;22123:6;22119:14;22112:44;21995:168;:::o;22169:366::-;22311:3;22332:67;22396:2;22391:3;22332:67;:::i;:::-;22325:74;;22408:93;22497:3;22408:93;:::i;:::-;22526:2;22521:3;22517:12;22510:19;;22169:366;;;:::o;22541:419::-;22707:4;22745:2;22734:9;22730:18;22722:26;;22794:9;22788:4;22784:20;22780:1;22769:9;22765:17;22758:47;22822:131;22948:4;22822:131;:::i;:::-;22814:139;;22541:419;;;:::o;22966:220::-;23106:34;23102:1;23094:6;23090:14;23083:58;23175:3;23170:2;23162:6;23158:15;23151:28;22966:220;:::o;23192:366::-;23334:3;23355:67;23419:2;23414:3;23355:67;:::i;:::-;23348:74;;23431:93;23520:3;23431:93;:::i;:::-;23549:2;23544:3;23540:12;23533:19;;23192:366;;;:::o;23564:419::-;23730:4;23768:2;23757:9;23753:18;23745:26;;23817:9;23811:4;23807:20;23803:1;23792:9;23788:17;23781:47;23845:131;23971:4;23845:131;:::i;:::-;23837:139;;23564:419;;;:::o;23989:85::-;24034:7;24063:5;24052:16;;23989:85;;;:::o;24080:60::-;24108:3;24129:5;24122:12;;24080:60;;;:::o;24146:158::-;24204:9;24237:61;24255:42;24264:32;24290:5;24264:32;:::i;:::-;24255:42;:::i;:::-;24237:61;:::i;:::-;24224:74;;24146:158;;;:::o;24310:147::-;24405:45;24444:5;24405:45;:::i;:::-;24400:3;24393:58;24310:147;;:::o;24463:111::-;24527:6;24561:5;24555:12;24545:22;;24463:111;;;:::o;24580:156::-;24644:4;24667:3;24659:11;;24690:3;24687:1;24680:14;24724:4;24721:1;24711:18;24703:26;;24580:156;;;:::o;24742:102::-;24784:8;24831:5;24828:1;24824:13;24803:34;;24742:102;;;:::o;24850:139::-;24900:7;24940:42;24933:5;24929:54;24918:65;;24850:139;;;:::o;24995:166::-;25064:5;25089:66;25120:34;25143:10;25120:34;:::i;:::-;25089:66;:::i;:::-;25080:75;;24995:166;;;:::o;25167:144::-;25222:5;25247:57;25298:4;25292:11;25247:57;:::i;:::-;25238:66;;25167:144;;;:::o;25317:110::-;25384:4;25416;25411:3;25407:14;25399:22;;25317:110;;;:::o;25463:751::-;25579:3;25608:51;25653:5;25608:51;:::i;:::-;25675:86;25754:6;25749:3;25675:86;:::i;:::-;25668:93;;25785:53;25832:5;25785:53;:::i;:::-;25861:7;25892:1;25877:312;25902:6;25899:1;25896:13;25877:312;;;25972:44;26009:6;25972:44;:::i;:::-;26036:63;26095:3;26080:13;26036:63;:::i;:::-;26029:70;;26122:57;26172:6;26122:57;:::i;:::-;26112:67;;25937:252;25924:1;25921;25917:9;25912:14;;25877:312;;;25881:14;26205:3;26198:10;;25584:630;;;25463:751;;;;:::o;26220:825::-;26480:4;26518:3;26507:9;26503:19;26495:27;;26532:71;26600:1;26589:9;26585:17;26576:6;26532:71;:::i;:::-;26613:80;26689:2;26678:9;26674:18;26665:6;26613:80;:::i;:::-;26740:9;26734:4;26730:20;26725:2;26714:9;26710:18;26703:48;26768:105;26868:4;26859:6;26768:105;:::i;:::-;26760:113;;26883:72;26951:2;26940:9;26936:18;26927:6;26883:72;:::i;:::-;26965:73;27033:3;27022:9;27018:19;27009:6;26965:73;:::i;:::-;26220:825;;;;;;;;:::o;27051:177::-;27191:29;27187:1;27179:6;27175:14;27168:53;27051:177;:::o;27234:366::-;27376:3;27397:67;27461:2;27456:3;27397:67;:::i;:::-;27390:74;;27473:93;27562:3;27473:93;:::i;:::-;27591:2;27586:3;27582:12;27575:19;;27234:366;;;:::o;27606:419::-;27772:4;27810:2;27799:9;27795:18;27787:26;;27859:9;27853:4;27849:20;27845:1;27834:9;27830:17;27823:47;27887:131;28013:4;27887:131;:::i;:::-;27879:139;;27606:419;;;:::o

Swarm Source

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