ETH Price: $3,352.55 (-3.49%)

Token

FIFA Inu Token (FIFA)
 

Overview

Max Total Supply

1,000,000,000 FIFA

Holders

167

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
334,714.4913833 FIFA

Value
$0.00
0xe17884e4b1e2a2caec965fb02b5d8600bdb40ed0
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:
FifaInu

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

FIFA Inu

Let's collect the world cup!

fifainutoken.com

*/

pragma solidity 0.8.9;

// SPDX-License-Identifier: UNLICENSED 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract FifaInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = "FIFA Inu Token";
    string private constant _symbol = "FIFA";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private _maxWalletSize = _tTotal.mul(3).div(100);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax=7;

        emit Transfer(address(0), _msgSender(), _tTotal);
        
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) public {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function addbot(address[] memory bots_) public {
        require(_msgSender() == _feeAddrWallet);
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unbot(address[] memory bots_) public {
        require(_msgSender() == _feeAddrWallet);
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = false;
        }
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendETHToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"unbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c9190620005d0565b6000196200002b919062000637565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550620000bc6064620000a86002670de0b6b3a76400006200042860201b620012fc1790919060201c565b620004ac60201b620013771790919060201c565b601055620000fc6064620000e86003670de0b6b3a76400006200042860201b620012fc1790919060201c565b620004ac60201b620013771790919060201c565b6011553480156200010c57600080fd5b5060006200011f620004fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cd620004fe60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008546002600062000224620004fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002786200050660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007600c81905550620003b3620004fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200041a919062000683565b60405180910390a362000899565b6000808314156200043d5760009050620004a6565b600082846200044d9190620006a0565b90508284826200045e919062000701565b14620004a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200049890620007c0565b60405180910390fd5b809150505b92915050565b6000620004f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200052f60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000570919062000875565b60405180910390fd5b50600083856200058a919062000701565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005dd8262000597565b9150620005ea8362000597565b925082620005fd57620005fc620005a1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006448262000597565b9150620006518362000597565b92508282101562000667576200066662000608565b5b828203905092915050565b6200067d8162000597565b82525050565b60006020820190506200069a600083018462000672565b92915050565b6000620006ad8262000597565b9150620006ba8362000597565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006f657620006f562000608565b5b828202905092915050565b60006200070e8262000597565b91506200071b8362000597565b9250826200072e576200072d620005a1565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620007a860218362000739565b9150620007b5826200074a565b604082019050919050565b60006020820190508181036000830152620007db8162000799565b9050919050565b600081519050919050565b60005b838110156200080d578082015181840152602081019050620007f0565b838111156200081d576000848401525b50505050565b6000601f19601f8301169050919050565b60006200084182620007e2565b6200084d818562000739565b93506200085f818560208601620007ed565b6200086a8162000823565b840191505092915050565b6000602082019050818103600083015262000891818462000834565b905092915050565b61347980620008a96000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063bf17235811610064578063bf172358146103ba578063c3c8cd80146103e3578063c9567bf9146103fa578063ccfee5d614610411578063dd62ed3e1461043a5761012a565b8063751039fc146102e7578063843f7be2146102fe5780638da5cb5b1461032757806395d89b4114610352578063a9059cbb1461037d5761012a565b8063313ce567116100e7578063313ce567146102285780635932ead1146102535780636fc3eaec1461027c57806370a0823114610293578063715018a6146102d05761012a565b806306b501971461012f57806306fdde0314610158578063095ea7b31461018357806318160ddd146101c057806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061015660048036038101906101519190612429565b610477565b005b34801561016457600080fd5b5061016d6104e3565b60405161017a91906124ef565b60405180910390f35b34801561018f57600080fd5b506101aa60048036038101906101a5919061256f565b610520565b6040516101b791906125ca565b60405180910390f35b3480156101cc57600080fd5b506101d561053e565b6040516101e291906125f4565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d919061260f565b61054e565b60405161021f91906125ca565b60405180910390f35b34801561023457600080fd5b5061023d610627565b60405161024a919061267e565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906126c5565b610630565b005b34801561028857600080fd5b506102916106e2565b005b34801561029f57600080fd5b506102ba60048036038101906102b591906126f2565b610754565b6040516102c791906125f4565b60405180910390f35b3480156102dc57600080fd5b506102e56107a5565b005b3480156102f357600080fd5b506102fc6108f8565b005b34801561030a57600080fd5b5061032560048036038101906103209190612429565b6109ad565b005b34801561033357600080fd5b5061033c610a5a565b604051610349919061272e565b60405180910390f35b34801561035e57600080fd5b50610367610a83565b60405161037491906124ef565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f919061256f565b610ac0565b6040516103b191906125ca565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190612891565b610ade565b005b3480156103ef57600080fd5b506103f8610bd4565b005b34801561040657600080fd5b5061040f610c4e565b005b34801561041d57600080fd5b5061043860048036038101906104339190612891565b61117f565b005b34801561044657600080fd5b50610461600480360381019061045c91906128da565b611275565b60405161046e91906125f4565b60405180910390f35b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156104df573d6000803e3d6000fd5b5050565b60606040518060400160405280600e81526020017f4649464120496e7520546f6b656e000000000000000000000000000000000000815250905090565b600061053461052d6113c1565b84846113c9565b6001905092915050565b6000670de0b6b3a7640000905090565b600061055b848484611594565b61061c846105676113c1565b6106178560405180606001604052806028815260200161341c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cd6113c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b6113c9565b600190509392505050565b60006009905090565b6106386113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bc90612966565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107236113c1565b73ffffffffffffffffffffffffffffffffffffffff161461074357600080fd5b600047905061075181610477565b50565b600061079e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afb565b9050919050565b6107ad6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190612966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109006113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490612966565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6109b56113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990612966565b60405180910390fd5b600c548110610a5057600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4649464100000000000000000000000000000000000000000000000000000000815250905090565b6000610ad4610acd6113c1565b8484611594565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b1f6113c1565b73ffffffffffffffffffffffffffffffffffffffff1614610b3f57600080fd5b60005b8151811015610bd057600060066000848481518110610b6457610b63612986565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bc8906129e4565b915050610b42565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c156113c1565b73ffffffffffffffffffffffffffffffffffffffff1614610c3557600080fd5b6000610c4030610754565b9050610c4b81611b69565b50565b610c566113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda90612966565b60405180910390fd5b600f60149054906101000a900460ff1615610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612a79565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dc230600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006113c9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0857600080fd5b505afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e409190612aae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190612aae565b6040518363ffffffff1660e01b8152600401610ef7929190612adb565b602060405180830381600087803b158015610f1157600080fd5b505af1158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190612aae565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fd230610754565b600080610fdd610a5a565b426040518863ffffffff1660e01b8152600401610fff96959493929190612b49565b6060604051808303818588803b15801561101857600080fd5b505af115801561102c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110519190612bbf565b5050506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611129929190612c12565b602060405180830381600087803b15801561114357600080fd5b505af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190612c50565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c06113c1565b73ffffffffffffffffffffffffffffffffffffffff16146111e057600080fd5b60005b81518110156112715760016006600084848151811061120557611204612986565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611269906129e4565b9150506111e3565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083141561130f5760009050611371565b6000828461131d9190612c7d565b905082848261132c9190612d06565b1461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612da9565b60405180910390fd5b809150505b92915050565b60006113b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612e3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a090612ecd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158791906125f4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90612ff1565b60405180910390fd5b600081116116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae90613083565b60405180910390fd5b6116bf610a5a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172d57506116fd610a5a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117d65750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117df57600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561189b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f15750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119095750600f60179054906101000a900460ff165b156119ac57601054811115611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a906130ef565b60405180910390fd5b6011548161196084610754565b61196a919061310f565b11156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a2906131b1565b60405180910390fd5b5b60006119b730610754565b9050600f60159054906101000a900460ff16158015611a245750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a3c5750600f60169054906101000a900460ff165b8015611a485750600081115b15611a7057611a5681611b69565b60004790506000811115611a6e57611a6d47610477565b5b505b50611a87565b6000600a819055506000600b819055505b611a92838383611e54565b505050565b6000838311158290611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad691906124ef565b60405180910390fd5b5060008385611aee91906131d1565b9050809150509392505050565b6000600854821115611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990613277565b60405180910390fd5b6000611b4c611e64565b9050611b61818461137790919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ba157611ba061274e565b5b604051908082528060200260200182016040528015611bcf5781602001602082028036833780820191505090505b5090503081600081518110611be757611be6612986565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8957600080fd5b505afa158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc19190612aae565b81600181518110611cd557611cd4612986565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d3c30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113c9565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611da0959493929190613355565b600060405180830381600087803b158015611dba57600080fd5b505af1158015611dce573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f91906124ef565b60405180910390fd5b5060008385611e479190612d06565b9050809150509392505050565b611e5f838383611e8f565b505050565b6000806000611e7161205a565b91509150611e88818361137790919063ffffffff16565b9250505090565b600080600080600080611ea1876120b9565b955095509550955095509550611eff86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe0816121c9565b611fea8483612286565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161204791906125f4565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a7640000905061208e670de0b6b3a764000060085461137790919063ffffffff16565b8210156120ac57600854670de0b6b3a76400009350935050506120b5565b81819350935050505b9091565b60008060008060008060008060006120d68a600a54600b546122c0565b92509250925060006120e6611e64565b905060008060006120f98e878787612356565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061216383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a97565b905092915050565b600080828461217a919061310f565b9050838110156121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b6906133fb565b60405180910390fd5b8091505092915050565b60006121d3611e64565b905060006121ea82846112fc90919063ffffffff16565b905061223e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61229b8260085461212190919063ffffffff16565b6008819055506122b68160095461216b90919063ffffffff16565b6009819055505050565b6000806000806122ec60646122de888a6112fc90919063ffffffff16565b61137790919063ffffffff16565b905060006123166064612308888b6112fc90919063ffffffff16565b61137790919063ffffffff16565b9050600061233f82612331858c61212190919063ffffffff16565b61212190919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061236f85896112fc90919063ffffffff16565b9050600061238686896112fc90919063ffffffff16565b9050600061239d87896112fc90919063ffffffff16565b905060006123c6826123b8858761212190919063ffffffff16565b61212190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612406816123f3565b811461241157600080fd5b50565b600081359050612423816123fd565b92915050565b60006020828403121561243f5761243e6123e9565b5b600061244d84828501612414565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612490578082015181840152602081019050612475565b8381111561249f576000848401525b50505050565b6000601f19601f8301169050919050565b60006124c182612456565b6124cb8185612461565b93506124db818560208601612472565b6124e4816124a5565b840191505092915050565b6000602082019050818103600083015261250981846124b6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061253c82612511565b9050919050565b61254c81612531565b811461255757600080fd5b50565b60008135905061256981612543565b92915050565b60008060408385031215612586576125856123e9565b5b60006125948582860161255a565b92505060206125a585828601612414565b9150509250929050565b60008115159050919050565b6125c4816125af565b82525050565b60006020820190506125df60008301846125bb565b92915050565b6125ee816123f3565b82525050565b600060208201905061260960008301846125e5565b92915050565b600080600060608486031215612628576126276123e9565b5b60006126368682870161255a565b93505060206126478682870161255a565b925050604061265886828701612414565b9150509250925092565b600060ff82169050919050565b61267881612662565b82525050565b6000602082019050612693600083018461266f565b92915050565b6126a2816125af565b81146126ad57600080fd5b50565b6000813590506126bf81612699565b92915050565b6000602082840312156126db576126da6123e9565b5b60006126e9848285016126b0565b91505092915050565b600060208284031215612708576127076123e9565b5b60006127168482850161255a565b91505092915050565b61272881612531565b82525050565b6000602082019050612743600083018461271f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612786826124a5565b810181811067ffffffffffffffff821117156127a5576127a461274e565b5b80604052505050565b60006127b86123df565b90506127c4828261277d565b919050565b600067ffffffffffffffff8211156127e4576127e361274e565b5b602082029050602081019050919050565b600080fd5b600061280d612808846127c9565b6127ae565b905080838252602082019050602084028301858111156128305761282f6127f5565b5b835b818110156128595780612845888261255a565b845260208401935050602081019050612832565b5050509392505050565b600082601f83011261287857612877612749565b5b81356128888482602086016127fa565b91505092915050565b6000602082840312156128a7576128a66123e9565b5b600082013567ffffffffffffffff8111156128c5576128c46123ee565b5b6128d184828501612863565b91505092915050565b600080604083850312156128f1576128f06123e9565b5b60006128ff8582860161255a565b92505060206129108582860161255a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612950602083612461565b915061295b8261291a565b602082019050919050565b6000602082019050818103600083015261297f81612943565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129ef826123f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a2257612a216129b5565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a63601783612461565b9150612a6e82612a2d565b602082019050919050565b60006020820190508181036000830152612a9281612a56565b9050919050565b600081519050612aa881612543565b92915050565b600060208284031215612ac457612ac36123e9565b5b6000612ad284828501612a99565b91505092915050565b6000604082019050612af0600083018561271f565b612afd602083018461271f565b9392505050565b6000819050919050565b6000819050919050565b6000612b33612b2e612b2984612b04565b612b0e565b6123f3565b9050919050565b612b4381612b18565b82525050565b600060c082019050612b5e600083018961271f565b612b6b60208301886125e5565b612b786040830187612b3a565b612b856060830186612b3a565b612b92608083018561271f565b612b9f60a08301846125e5565b979650505050505050565b600081519050612bb9816123fd565b92915050565b600080600060608486031215612bd857612bd76123e9565b5b6000612be686828701612baa565b9350506020612bf786828701612baa565b9250506040612c0886828701612baa565b9150509250925092565b6000604082019050612c27600083018561271f565b612c3460208301846125e5565b9392505050565b600081519050612c4a81612699565b92915050565b600060208284031215612c6657612c656123e9565b5b6000612c7484828501612c3b565b91505092915050565b6000612c88826123f3565b9150612c93836123f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ccc57612ccb6129b5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d11826123f3565b9150612d1c836123f3565b925082612d2c57612d2b612cd7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d93602183612461565b9150612d9e82612d37565b604082019050919050565b60006020820190508181036000830152612dc281612d86565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e25602483612461565b9150612e3082612dc9565b604082019050919050565b60006020820190508181036000830152612e5481612e18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eb7602283612461565b9150612ec282612e5b565b604082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f49602583612461565b9150612f5482612eed565b604082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fdb602383612461565b9150612fe682612f7f565b604082019050919050565b6000602082019050818103600083015261300a81612fce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061306d602983612461565b915061307882613011565b604082019050919050565b6000602082019050818103600083015261309c81613060565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130d9601983612461565b91506130e4826130a3565b602082019050919050565b60006020820190508181036000830152613108816130cc565b9050919050565b600061311a826123f3565b9150613125836123f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561315a576131596129b5565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061319b601a83612461565b91506131a682613165565b602082019050919050565b600060208201905081810360008301526131ca8161318e565b9050919050565b60006131dc826123f3565b91506131e7836123f3565b9250828210156131fa576131f96129b5565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613261602a83612461565b915061326c82613205565b604082019050919050565b6000602082019050818103600083015261329081613254565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132cc81612531565b82525050565b60006132de83836132c3565b60208301905092915050565b6000602082019050919050565b600061330282613297565b61330c81856132a2565b9350613317836132b3565b8060005b8381101561334857815161332f88826132d2565b975061333a836132ea565b92505060018101905061331b565b5085935050505092915050565b600060a08201905061336a60008301886125e5565b6133776020830187612b3a565b818103604083015261338981866132f7565b9050613398606083018561271f565b6133a560808301846125e5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133e5601b83612461565b91506133f0826133af565b602082019050919050565b60006020820190508181036000830152613414816133d8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205773cfe0c155352b5be31b2063f66414dea9aed836e4ceae13cb79a55d51dfbf64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063bf17235811610064578063bf172358146103ba578063c3c8cd80146103e3578063c9567bf9146103fa578063ccfee5d614610411578063dd62ed3e1461043a5761012a565b8063751039fc146102e7578063843f7be2146102fe5780638da5cb5b1461032757806395d89b4114610352578063a9059cbb1461037d5761012a565b8063313ce567116100e7578063313ce567146102285780635932ead1146102535780636fc3eaec1461027c57806370a0823114610293578063715018a6146102d05761012a565b806306b501971461012f57806306fdde0314610158578063095ea7b31461018357806318160ddd146101c057806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b5061015660048036038101906101519190612429565b610477565b005b34801561016457600080fd5b5061016d6104e3565b60405161017a91906124ef565b60405180910390f35b34801561018f57600080fd5b506101aa60048036038101906101a5919061256f565b610520565b6040516101b791906125ca565b60405180910390f35b3480156101cc57600080fd5b506101d561053e565b6040516101e291906125f4565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d919061260f565b61054e565b60405161021f91906125ca565b60405180910390f35b34801561023457600080fd5b5061023d610627565b60405161024a919061267e565b60405180910390f35b34801561025f57600080fd5b5061027a600480360381019061027591906126c5565b610630565b005b34801561028857600080fd5b506102916106e2565b005b34801561029f57600080fd5b506102ba60048036038101906102b591906126f2565b610754565b6040516102c791906125f4565b60405180910390f35b3480156102dc57600080fd5b506102e56107a5565b005b3480156102f357600080fd5b506102fc6108f8565b005b34801561030a57600080fd5b5061032560048036038101906103209190612429565b6109ad565b005b34801561033357600080fd5b5061033c610a5a565b604051610349919061272e565b60405180910390f35b34801561035e57600080fd5b50610367610a83565b60405161037491906124ef565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f919061256f565b610ac0565b6040516103b191906125ca565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190612891565b610ade565b005b3480156103ef57600080fd5b506103f8610bd4565b005b34801561040657600080fd5b5061040f610c4e565b005b34801561041d57600080fd5b5061043860048036038101906104339190612891565b61117f565b005b34801561044657600080fd5b50610461600480360381019061045c91906128da565b611275565b60405161046e91906125f4565b60405180910390f35b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156104df573d6000803e3d6000fd5b5050565b60606040518060400160405280600e81526020017f4649464120496e7520546f6b656e000000000000000000000000000000000000815250905090565b600061053461052d6113c1565b84846113c9565b6001905092915050565b6000670de0b6b3a7640000905090565b600061055b848484611594565b61061c846105676113c1565b6106178560405180606001604052806028815260200161341c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105cd6113c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a979092919063ffffffff16565b6113c9565b600190509392505050565b60006009905090565b6106386113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bc90612966565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107236113c1565b73ffffffffffffffffffffffffffffffffffffffff161461074357600080fd5b600047905061075181610477565b50565b600061079e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afb565b9050919050565b6107ad6113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190612966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109006113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098490612966565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6109b56113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990612966565b60405180910390fd5b600c548110610a5057600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4649464100000000000000000000000000000000000000000000000000000000815250905090565b6000610ad4610acd6113c1565b8484611594565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b1f6113c1565b73ffffffffffffffffffffffffffffffffffffffff1614610b3f57600080fd5b60005b8151811015610bd057600060066000848481518110610b6457610b63612986565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bc8906129e4565b915050610b42565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c156113c1565b73ffffffffffffffffffffffffffffffffffffffff1614610c3557600080fd5b6000610c4030610754565b9050610c4b81611b69565b50565b610c566113c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda90612966565b60405180910390fd5b600f60149054906101000a900460ff1615610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612a79565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dc230600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a76400006113c9565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0857600080fd5b505afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e409190612aae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eda9190612aae565b6040518363ffffffff1660e01b8152600401610ef7929190612adb565b602060405180830381600087803b158015610f1157600080fd5b505af1158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190612aae565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fd230610754565b600080610fdd610a5a565b426040518863ffffffff1660e01b8152600401610fff96959493929190612b49565b6060604051808303818588803b15801561101857600080fd5b505af115801561102c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110519190612bbf565b5050506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611129929190612c12565b602060405180830381600087803b15801561114357600080fd5b505af1158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190612c50565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c06113c1565b73ffffffffffffffffffffffffffffffffffffffff16146111e057600080fd5b60005b81518110156112715760016006600084848151811061120557611204612986565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611269906129e4565b9150506111e3565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083141561130f5760009050611371565b6000828461131d9190612c7d565b905082848261132c9190612d06565b1461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612da9565b60405180910390fd5b809150505b92915050565b60006113b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612e3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a090612ecd565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158791906125f4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b90612ff1565b60405180910390fd5b600081116116b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ae90613083565b60405180910390fd5b6116bf610a5a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172d57506116fd610a5a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7657600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117d65750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117df57600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561189b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f15750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119095750600f60179054906101000a900460ff165b156119ac57601054811115611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a906130ef565b60405180910390fd5b6011548161196084610754565b61196a919061310f565b11156119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a2906131b1565b60405180910390fd5b5b60006119b730610754565b9050600f60159054906101000a900460ff16158015611a245750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a3c5750600f60169054906101000a900460ff165b8015611a485750600081115b15611a7057611a5681611b69565b60004790506000811115611a6e57611a6d47610477565b5b505b50611a87565b6000600a819055506000600b819055505b611a92838383611e54565b505050565b6000838311158290611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad691906124ef565b60405180910390fd5b5060008385611aee91906131d1565b9050809150509392505050565b6000600854821115611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990613277565b60405180910390fd5b6000611b4c611e64565b9050611b61818461137790919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ba157611ba061274e565b5b604051908082528060200260200182016040528015611bcf5781602001602082028036833780820191505090505b5090503081600081518110611be757611be6612986565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8957600080fd5b505afa158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc19190612aae565b81600181518110611cd557611cd4612986565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d3c30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113c9565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611da0959493929190613355565b600060405180830381600087803b158015611dba57600080fd5b505af1158015611dce573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2f91906124ef565b60405180910390fd5b5060008385611e479190612d06565b9050809150509392505050565b611e5f838383611e8f565b505050565b6000806000611e7161205a565b91509150611e88818361137790919063ffffffff16565b9250505090565b600080600080600080611ea1876120b9565b955095509550955095509550611eff86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe0816121c9565b611fea8483612286565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161204791906125f4565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a7640000905061208e670de0b6b3a764000060085461137790919063ffffffff16565b8210156120ac57600854670de0b6b3a76400009350935050506120b5565b81819350935050505b9091565b60008060008060008060008060006120d68a600a54600b546122c0565b92509250925060006120e6611e64565b905060008060006120f98e878787612356565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061216383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a97565b905092915050565b600080828461217a919061310f565b9050838110156121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b6906133fb565b60405180910390fd5b8091505092915050565b60006121d3611e64565b905060006121ea82846112fc90919063ffffffff16565b905061223e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61229b8260085461212190919063ffffffff16565b6008819055506122b68160095461216b90919063ffffffff16565b6009819055505050565b6000806000806122ec60646122de888a6112fc90919063ffffffff16565b61137790919063ffffffff16565b905060006123166064612308888b6112fc90919063ffffffff16565b61137790919063ffffffff16565b9050600061233f82612331858c61212190919063ffffffff16565b61212190919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061236f85896112fc90919063ffffffff16565b9050600061238686896112fc90919063ffffffff16565b9050600061239d87896112fc90919063ffffffff16565b905060006123c6826123b8858761212190919063ffffffff16565b61212190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612406816123f3565b811461241157600080fd5b50565b600081359050612423816123fd565b92915050565b60006020828403121561243f5761243e6123e9565b5b600061244d84828501612414565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612490578082015181840152602081019050612475565b8381111561249f576000848401525b50505050565b6000601f19601f8301169050919050565b60006124c182612456565b6124cb8185612461565b93506124db818560208601612472565b6124e4816124a5565b840191505092915050565b6000602082019050818103600083015261250981846124b6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061253c82612511565b9050919050565b61254c81612531565b811461255757600080fd5b50565b60008135905061256981612543565b92915050565b60008060408385031215612586576125856123e9565b5b60006125948582860161255a565b92505060206125a585828601612414565b9150509250929050565b60008115159050919050565b6125c4816125af565b82525050565b60006020820190506125df60008301846125bb565b92915050565b6125ee816123f3565b82525050565b600060208201905061260960008301846125e5565b92915050565b600080600060608486031215612628576126276123e9565b5b60006126368682870161255a565b93505060206126478682870161255a565b925050604061265886828701612414565b9150509250925092565b600060ff82169050919050565b61267881612662565b82525050565b6000602082019050612693600083018461266f565b92915050565b6126a2816125af565b81146126ad57600080fd5b50565b6000813590506126bf81612699565b92915050565b6000602082840312156126db576126da6123e9565b5b60006126e9848285016126b0565b91505092915050565b600060208284031215612708576127076123e9565b5b60006127168482850161255a565b91505092915050565b61272881612531565b82525050565b6000602082019050612743600083018461271f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612786826124a5565b810181811067ffffffffffffffff821117156127a5576127a461274e565b5b80604052505050565b60006127b86123df565b90506127c4828261277d565b919050565b600067ffffffffffffffff8211156127e4576127e361274e565b5b602082029050602081019050919050565b600080fd5b600061280d612808846127c9565b6127ae565b905080838252602082019050602084028301858111156128305761282f6127f5565b5b835b818110156128595780612845888261255a565b845260208401935050602081019050612832565b5050509392505050565b600082601f83011261287857612877612749565b5b81356128888482602086016127fa565b91505092915050565b6000602082840312156128a7576128a66123e9565b5b600082013567ffffffffffffffff8111156128c5576128c46123ee565b5b6128d184828501612863565b91505092915050565b600080604083850312156128f1576128f06123e9565b5b60006128ff8582860161255a565b92505060206129108582860161255a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612950602083612461565b915061295b8261291a565b602082019050919050565b6000602082019050818103600083015261297f81612943565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129ef826123f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a2257612a216129b5565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a63601783612461565b9150612a6e82612a2d565b602082019050919050565b60006020820190508181036000830152612a9281612a56565b9050919050565b600081519050612aa881612543565b92915050565b600060208284031215612ac457612ac36123e9565b5b6000612ad284828501612a99565b91505092915050565b6000604082019050612af0600083018561271f565b612afd602083018461271f565b9392505050565b6000819050919050565b6000819050919050565b6000612b33612b2e612b2984612b04565b612b0e565b6123f3565b9050919050565b612b4381612b18565b82525050565b600060c082019050612b5e600083018961271f565b612b6b60208301886125e5565b612b786040830187612b3a565b612b856060830186612b3a565b612b92608083018561271f565b612b9f60a08301846125e5565b979650505050505050565b600081519050612bb9816123fd565b92915050565b600080600060608486031215612bd857612bd76123e9565b5b6000612be686828701612baa565b9350506020612bf786828701612baa565b9250506040612c0886828701612baa565b9150509250925092565b6000604082019050612c27600083018561271f565b612c3460208301846125e5565b9392505050565b600081519050612c4a81612699565b92915050565b600060208284031215612c6657612c656123e9565b5b6000612c7484828501612c3b565b91505092915050565b6000612c88826123f3565b9150612c93836123f3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ccc57612ccb6129b5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d11826123f3565b9150612d1c836123f3565b925082612d2c57612d2b612cd7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d93602183612461565b9150612d9e82612d37565b604082019050919050565b60006020820190508181036000830152612dc281612d86565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e25602483612461565b9150612e3082612dc9565b604082019050919050565b60006020820190508181036000830152612e5481612e18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eb7602283612461565b9150612ec282612e5b565b604082019050919050565b60006020820190508181036000830152612ee681612eaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f49602583612461565b9150612f5482612eed565b604082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fdb602383612461565b9150612fe682612f7f565b604082019050919050565b6000602082019050818103600083015261300a81612fce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061306d602983612461565b915061307882613011565b604082019050919050565b6000602082019050818103600083015261309c81613060565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130d9601983612461565b91506130e4826130a3565b602082019050919050565b60006020820190508181036000830152613108816130cc565b9050919050565b600061311a826123f3565b9150613125836123f3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561315a576131596129b5565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061319b601a83612461565b91506131a682613165565b602082019050919050565b600060208201905081810360008301526131ca8161318e565b9050919050565b60006131dc826123f3565b91506131e7836123f3565b9250828210156131fa576131f96129b5565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613261602a83612461565b915061326c82613205565b604082019050919050565b6000602082019050818103600083015261329081613254565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132cc81612531565b82525050565b60006132de83836132c3565b60208301905092915050565b6000602082019050919050565b600061330282613297565b61330c81856132a2565b9350613317836132b3565b8060005b8381101561334857815161332f88826132d2565b975061333a836132ea565b92505060018101905061331b565b5085935050505092915050565b600060a08201905061336a60008301886125e5565b6133776020830187612b3a565b818103604083015261338981866132f7565b9050613398606083018561271f565b6133a560808301846125e5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133e5601b83612461565b91506133f0826133af565b602082019050919050565b60006020820190508181036000830152613414816133d8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205773cfe0c155352b5be31b2063f66414dea9aed836e4ceae13cb79a55d51dfbf64736f6c63430008090033

Deployed Bytecode Sourcemap

3592:10403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5374:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6226:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5651:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5560:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6716:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11688:193;;;;;;;;;;;;;:::i;:::-;;5754:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2673:148;;;;;;;;;;;;;:::i;:::-;;9444:118;;;;;;;;;;;;;:::i;:::-;;9305:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2459:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5465:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5900:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12100:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11486:194;;;;;;;;;;;;;:::i;:::-;;9673:744;;;;;;;;;;;;;:::i;:::-;;11889:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6075:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9570:95;9626:14;;;;;;;;;;;:23;;:31;9650:6;9626:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:95;:::o;5374:83::-;5411:13;5444:5;;;;;;;;;;;;;;;;;5437:12;;5374:83;:::o;6226:161::-;6301:4;6318:39;6327:12;:10;:12::i;:::-;6341:7;6350:6;6318:8;:39::i;:::-;6375:4;6368:11;;6226:161;;;;:::o;5651:95::-;5704:7;4092:21;5724:14;;5651:95;:::o;6395:313::-;6493:4;6510:36;6520:6;6528:9;6539:6;6510:9;:36::i;:::-;6557:121;6566:6;6574:12;:10;:12::i;:::-;6588:89;6626:6;6588:89;;;;;;;;;;;;;;;;;:11;:19;6600:6;6588:19;;;;;;;;;;;;;;;:33;6608:12;:10;:12::i;:::-;6588:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6557:8;:121::i;:::-;6696:4;6689:11;;6395:313;;;;;:::o;5560:83::-;5601:5;4494:1;5619:16;;5560:83;:::o;6716:103::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6806:5:::1;6788:15;;:23;;;;;;;;;;;;;;;;;;6716:103:::0;:::o;11688:193::-;11754:14;;;;;;;;;;;11738:30;;:12;:10;:12::i;:::-;:30;;;11730:39;;;;;;11780:26;11809:21;11780:50;;11841:32;11854:18;11841:12;:32::i;:::-;11719:162;11688:193::o;5754:138::-;5820:7;5847:37;5867:7;:16;5875:7;5867:16;;;;;;;;;;;;;;;;5847:19;:37::i;:::-;5840:44;;5754:138;;;:::o;2673:148::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2780:1:::1;2743:40;;2764:6;::::0;::::1;;;;;;;;2743:40;;;;;;;;;;;;2811:1;2794:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2673:148::o:0;9444:118::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4092:21:::1;9497:12;:22;;;;4092:21;9530:14;:24;;;;9444:118::o:0;9305:131::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9387:12:::1;;9380:6;:19;9372:28;;;::::0;::::1;;9422:6;9409:12;:19;;;;9305:131:::0;:::o;2459:79::-;2497:7;2524:6;;;;;;;;;;;2517:13;;2459:79;:::o;5465:87::-;5504:13;5537:7;;;;;;;;;;;;;;;;;5530:14;;5465:87;:::o;5900:167::-;5978:4;5995:42;6005:12;:10;:12::i;:::-;6019:9;6030:6;5995:9;:42::i;:::-;6055:4;6048:11;;5900:167;;;;:::o;12100:203::-;12181:14;;;;;;;;;;;12165:30;;:12;:10;:12::i;:::-;:30;;;12157:39;;;;;;12212:6;12207:89;12228:5;:12;12224:1;:16;12207:89;;;12279:5;12262:4;:14;12267:5;12273:1;12267:8;;;;;;;;:::i;:::-;;;;;;;;12262:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;12242:3;;;;;:::i;:::-;;;;12207:89;;;;12100:203;:::o;11486:194::-;11552:14;;;;;;;;;;;11536:30;;:12;:10;:12::i;:::-;:30;;;11528:39;;;;;;11578:23;11604:24;11622:4;11604:9;:24::i;:::-;11578:50;;11639:33;11656:15;11639:16;:33::i;:::-;11517:163;11486:194::o;9673:744::-;2596:12;:10;:12::i;:::-;2586:22;;:6;;;;;;;;;;:22;;;2578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9737:11:::1;;;;;;;;;;;9736:12;9728:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9786:35;9843:42;9786:100;;9915:16;9897:15;;:34;;;;;;;;;;;;;;;;;;9942:58;9959:4;9974:15;;;;;;;;;;;4092:21;9942:8;:58::i;:::-;10045:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10027:56;;;10092:4;10099:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10027:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10011:13;;:112;;;;;;;;;;;;;;;;;;10134:15;;;;;;;;;;;:31;;;10173:21;10204:4;10210:24;10228:4;10210:9;:24::i;:::-;10235:1;10237::::0;10239:7:::1;:5;:7::i;:::-;10247:15;10134:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10292:4;10274:15;;:22;;;;;;;;;;;;;;;;;;10323:4;10309:11;;:18;;;;;;;;;;;;;;;;;;10345:13;;;;;;;;;;;10338:29;;;10376:15;;;;;;;;;;;10394:14;10338:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9717:700;9673:744::o:0;11889:203::-;11971:14;;;;;;;;;;;11955:30;;:12;:10;:12::i;:::-;:30;;;11947:39;;;;;;12002:6;11997:88;12018:5;:12;12014:1;:16;11997:88;;;12069:4;12052;:14;12057:5;12063:1;12057:8;;;;;;;;:::i;:::-;;;;;;;;12052:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12032:3;;;;;:::i;:::-;;;;11997:88;;;;11889:203;:::o;6075:143::-;6156:7;6183:11;:18;6195:5;6183:18;;;;;;;;;;;;;;;:27;6202:7;6183:27;;;;;;;;;;;;;;;;6176:34;;6075:143;;;;:::o;1512:246::-;1570:7;1599:1;1594;:6;1590:47;;;1624:1;1617:8;;;;1590:47;1647:9;1663:1;1659;:5;;;;:::i;:::-;1647:17;;1692:1;1687;1683;:5;;;;:::i;:::-;:10;1675:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1749:1;1742:8;;;1512:246;;;;;:::o;1766:132::-;1824:7;1851:39;1855:1;1858;1851:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1844:46;;1766:132;;;;:::o;177:98::-;230:7;257:10;250:17;;177:98;:::o;7089:335::-;7199:1;7182:19;;:5;:19;;;;7174:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7280:1;7261:21;;:7;:21;;;;7253:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7362:6;7332:11;:18;7344:5;7332:18;;;;;;;;;;;;;;;:27;7351:7;7332:27;;;;;;;;;;;;;;;:36;;;;7400:7;7384:32;;7393:5;7384:32;;;7409:6;7384:32;;;;;;:::i;:::-;;;;;;;;7089:335;;;:::o;7432:1374::-;7536:1;7520:18;;:4;:18;;;;7512:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7613:1;7599:16;;:2;:16;;;;7591:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7683:1;7674:6;:10;7666:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7757:7;:5;:7::i;:::-;7749:15;;:4;:15;;;;:32;;;;;7774:7;:5;:7::i;:::-;7768:13;;:2;:13;;;;7749:32;7745:1011;;;7807:4;:10;7812:4;7807:10;;;;;;;;;;;;;;;;;;;;;;;;;7806:11;:24;;;;;7822:4;:8;7827:2;7822:8;;;;;;;;;;;;;;;;;;;;;;;;;7821:9;7806:24;7798:33;;;;;;7858:1;7846:9;:13;;;;7886:12;;7874:9;:24;;;;7925:13;;;;;;;;;;;7917:21;;:4;:21;;;:55;;;;;7956:15;;;;;;;;;;;7942:30;;:2;:30;;;;7917:55;:83;;;;;7978:18;:22;7997:2;7978:22;;;;;;;;;;;;;;;;;;;;;;;;;7976:24;7917:83;:102;;;;;8004:15;;;;;;;;;;;7917:102;7913:332;;;8087:12;;8077:6;:22;;8069:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8182:14;;8172:6;8156:13;8166:2;8156:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8148:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7913:332;8263:28;8294:24;8312:4;8294:9;:24::i;:::-;8263:55;;8338:6;;;;;;;;;;;8337:7;:32;;;;;8356:13;;;;;;;;;;;8348:21;;:4;:21;;;;8337:32;:47;;;;;8373:11;;;;;;;;;;;8337:47;:73;;;;;8409:1;8388:20;:22;8337:73;8333:344;;;8431:38;8448:20;8431:16;:38::i;:::-;8488:26;8517:21;8488:50;;8581:1;8560:18;:22;8557:105;;;8607:35;8620:21;8607:12;:35::i;:::-;8557:105;8412:265;8333:344;7783:905;7745:1011;;;8717:1;8705:9;:13;;;;8743:1;8731:9;:13;;;;7745:1011;8768:30;8783:4;8788:2;8791:6;8768:14;:30::i;:::-;7432:1374;;;:::o;1314:190::-;1400:7;1433:1;1428;:6;;1436:12;1420:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1460:9;1476:1;1472;:5;;;;:::i;:::-;1460:17;;1495:1;1488:8;;;1314:190;;;;;:::o;6827:254::-;6894:7;6933;;6922;:18;;6914:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6998:19;7021:10;:8;:10::i;:::-;6998:33;;7049:24;7061:11;7049:7;:11;;:24;;;;:::i;:::-;7042:31;;;6827:254;;;:::o;8814:483::-;4951:4;4942:6;;:13;;;;;;;;;;;;;;;;;;8892:21:::1;8930:1;8916:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8892:40;;8961:4;8943;8948:1;8943:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8987:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8977:4;8982:1;8977:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9020:62;9037:4;9052:15;;;;;;;;;;;9070:11;9020:8;:62::i;:::-;9093:15;;;;;;;;;;;:66;;;9174:11;9200:1;9216:4;9243;9263:15;9093:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8881:416;4987:5:::0;4978:6;;:14;;;;;;;;;;;;;;;;;;8814:483;:::o;1906:189::-;1992:7;2024:1;2020;:5;2027:12;2012:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2051:9;2067:1;2063;:5;;;;:::i;:::-;2051:17;;2086:1;2079:8;;;1906:189;;;;;:::o;10425:146::-;10519:44;10537:6;10545:9;10556:6;10519:17;:44::i;:::-;10425:146;;;:::o;13565:163::-;13606:7;13627:15;13644;13663:19;:17;:19::i;:::-;13626:56;;;;13700:20;13712:7;13700;:11;;:20;;;;:::i;:::-;13693:27;;;;13565:163;:::o;10579:487::-;10678:15;10695:23;10720:12;10734:23;10759:12;10773:13;10790:19;10801:7;10790:10;:19::i;:::-;10677:132;;;;;;;;;;;;10838:28;10858:7;10838;:15;10846:6;10838:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10820:7;:15;10828:6;10820:15;;;;;;;;;;;;;;;:46;;;;10898:39;10921:15;10898:7;:18;10906:9;10898:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10877:7;:18;10885:9;10877:18;;;;;;;;;;;;;;;:60;;;;10948:16;10958:5;10948:9;:16::i;:::-;10975:23;10987:4;10993;10975:11;:23::i;:::-;11031:9;11014:44;;11023:6;11014:44;;;11042:15;11014:44;;;;;;:::i;:::-;;;;;;;;10666:400;;;;;;10579:487;;;:::o;13736:256::-;13786:7;13795;13815:15;13833:7;;13815:25;;13851:15;4092:21;13851:25;;13901:20;4092:21;13901:7;;:11;;:20;;;;:::i;:::-;13891:7;:30;13887:61;;;13931:7;;4092:21;13923:25;;;;;;;;13887:61;13967:7;13976;13959:25;;;;;;13736:256;;;:::o;12313:471::-;12372:7;12381;12390;12399;12408;12417;12438:23;12463:12;12477:13;12494:42;12506:7;12515:9;;12526;;12494:11;:42::i;:::-;12437:99;;;;;;12547:19;12570:10;:8;:10::i;:::-;12547:33;;12592:15;12609:23;12634:12;12650:46;12662:7;12671:4;12677:5;12684:11;12650;:46::i;:::-;12591:105;;;;;;12715:7;12724:15;12741:4;12747:15;12764:4;12770:5;12707:69;;;;;;;;;;;;;;;;;;;12313:471;;;;;;;:::o;1170:136::-;1228:7;1255:43;1259:1;1262;1255:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1248:50;;1170:136;;;;:::o;983:179::-;1041:7;1061:9;1077:1;1073;:5;;;;:::i;:::-;1061:17;;1102:1;1097;:6;;1089:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1153:1;1146:8;;;983:179;;;;:::o;11074:212::-;11127:19;11150:10;:8;:10::i;:::-;11127:33;;11171:13;11187:22;11197:11;11187:5;:9;;:22;;;;:::i;:::-;11171:38;;11245:33;11272:5;11245:7;:22;11261:4;11245:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11220:7;:22;11236:4;11220:22;;;;;;;;;;;;;;;:58;;;;11116:170;;11074:212;:::o;11294:147::-;11372:17;11384:4;11372:7;;:11;;:17;;;;:::i;:::-;11362:7;:27;;;;11413:20;11428:4;11413:10;;:14;;:20;;;;:::i;:::-;11400:10;:33;;;;11294:147;;:::o;12792:351::-;12885:7;12894;12903;12923:12;12938:28;12962:3;12938:19;12950:6;12938:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12923:43;;12977:13;12993:29;13018:3;12993:20;13005:7;12993;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12977:45;;13033:23;13059:28;13081:5;13059:17;13071:4;13059:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13033:54;;13106:15;13123:4;13129:5;13098:37;;;;;;;;;12792:351;;;;;;;:::o;13151:409::-;13261:7;13270;13279;13299:15;13317:24;13329:11;13317:7;:11;;:24;;;;:::i;:::-;13299:42;;13352:12;13367:21;13376:11;13367:4;:8;;:21;;;;:::i;:::-;13352:36;;13399:13;13415:22;13425:11;13415:5;:9;;:22;;;;:::i;:::-;13399:38;;13448:23;13474:28;13496:5;13474:17;13486:4;13474:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13448:54;;13521:7;13530:15;13547:4;13513:39;;;;;;;;;;13151:409;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:307::-;1373:1;1383:113;1397:6;1394:1;1391:13;1383:113;;;1482:1;1477:3;1473:11;1467:18;1463:1;1458:3;1454:11;1447:39;1419:2;1416:1;1412:10;1407:15;;1383:113;;;1514:6;1511:1;1508:13;1505:101;;;1594:1;1585:6;1580:3;1576:16;1569:27;1505:101;1354:258;1305:307;;;:::o;1618:102::-;1659:6;1710:2;1706:7;1701:2;1694:5;1690:14;1686:28;1676:38;;1618:102;;;:::o;1726:364::-;1814:3;1842:39;1875:5;1842:39;:::i;:::-;1897:71;1961:6;1956:3;1897:71;:::i;:::-;1890:78;;1977:52;2022:6;2017:3;2010:4;2003:5;1999:16;1977:52;:::i;:::-;2054:29;2076:6;2054:29;:::i;:::-;2049:3;2045:39;2038:46;;1818:272;1726:364;;;;:::o;2096:313::-;2209:4;2247:2;2236:9;2232:18;2224:26;;2296:9;2290:4;2286:20;2282:1;2271:9;2267:17;2260:47;2324:78;2397:4;2388:6;2324:78;:::i;:::-;2316:86;;2096:313;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:323::-;5553:6;5602:2;5590:9;5581:7;5577:23;5573:32;5570:119;;;5608:79;;:::i;:::-;5570:119;5728:1;5753:50;5795:7;5786:6;5775:9;5771:22;5753:50;:::i;:::-;5743:60;;5699:114;5497:323;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:539::-;8894:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:119;;;8949:79;;:::i;:::-;8911:119;9097:1;9086:9;9082:17;9069:31;9127:18;9119:6;9116:30;9113:117;;;9149:79;;:::i;:::-;9113:117;9254:78;9324:7;9315:6;9304:9;9300:22;9254:78;:::i;:::-;9244:88;;9040:302;8810:539;;;;:::o;9355:474::-;9423:6;9431;9480:2;9468:9;9459:7;9455:23;9451:32;9448:119;;;9486:79;;:::i;:::-;9448:119;9606:1;9631:53;9676:7;9667:6;9656:9;9652:22;9631:53;:::i;:::-;9621:63;;9577:117;9733:2;9759:53;9804:7;9795:6;9784:9;9780:22;9759:53;:::i;:::-;9749:63;;9704:118;9355:474;;;;;:::o;9835:182::-;9975:34;9971:1;9963:6;9959:14;9952:58;9835:182;:::o;10023:366::-;10165:3;10186:67;10250:2;10245:3;10186:67;:::i;:::-;10179:74;;10262:93;10351:3;10262:93;:::i;:::-;10380:2;10375:3;10371:12;10364:19;;10023:366;;;:::o;10395:419::-;10561:4;10599:2;10588:9;10584:18;10576:26;;10648:9;10642:4;10638:20;10634:1;10623:9;10619:17;10612:47;10676:131;10802:4;10676:131;:::i;:::-;10668:139;;10395:419;;;:::o;10820:180::-;10868:77;10865:1;10858:88;10965:4;10962:1;10955:15;10989:4;10986:1;10979:15;11006:180;11054:77;11051:1;11044:88;11151:4;11148:1;11141:15;11175:4;11172:1;11165:15;11192:233;11231:3;11254:24;11272:5;11254:24;:::i;:::-;11245:33;;11300:66;11293:5;11290:77;11287:103;;;11370:18;;:::i;:::-;11287:103;11417:1;11410:5;11406:13;11399:20;;11192:233;;;:::o;11431:173::-;11571:25;11567:1;11559:6;11555:14;11548:49;11431:173;:::o;11610:366::-;11752:3;11773:67;11837:2;11832:3;11773:67;:::i;:::-;11766:74;;11849:93;11938:3;11849:93;:::i;:::-;11967:2;11962:3;11958:12;11951:19;;11610:366;;;:::o;11982:419::-;12148:4;12186:2;12175:9;12171:18;12163:26;;12235:9;12229:4;12225:20;12221:1;12210:9;12206:17;12199:47;12263:131;12389:4;12263:131;:::i;:::-;12255:139;;11982:419;;;:::o;12407:143::-;12464:5;12495:6;12489:13;12480:22;;12511:33;12538:5;12511:33;:::i;:::-;12407:143;;;;:::o;12556:351::-;12626:6;12675:2;12663:9;12654:7;12650:23;12646:32;12643:119;;;12681:79;;:::i;:::-;12643:119;12801:1;12826:64;12882:7;12873:6;12862:9;12858:22;12826:64;:::i;:::-;12816:74;;12772:128;12556:351;;;;:::o;12913:332::-;13034:4;13072:2;13061:9;13057:18;13049:26;;13085:71;13153:1;13142:9;13138:17;13129:6;13085:71;:::i;:::-;13166:72;13234:2;13223:9;13219:18;13210:6;13166:72;:::i;:::-;12913:332;;;;;:::o;13251:85::-;13296:7;13325:5;13314:16;;13251:85;;;:::o;13342:60::-;13370:3;13391:5;13384:12;;13342:60;;;:::o;13408:158::-;13466:9;13499:61;13517:42;13526:32;13552:5;13526:32;:::i;:::-;13517:42;:::i;:::-;13499:61;:::i;:::-;13486:74;;13408:158;;;:::o;13572:147::-;13667:45;13706:5;13667:45;:::i;:::-;13662:3;13655:58;13572:147;;:::o;13725:807::-;13974:4;14012:3;14001:9;13997:19;13989:27;;14026:71;14094:1;14083:9;14079:17;14070:6;14026:71;:::i;:::-;14107:72;14175:2;14164:9;14160:18;14151:6;14107:72;:::i;:::-;14189:80;14265:2;14254:9;14250:18;14241:6;14189:80;:::i;:::-;14279;14355:2;14344:9;14340:18;14331:6;14279:80;:::i;:::-;14369:73;14437:3;14426:9;14422:19;14413:6;14369:73;:::i;:::-;14452;14520:3;14509:9;14505:19;14496:6;14452:73;:::i;:::-;13725:807;;;;;;;;;:::o;14538:143::-;14595:5;14626:6;14620:13;14611:22;;14642:33;14669:5;14642:33;:::i;:::-;14538:143;;;;:::o;14687:663::-;14775:6;14783;14791;14840:2;14828:9;14819:7;14815:23;14811:32;14808:119;;;14846:79;;:::i;:::-;14808:119;14966:1;14991:64;15047:7;15038:6;15027:9;15023:22;14991:64;:::i;:::-;14981:74;;14937:128;15104:2;15130:64;15186:7;15177:6;15166:9;15162:22;15130:64;:::i;:::-;15120:74;;15075:129;15243:2;15269:64;15325:7;15316:6;15305:9;15301:22;15269:64;:::i;:::-;15259:74;;15214:129;14687:663;;;;;:::o;15356:332::-;15477:4;15515:2;15504:9;15500:18;15492:26;;15528:71;15596:1;15585:9;15581:17;15572:6;15528:71;:::i;:::-;15609:72;15677:2;15666:9;15662:18;15653:6;15609:72;:::i;:::-;15356:332;;;;;:::o;15694:137::-;15748:5;15779:6;15773:13;15764:22;;15795:30;15819:5;15795:30;:::i;:::-;15694:137;;;;:::o;15837:345::-;15904:6;15953:2;15941:9;15932:7;15928:23;15924:32;15921:119;;;15959:79;;:::i;:::-;15921:119;16079:1;16104:61;16157:7;16148:6;16137:9;16133:22;16104:61;:::i;:::-;16094:71;;16050:125;15837:345;;;;:::o;16188:348::-;16228:7;16251:20;16269:1;16251:20;:::i;:::-;16246:25;;16285:20;16303:1;16285:20;:::i;:::-;16280:25;;16473:1;16405:66;16401:74;16398:1;16395:81;16390:1;16383:9;16376:17;16372:105;16369:131;;;16480:18;;:::i;:::-;16369:131;16528:1;16525;16521:9;16510:20;;16188:348;;;;:::o;16542:180::-;16590:77;16587:1;16580:88;16687:4;16684:1;16677:15;16711:4;16708:1;16701:15;16728:185;16768:1;16785:20;16803:1;16785:20;:::i;:::-;16780:25;;16819:20;16837:1;16819:20;:::i;:::-;16814:25;;16858:1;16848:35;;16863:18;;:::i;:::-;16848:35;16905:1;16902;16898:9;16893:14;;16728:185;;;;:::o;16919:220::-;17059:34;17055:1;17047:6;17043:14;17036:58;17128:3;17123:2;17115:6;17111:15;17104:28;16919:220;:::o;17145:366::-;17287:3;17308:67;17372:2;17367:3;17308:67;:::i;:::-;17301:74;;17384:93;17473:3;17384:93;:::i;:::-;17502:2;17497:3;17493:12;17486:19;;17145:366;;;:::o;17517:419::-;17683:4;17721:2;17710:9;17706:18;17698:26;;17770:9;17764:4;17760:20;17756:1;17745:9;17741:17;17734:47;17798:131;17924:4;17798:131;:::i;:::-;17790:139;;17517:419;;;:::o;17942:223::-;18082:34;18078:1;18070:6;18066:14;18059:58;18151:6;18146:2;18138:6;18134:15;18127:31;17942:223;:::o;18171:366::-;18313:3;18334:67;18398:2;18393:3;18334:67;:::i;:::-;18327:74;;18410:93;18499:3;18410:93;:::i;:::-;18528:2;18523:3;18519:12;18512:19;;18171:366;;;:::o;18543:419::-;18709:4;18747:2;18736:9;18732:18;18724:26;;18796:9;18790:4;18786:20;18782:1;18771:9;18767:17;18760:47;18824:131;18950:4;18824:131;:::i;:::-;18816:139;;18543:419;;;:::o;18968:221::-;19108:34;19104:1;19096:6;19092:14;19085:58;19177:4;19172:2;19164:6;19160:15;19153:29;18968:221;:::o;19195:366::-;19337:3;19358:67;19422:2;19417:3;19358:67;:::i;:::-;19351:74;;19434:93;19523:3;19434:93;:::i;:::-;19552:2;19547:3;19543:12;19536:19;;19195:366;;;:::o;19567:419::-;19733:4;19771:2;19760:9;19756:18;19748:26;;19820:9;19814:4;19810:20;19806:1;19795:9;19791:17;19784:47;19848:131;19974:4;19848:131;:::i;:::-;19840:139;;19567:419;;;:::o;19992:224::-;20132:34;20128:1;20120:6;20116:14;20109:58;20201:7;20196:2;20188:6;20184:15;20177:32;19992:224;:::o;20222:366::-;20364:3;20385:67;20449:2;20444:3;20385:67;:::i;:::-;20378:74;;20461:93;20550:3;20461:93;:::i;:::-;20579:2;20574:3;20570:12;20563:19;;20222:366;;;:::o;20594:419::-;20760:4;20798:2;20787:9;20783:18;20775:26;;20847:9;20841:4;20837:20;20833:1;20822:9;20818:17;20811:47;20875:131;21001:4;20875:131;:::i;:::-;20867:139;;20594:419;;;:::o;21019:222::-;21159:34;21155:1;21147:6;21143:14;21136:58;21228:5;21223:2;21215:6;21211:15;21204:30;21019:222;:::o;21247:366::-;21389:3;21410:67;21474:2;21469:3;21410:67;:::i;:::-;21403:74;;21486:93;21575:3;21486:93;:::i;:::-;21604:2;21599:3;21595:12;21588:19;;21247:366;;;:::o;21619:419::-;21785:4;21823:2;21812:9;21808:18;21800:26;;21872:9;21866:4;21862:20;21858:1;21847:9;21843:17;21836:47;21900:131;22026:4;21900:131;:::i;:::-;21892:139;;21619:419;;;:::o;22044:228::-;22184:34;22180:1;22172:6;22168:14;22161:58;22253:11;22248:2;22240:6;22236:15;22229:36;22044:228;:::o;22278:366::-;22420:3;22441:67;22505:2;22500:3;22441:67;:::i;:::-;22434:74;;22517:93;22606:3;22517:93;:::i;:::-;22635:2;22630:3;22626:12;22619:19;;22278:366;;;:::o;22650:419::-;22816:4;22854:2;22843:9;22839:18;22831:26;;22903:9;22897:4;22893:20;22889:1;22878:9;22874:17;22867:47;22931:131;23057:4;22931:131;:::i;:::-;22923:139;;22650:419;;;:::o;23075:175::-;23215:27;23211:1;23203:6;23199:14;23192:51;23075:175;:::o;23256:366::-;23398:3;23419:67;23483:2;23478:3;23419:67;:::i;:::-;23412:74;;23495:93;23584:3;23495:93;:::i;:::-;23613:2;23608:3;23604:12;23597:19;;23256:366;;;:::o;23628:419::-;23794:4;23832:2;23821:9;23817:18;23809:26;;23881:9;23875:4;23871:20;23867:1;23856:9;23852:17;23845:47;23909:131;24035:4;23909:131;:::i;:::-;23901:139;;23628:419;;;:::o;24053:305::-;24093:3;24112:20;24130:1;24112:20;:::i;:::-;24107:25;;24146:20;24164:1;24146:20;:::i;:::-;24141:25;;24300:1;24232:66;24228:74;24225:1;24222:81;24219:107;;;24306:18;;:::i;:::-;24219:107;24350:1;24347;24343:9;24336:16;;24053:305;;;;:::o;24364:176::-;24504:28;24500:1;24492:6;24488:14;24481:52;24364:176;:::o;24546:366::-;24688:3;24709:67;24773:2;24768:3;24709:67;:::i;:::-;24702:74;;24785:93;24874:3;24785:93;:::i;:::-;24903:2;24898:3;24894:12;24887:19;;24546:366;;;:::o;24918:419::-;25084:4;25122:2;25111:9;25107:18;25099:26;;25171:9;25165:4;25161:20;25157:1;25146:9;25142:17;25135:47;25199:131;25325:4;25199:131;:::i;:::-;25191:139;;24918:419;;;:::o;25343:191::-;25383:4;25403:20;25421:1;25403:20;:::i;:::-;25398:25;;25437:20;25455:1;25437:20;:::i;:::-;25432:25;;25476:1;25473;25470:8;25467:34;;;25481:18;;:::i;:::-;25467:34;25526:1;25523;25519:9;25511:17;;25343:191;;;;:::o;25540:229::-;25680:34;25676:1;25668:6;25664:14;25657:58;25749:12;25744:2;25736:6;25732:15;25725:37;25540:229;:::o;25775:366::-;25917:3;25938:67;26002:2;25997:3;25938:67;:::i;:::-;25931:74;;26014:93;26103:3;26014:93;:::i;:::-;26132:2;26127:3;26123:12;26116:19;;25775:366;;;:::o;26147:419::-;26313:4;26351:2;26340:9;26336:18;26328:26;;26400:9;26394:4;26390:20;26386:1;26375:9;26371:17;26364:47;26428:131;26554:4;26428:131;:::i;:::-;26420:139;;26147:419;;;:::o;26572:114::-;26639:6;26673:5;26667:12;26657:22;;26572:114;;;:::o;26692:184::-;26791:11;26825:6;26820:3;26813:19;26865:4;26860:3;26856:14;26841:29;;26692:184;;;;:::o;26882:132::-;26949:4;26972:3;26964:11;;27002:4;26997:3;26993:14;26985:22;;26882:132;;;:::o;27020:108::-;27097:24;27115:5;27097:24;:::i;:::-;27092:3;27085:37;27020:108;;:::o;27134:179::-;27203:10;27224:46;27266:3;27258:6;27224:46;:::i;:::-;27302:4;27297:3;27293:14;27279:28;;27134:179;;;;:::o;27319:113::-;27389:4;27421;27416:3;27412:14;27404:22;;27319:113;;;:::o;27468:732::-;27587:3;27616:54;27664:5;27616:54;:::i;:::-;27686:86;27765:6;27760:3;27686:86;:::i;:::-;27679:93;;27796:56;27846:5;27796:56;:::i;:::-;27875:7;27906:1;27891:284;27916:6;27913:1;27910:13;27891:284;;;27992:6;27986:13;28019:63;28078:3;28063:13;28019:63;:::i;:::-;28012:70;;28105:60;28158:6;28105:60;:::i;:::-;28095:70;;27951:224;27938:1;27935;27931:9;27926:14;;27891:284;;;27895:14;28191:3;28184:10;;27592:608;;;27468:732;;;;:::o;28206:831::-;28469:4;28507:3;28496:9;28492:19;28484:27;;28521:71;28589:1;28578:9;28574:17;28565:6;28521:71;:::i;:::-;28602:80;28678:2;28667:9;28663:18;28654:6;28602:80;:::i;:::-;28729:9;28723:4;28719:20;28714:2;28703:9;28699:18;28692:48;28757:108;28860:4;28851:6;28757:108;:::i;:::-;28749:116;;28875:72;28943:2;28932:9;28928:18;28919:6;28875:72;:::i;:::-;28957:73;29025:3;29014:9;29010:19;29001:6;28957:73;:::i;:::-;28206:831;;;;;;;;:::o;29043:177::-;29183:29;29179:1;29171:6;29167:14;29160:53;29043:177;:::o;29226:366::-;29368:3;29389:67;29453:2;29448:3;29389:67;:::i;:::-;29382:74;;29465:93;29554:3;29465:93;:::i;:::-;29583:2;29578:3;29574:12;29567:19;;29226:366;;;:::o;29598:419::-;29764:4;29802:2;29791:9;29787:18;29779:26;;29851:9;29845:4;29841:20;29837:1;29826:9;29822:17;29815:47;29879:131;30005:4;29879:131;:::i;:::-;29871:139;;29598:419;;;:::o

Swarm Source

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