ETH Price: $2,370.60 (-3.46%)

Token

Cockapoo Inu (COCKAPOO)
 

Overview

Max Total Supply

100,000,000,000 COCKAPOO

Holders

52

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
490,000,000 COCKAPOO

Value
$0.00
0x76af5ca14a383fadbdcc152e9692179729e232f6
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:
CockapooInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-02
*/

/**

    🐩Cockapoo Inu 🐩
    Welcome to Cockapoo Inu (A cockapoo also known as a spoodle or cockerdoodle portmanteaux 
    of cocker spaniel and poodle is a dog crossbreed bred from a cocker Spaniel and a poodle 🐩 

    OFFICIAL COCKAPOO COMMUNITY TG: https://t.me/CockapooInu

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract CockapooInu is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Cockapoo Inu";//
    string private constant _symbol = "COCKAPOO";//
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
 
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 2;
 
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => uint256) private cooldown;
 
    address payable private _developmentAddress = payable(0x22671654099584dfBC9e4A9b056E07FfC42F9c9d);
    address payable private _marketingAddress = payable(0x22671654099584dfBC9e4A9b056E07FfC42F9c9d); 
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 500000000 * 10**9; // 0.5% max TX
    uint256 public _maxWalletSize = 1500000000 * 10**9; // 1.5% max wallet
    uint256 public _swapTokensAtAmount = 100000000 * 10**9; 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function 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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function setTrading() public onlyOwner {
        tradingOpen = true;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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);
    }
 
    function setFee(uint256 taxFeeOnSell) public onlyOwner {
        require(taxFeeOnSell < 10, "Tax fee cannot be more than 10%");
        _taxFeeOnSell = taxFeeOnSell;
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268056bc75e2d631000006000196200001d919062000854565b6000196200002c9190620007db565b600655600060085560026009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f557322671654099584dfbc9e4a9b056e07ffc42f9c9d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507322671654099584dfbc9e4a9b056e07ffc42f9c9d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055506706f05b59d3b200006015556714d1120d7b16000060165567016345785d8a00006017553480156200018657600080fd5b50600062000199620006f560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024e620006f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032d57600080fd5b505afa15801562000342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036891906200073d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003cb57600080fd5b505afa158015620003e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040691906200073d565b6040518363ffffffff1660e01b81526004016200042592919062000791565b602060405180830381600087803b1580156200044057600080fd5b505af115801562000455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047b91906200073d565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d1620006fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067e620006f560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620006e69190620007be565b60405180910390a35062000909565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200073781620008ef565b92915050565b600060208284031215620007565762000755620008ea565b5b6000620007668482850162000726565b91505092915050565b6200077a8162000816565b82525050565b6200078b816200084a565b82525050565b6000604082019050620007a860008301856200076f565b620007b760208301846200076f565b9392505050565b6000602082019050620007d5600083018462000780565b92915050565b6000620007e8826200084a565b9150620007f5836200084a565b9250828210156200080b576200080a6200088c565b5b828203905092915050565b600062000823826200082a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000861826200084a565b91506200086e836200084a565b925082620008815762000880620008bb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008fa8162000816565b81146200090657600080fd5b50565b61381e80620009196000396000f3fe6080604052600436106101855760003560e01c806374010ece116100d157806398a5c3151161008a578063c492f04611610064578063c492f04614610533578063dd62ed3e1461055c578063ea1644d514610599578063f2fde38b146105c25761018c565b806398a5c315146104b6578063a9059cbb146104df578063c3c8cd801461051c5761018c565b806374010ece146103ca5780637c519ffb146103f35780637d1db4a51461040a5780638da5cb5b146104355780638f9a55c01461046057806395d89b411461048b5761018c565b8063313ce5671161013e5780636d8aa8f8116101185780636d8aa8f8146103365780636fc3eaec1461035f57806370a0823114610376578063715018a6146103b35761018c565b8063313ce567146102b757806349bd5a5e146102e257806369fe0e2d1461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105eb565b6040516101b39190612de6565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612999565b610628565b6040516101f09190612db0565b60405180910390f35b34801561020557600080fd5b5061020e610646565b60405161021b9190612dcb565b60405180910390f35b34801561023057600080fd5b5061023961066c565b6040516102469190612fc8565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612946565b61067d565b6040516102839190612db0565b60405180910390f35b34801561029857600080fd5b506102a1610756565b6040516102ae9190612fc8565b60405180910390f35b3480156102c357600080fd5b506102cc61075c565b6040516102d9919061303d565b60405180910390f35b3480156102ee57600080fd5b506102f7610765565b6040516103049190612d95565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612a66565b61078b565b005b34801561034257600080fd5b5061035d60048036038101906103589190612a39565b61086d565b005b34801561036b57600080fd5b5061037461091f565b005b34801561038257600080fd5b5061039d600480360381019061039891906128ac565b6109f0565b6040516103aa9190612fc8565b60405180910390f35b3480156103bf57600080fd5b506103c8610a41565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612a66565b610b94565b005b3480156103ff57600080fd5b50610408610c33565b005b34801561041657600080fd5b5061041f610ce4565b60405161042c9190612fc8565b60405180910390f35b34801561044157600080fd5b5061044a610cea565b6040516104579190612d95565b60405180910390f35b34801561046c57600080fd5b50610475610d13565b6040516104829190612fc8565b60405180910390f35b34801561049757600080fd5b506104a0610d19565b6040516104ad9190612de6565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612a66565b610d56565b005b3480156104eb57600080fd5b5061050660048036038101906105019190612999565b610df5565b6040516105139190612db0565b60405180910390f35b34801561052857600080fd5b50610531610e13565b005b34801561053f57600080fd5b5061055a600480360381019061055591906129d9565b610eec565b005b34801561056857600080fd5b50610583600480360381019061057e9190612906565b611026565b6040516105909190612fc8565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190612a66565b6110ad565b005b3480156105ce57600080fd5b506105e960048036038101906105e491906128ac565b61114c565b005b60606040518060400160405280600c81526020017f436f636b61706f6f20496e750000000000000000000000000000000000000000815250905090565b600061063c61063561130e565b8484611316565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061068a8484846114e1565b61074b8461069661130e565b610746856040518060600160405280602881526020016137c160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fc61130e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c839092919063ffffffff16565b611316565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079361130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612f28565b60405180910390fd5b600a8110610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e28565b60405180910390fd5b80600b8190555050565b61087561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990612f28565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096061130e565b73ffffffffffffffffffffffffffffffffffffffff1614806109d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109be61130e565b73ffffffffffffffffffffffffffffffffffffffff16145b6109df57600080fd5b60004790506109ed81611ce7565b50565b6000610a3a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de2565b9050919050565b610a4961130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9c61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612f28565b60405180910390fd5b8060158190555050565b610c3b61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612f28565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600881526020017f434f434b41504f4f000000000000000000000000000000000000000000000000815250905090565b610d5e61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290612f28565b60405180910390fd5b8060178190555050565b6000610e09610e0261130e565b84846114e1565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5461130e565b73ffffffffffffffffffffffffffffffffffffffff161480610eca5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb261130e565b73ffffffffffffffffffffffffffffffffffffffff16145b610ed357600080fd5b6000610ede306109f0565b9050610ee981611e50565b50565b610ef461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890612f28565b60405180910390fd5b60005b83839050811015611020578160056000868685818110610fa757610fa6613339565b5b9050602002016020810190610fbc91906128ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101890613292565b915050610f84565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110b561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990612f28565b60405180910390fd5b8060168190555050565b61115461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612ea8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612ec8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d49190612fc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612f68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e08565b60405180910390fd5b60008111611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f48565b60405180910390fd5b61160c610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561167a575061164a610cea565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119825760148054906101000a900460ff1661170757611699610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612e48565b60405180910390fd5b5b60155481111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612e88565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117f957601654816117ae846109f0565b6117b891906130ad565b106117f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ef90612f88565b60405180910390fd5b5b6000611804306109f0565b905060006017548210159050601554821061181f5760155491505b8080156118395750601460159054906101000a900460ff16155b80156118935750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118ab5750601460169054906101000a900460ff165b80156119015750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119575750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561197f5761196582611e50565b6000479050600081111561197d5761197c47611ce7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a295750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611adc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611adb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611aea5760009050611c71565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bad57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c7057600a54600c81905550600b54600d819055505b5b611c7d848484846120d8565b50505050565b6000838311158290611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc29190612de6565b60405180910390fd5b5060008385611cda919061318e565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d3760028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d62573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611db360028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dde573d6000803e3d6000fd5b5050565b6000600654821115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090612e68565b60405180910390fd5b6000611e3361214f565b9050611e48818461210590919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e8857611e87613368565b5b604051908082528060200260200182016040528015611eb65781602001602082028036833780820191505090505b5090503081600081518110611ece57611ecd613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7057600080fd5b505afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa891906128d9565b81600181518110611fbc57611fbb613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611316565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612087959493929190612fe3565b600060405180830381600087803b1580156120a157600080fd5b505af11580156120b5573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120e6576120e561217a565b5b6120f18484846121bd565b806120ff576120fe612388565b5b50505050565b600061214783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061239c565b905092915050565b600080600061215c6123ff565b91509150612173818361210590919063ffffffff16565b9250505090565b6000600c5414801561218e57506000600d54145b15612198576121bb565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121cf87612461565b95509550955095509550955061222d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230e81612571565b612318848361262e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123759190612fc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da9190612de6565b60405180910390fd5b50600083856123f29190613103565b9050809150509392505050565b60008060006006549050600068056bc75e2d63100000905061243568056bc75e2d6310000060065461210590919063ffffffff16565b8210156124545760065468056bc75e2d6310000093509350505061245d565b81819350935050505b9091565b600080600080600080600080600061247e8a600c54600d54612668565b925092509250600061248e61214f565b905060008060006124a18e8787876126fe565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061250b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c83565b905092915050565b600080828461252291906130ad565b905083811015612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e90612ee8565b60405180910390fd5b8091505092915050565b600061257b61214f565b90506000612592828461278790919063ffffffff16565b90506125e681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612643826006546124c990919063ffffffff16565b60068190555061265e8160075461251390919063ffffffff16565b6007819055505050565b6000806000806126946064612686888a61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126be60646126b0888b61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126e7826126d9858c6124c990919063ffffffff16565b6124c990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612717858961278790919063ffffffff16565b9050600061272e868961278790919063ffffffff16565b90506000612745878961278790919063ffffffff16565b9050600061276e8261276085876124c990919063ffffffff16565b6124c990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561279a57600090506127fc565b600082846127a89190613134565b90508284826127b79190613103565b146127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90612f08565b60405180910390fd5b809150505b92915050565b6000813590506128118161377b565b92915050565b6000815190506128268161377b565b92915050565b60008083601f8401126128425761284161339c565b5b8235905067ffffffffffffffff81111561285f5761285e613397565b5b60208301915083602082028301111561287b5761287a6133a1565b5b9250929050565b60008135905061289181613792565b92915050565b6000813590506128a6816137a9565b92915050565b6000602082840312156128c2576128c16133ab565b5b60006128d084828501612802565b91505092915050565b6000602082840312156128ef576128ee6133ab565b5b60006128fd84828501612817565b91505092915050565b6000806040838503121561291d5761291c6133ab565b5b600061292b85828601612802565b925050602061293c85828601612802565b9150509250929050565b60008060006060848603121561295f5761295e6133ab565b5b600061296d86828701612802565b935050602061297e86828701612802565b925050604061298f86828701612897565b9150509250925092565b600080604083850312156129b0576129af6133ab565b5b60006129be85828601612802565b92505060206129cf85828601612897565b9150509250929050565b6000806000604084860312156129f2576129f16133ab565b5b600084013567ffffffffffffffff811115612a1057612a0f6133a6565b5b612a1c8682870161282c565b93509350506020612a2f86828701612882565b9150509250925092565b600060208284031215612a4f57612a4e6133ab565b5b6000612a5d84828501612882565b91505092915050565b600060208284031215612a7c57612a7b6133ab565b5b6000612a8a84828501612897565b91505092915050565b6000612a9f8383612aab565b60208301905092915050565b612ab4816131c2565b82525050565b612ac3816131c2565b82525050565b6000612ad482613068565b612ade818561308b565b9350612ae983613058565b8060005b83811015612b1a578151612b018882612a93565b9750612b0c8361307e565b925050600181019050612aed565b5085935050505092915050565b612b30816131d4565b82525050565b612b3f81613217565b82525050565b612b4e81613229565b82525050565b6000612b5f82613073565b612b69818561309c565b9350612b7981856020860161325f565b612b82816133b0565b840191505092915050565b6000612b9a60238361309c565b9150612ba5826133c1565b604082019050919050565b6000612bbd601f8361309c565b9150612bc882613410565b602082019050919050565b6000612be0603f8361309c565b9150612beb82613439565b604082019050919050565b6000612c03602a8361309c565b9150612c0e82613488565b604082019050919050565b6000612c26601c8361309c565b9150612c31826134d7565b602082019050919050565b6000612c4960268361309c565b9150612c5482613500565b604082019050919050565b6000612c6c60228361309c565b9150612c778261354f565b604082019050919050565b6000612c8f601b8361309c565b9150612c9a8261359e565b602082019050919050565b6000612cb260218361309c565b9150612cbd826135c7565b604082019050919050565b6000612cd560208361309c565b9150612ce082613616565b602082019050919050565b6000612cf860298361309c565b9150612d038261363f565b604082019050919050565b6000612d1b60258361309c565b9150612d268261368e565b604082019050919050565b6000612d3e60238361309c565b9150612d49826136dd565b604082019050919050565b6000612d6160248361309c565b9150612d6c8261372c565b604082019050919050565b612d8081613200565b82525050565b612d8f8161320a565b82525050565b6000602082019050612daa6000830184612aba565b92915050565b6000602082019050612dc56000830184612b27565b92915050565b6000602082019050612de06000830184612b36565b92915050565b60006020820190508181036000830152612e008184612b54565b905092915050565b60006020820190508181036000830152612e2181612b8d565b9050919050565b60006020820190508181036000830152612e4181612bb0565b9050919050565b60006020820190508181036000830152612e6181612bd3565b9050919050565b60006020820190508181036000830152612e8181612bf6565b9050919050565b60006020820190508181036000830152612ea181612c19565b9050919050565b60006020820190508181036000830152612ec181612c3c565b9050919050565b60006020820190508181036000830152612ee181612c5f565b9050919050565b60006020820190508181036000830152612f0181612c82565b9050919050565b60006020820190508181036000830152612f2181612ca5565b9050919050565b60006020820190508181036000830152612f4181612cc8565b9050919050565b60006020820190508181036000830152612f6181612ceb565b9050919050565b60006020820190508181036000830152612f8181612d0e565b9050919050565b60006020820190508181036000830152612fa181612d31565b9050919050565b60006020820190508181036000830152612fc181612d54565b9050919050565b6000602082019050612fdd6000830184612d77565b92915050565b600060a082019050612ff86000830188612d77565b6130056020830187612b45565b81810360408301526130178186612ac9565b90506130266060830185612aba565b6130336080830184612d77565b9695505050505050565b60006020820190506130526000830184612d86565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130b882613200565b91506130c383613200565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f8576130f76132db565b5b828201905092915050565b600061310e82613200565b915061311983613200565b9250826131295761312861330a565b5b828204905092915050565b600061313f82613200565b915061314a83613200565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613183576131826132db565b5b828202905092915050565b600061319982613200565b91506131a483613200565b9250828210156131b7576131b66132db565b5b828203905092915050565b60006131cd826131e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132228261323b565b9050919050565b600061323482613200565b9050919050565b60006132468261324d565b9050919050565b6000613258826131e0565b9050919050565b60005b8381101561327d578082015181840152602081019050613262565b8381111561328c576000848401525b50505050565b600061329d82613200565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132d0576132cf6132db565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f546178206665652063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613784816131c2565b811461378f57600080fd5b50565b61379b816131d4565b81146137a657600080fd5b50565b6137b281613200565b81146137bd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3529595867424a0ce10d1ebac01a0b066a10866f5aecdccebd472dc978c44a364736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806374010ece116100d157806398a5c3151161008a578063c492f04611610064578063c492f04614610533578063dd62ed3e1461055c578063ea1644d514610599578063f2fde38b146105c25761018c565b806398a5c315146104b6578063a9059cbb146104df578063c3c8cd801461051c5761018c565b806374010ece146103ca5780637c519ffb146103f35780637d1db4a51461040a5780638da5cb5b146104355780638f9a55c01461046057806395d89b411461048b5761018c565b8063313ce5671161013e5780636d8aa8f8116101185780636d8aa8f8146103365780636fc3eaec1461035f57806370a0823114610376578063715018a6146103b35761018c565b8063313ce567146102b757806349bd5a5e146102e257806369fe0e2d1461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105eb565b6040516101b39190612de6565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612999565b610628565b6040516101f09190612db0565b60405180910390f35b34801561020557600080fd5b5061020e610646565b60405161021b9190612dcb565b60405180910390f35b34801561023057600080fd5b5061023961066c565b6040516102469190612fc8565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612946565b61067d565b6040516102839190612db0565b60405180910390f35b34801561029857600080fd5b506102a1610756565b6040516102ae9190612fc8565b60405180910390f35b3480156102c357600080fd5b506102cc61075c565b6040516102d9919061303d565b60405180910390f35b3480156102ee57600080fd5b506102f7610765565b6040516103049190612d95565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612a66565b61078b565b005b34801561034257600080fd5b5061035d60048036038101906103589190612a39565b61086d565b005b34801561036b57600080fd5b5061037461091f565b005b34801561038257600080fd5b5061039d600480360381019061039891906128ac565b6109f0565b6040516103aa9190612fc8565b60405180910390f35b3480156103bf57600080fd5b506103c8610a41565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612a66565b610b94565b005b3480156103ff57600080fd5b50610408610c33565b005b34801561041657600080fd5b5061041f610ce4565b60405161042c9190612fc8565b60405180910390f35b34801561044157600080fd5b5061044a610cea565b6040516104579190612d95565b60405180910390f35b34801561046c57600080fd5b50610475610d13565b6040516104829190612fc8565b60405180910390f35b34801561049757600080fd5b506104a0610d19565b6040516104ad9190612de6565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612a66565b610d56565b005b3480156104eb57600080fd5b5061050660048036038101906105019190612999565b610df5565b6040516105139190612db0565b60405180910390f35b34801561052857600080fd5b50610531610e13565b005b34801561053f57600080fd5b5061055a600480360381019061055591906129d9565b610eec565b005b34801561056857600080fd5b50610583600480360381019061057e9190612906565b611026565b6040516105909190612fc8565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190612a66565b6110ad565b005b3480156105ce57600080fd5b506105e960048036038101906105e491906128ac565b61114c565b005b60606040518060400160405280600c81526020017f436f636b61706f6f20496e750000000000000000000000000000000000000000815250905090565b600061063c61063561130e565b8484611316565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061068a8484846114e1565b61074b8461069661130e565b610746856040518060600160405280602881526020016137c160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fc61130e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c839092919063ffffffff16565b611316565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61079361130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612f28565b60405180910390fd5b600a8110610863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085a90612e28565b60405180910390fd5b80600b8190555050565b61087561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f990612f28565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096061130e565b73ffffffffffffffffffffffffffffffffffffffff1614806109d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109be61130e565b73ffffffffffffffffffffffffffffffffffffffff16145b6109df57600080fd5b60004790506109ed81611ce7565b50565b6000610a3a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de2565b9050919050565b610a4961130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd90612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9c61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612f28565b60405180910390fd5b8060158190555050565b610c3b61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612f28565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600881526020017f434f434b41504f4f000000000000000000000000000000000000000000000000815250905090565b610d5e61130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290612f28565b60405180910390fd5b8060178190555050565b6000610e09610e0261130e565b84846114e1565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5461130e565b73ffffffffffffffffffffffffffffffffffffffff161480610eca5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eb261130e565b73ffffffffffffffffffffffffffffffffffffffff16145b610ed357600080fd5b6000610ede306109f0565b9050610ee981611e50565b50565b610ef461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890612f28565b60405180910390fd5b60005b83839050811015611020578160056000868685818110610fa757610fa6613339565b5b9050602002016020810190610fbc91906128ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101890613292565b915050610f84565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110b561130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990612f28565b60405180910390fd5b8060168190555050565b61115461130e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612f28565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890612ea8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612fa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ed90612ec8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d49190612fc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612f68565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e08565b60405180910390fd5b60008111611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90612f48565b60405180910390fd5b61160c610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561167a575061164a610cea565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119825760148054906101000a900460ff1661170757611699610cea565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612e48565b60405180910390fd5b5b60155481111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612e88565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117f957601654816117ae846109f0565b6117b891906130ad565b106117f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ef90612f88565b60405180910390fd5b5b6000611804306109f0565b905060006017548210159050601554821061181f5760155491505b8080156118395750601460159054906101000a900460ff16155b80156118935750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118ab5750601460169054906101000a900460ff165b80156119015750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119575750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561197f5761196582611e50565b6000479050600081111561197d5761197c47611ce7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a295750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611adc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611adb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611aea5760009050611c71565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bad57600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c7057600a54600c81905550600b54600d819055505b5b611c7d848484846120d8565b50505050565b6000838311158290611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc29190612de6565b60405180910390fd5b5060008385611cda919061318e565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d3760028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d62573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611db360028461210590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dde573d6000803e3d6000fd5b5050565b6000600654821115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090612e68565b60405180910390fd5b6000611e3361214f565b9050611e48818461210590919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e8857611e87613368565b5b604051908082528060200260200182016040528015611eb65781602001602082028036833780820191505090505b5090503081600081518110611ece57611ecd613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7057600080fd5b505afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa891906128d9565b81600181518110611fbc57611fbb613339565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611316565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612087959493929190612fe3565b600060405180830381600087803b1580156120a157600080fd5b505af11580156120b5573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120e6576120e561217a565b5b6120f18484846121bd565b806120ff576120fe612388565b5b50505050565b600061214783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061239c565b905092915050565b600080600061215c6123ff565b91509150612173818361210590919063ffffffff16565b9250505090565b6000600c5414801561218e57506000600d54145b15612198576121bb565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806121cf87612461565b95509550955095509550955061222d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230e81612571565b612318848361262e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123759190612fc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080831182906123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da9190612de6565b60405180910390fd5b50600083856123f29190613103565b9050809150509392505050565b60008060006006549050600068056bc75e2d63100000905061243568056bc75e2d6310000060065461210590919063ffffffff16565b8210156124545760065468056bc75e2d6310000093509350505061245d565b81819350935050505b9091565b600080600080600080600080600061247e8a600c54600d54612668565b925092509250600061248e61214f565b905060008060006124a18e8787876126fe565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061250b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c83565b905092915050565b600080828461252291906130ad565b905083811015612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e90612ee8565b60405180910390fd5b8091505092915050565b600061257b61214f565b90506000612592828461278790919063ffffffff16565b90506125e681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461251390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612643826006546124c990919063ffffffff16565b60068190555061265e8160075461251390919063ffffffff16565b6007819055505050565b6000806000806126946064612686888a61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126be60646126b0888b61278790919063ffffffff16565b61210590919063ffffffff16565b905060006126e7826126d9858c6124c990919063ffffffff16565b6124c990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612717858961278790919063ffffffff16565b9050600061272e868961278790919063ffffffff16565b90506000612745878961278790919063ffffffff16565b9050600061276e8261276085876124c990919063ffffffff16565b6124c990919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561279a57600090506127fc565b600082846127a89190613134565b90508284826127b79190613103565b146127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90612f08565b60405180910390fd5b809150505b92915050565b6000813590506128118161377b565b92915050565b6000815190506128268161377b565b92915050565b60008083601f8401126128425761284161339c565b5b8235905067ffffffffffffffff81111561285f5761285e613397565b5b60208301915083602082028301111561287b5761287a6133a1565b5b9250929050565b60008135905061289181613792565b92915050565b6000813590506128a6816137a9565b92915050565b6000602082840312156128c2576128c16133ab565b5b60006128d084828501612802565b91505092915050565b6000602082840312156128ef576128ee6133ab565b5b60006128fd84828501612817565b91505092915050565b6000806040838503121561291d5761291c6133ab565b5b600061292b85828601612802565b925050602061293c85828601612802565b9150509250929050565b60008060006060848603121561295f5761295e6133ab565b5b600061296d86828701612802565b935050602061297e86828701612802565b925050604061298f86828701612897565b9150509250925092565b600080604083850312156129b0576129af6133ab565b5b60006129be85828601612802565b92505060206129cf85828601612897565b9150509250929050565b6000806000604084860312156129f2576129f16133ab565b5b600084013567ffffffffffffffff811115612a1057612a0f6133a6565b5b612a1c8682870161282c565b93509350506020612a2f86828701612882565b9150509250925092565b600060208284031215612a4f57612a4e6133ab565b5b6000612a5d84828501612882565b91505092915050565b600060208284031215612a7c57612a7b6133ab565b5b6000612a8a84828501612897565b91505092915050565b6000612a9f8383612aab565b60208301905092915050565b612ab4816131c2565b82525050565b612ac3816131c2565b82525050565b6000612ad482613068565b612ade818561308b565b9350612ae983613058565b8060005b83811015612b1a578151612b018882612a93565b9750612b0c8361307e565b925050600181019050612aed565b5085935050505092915050565b612b30816131d4565b82525050565b612b3f81613217565b82525050565b612b4e81613229565b82525050565b6000612b5f82613073565b612b69818561309c565b9350612b7981856020860161325f565b612b82816133b0565b840191505092915050565b6000612b9a60238361309c565b9150612ba5826133c1565b604082019050919050565b6000612bbd601f8361309c565b9150612bc882613410565b602082019050919050565b6000612be0603f8361309c565b9150612beb82613439565b604082019050919050565b6000612c03602a8361309c565b9150612c0e82613488565b604082019050919050565b6000612c26601c8361309c565b9150612c31826134d7565b602082019050919050565b6000612c4960268361309c565b9150612c5482613500565b604082019050919050565b6000612c6c60228361309c565b9150612c778261354f565b604082019050919050565b6000612c8f601b8361309c565b9150612c9a8261359e565b602082019050919050565b6000612cb260218361309c565b9150612cbd826135c7565b604082019050919050565b6000612cd560208361309c565b9150612ce082613616565b602082019050919050565b6000612cf860298361309c565b9150612d038261363f565b604082019050919050565b6000612d1b60258361309c565b9150612d268261368e565b604082019050919050565b6000612d3e60238361309c565b9150612d49826136dd565b604082019050919050565b6000612d6160248361309c565b9150612d6c8261372c565b604082019050919050565b612d8081613200565b82525050565b612d8f8161320a565b82525050565b6000602082019050612daa6000830184612aba565b92915050565b6000602082019050612dc56000830184612b27565b92915050565b6000602082019050612de06000830184612b36565b92915050565b60006020820190508181036000830152612e008184612b54565b905092915050565b60006020820190508181036000830152612e2181612b8d565b9050919050565b60006020820190508181036000830152612e4181612bb0565b9050919050565b60006020820190508181036000830152612e6181612bd3565b9050919050565b60006020820190508181036000830152612e8181612bf6565b9050919050565b60006020820190508181036000830152612ea181612c19565b9050919050565b60006020820190508181036000830152612ec181612c3c565b9050919050565b60006020820190508181036000830152612ee181612c5f565b9050919050565b60006020820190508181036000830152612f0181612c82565b9050919050565b60006020820190508181036000830152612f2181612ca5565b9050919050565b60006020820190508181036000830152612f4181612cc8565b9050919050565b60006020820190508181036000830152612f6181612ceb565b9050919050565b60006020820190508181036000830152612f8181612d0e565b9050919050565b60006020820190508181036000830152612fa181612d31565b9050919050565b60006020820190508181036000830152612fc181612d54565b9050919050565b6000602082019050612fdd6000830184612d77565b92915050565b600060a082019050612ff86000830188612d77565b6130056020830187612b45565b81810360408301526130178186612ac9565b90506130266060830185612aba565b6130336080830184612d77565b9695505050505050565b60006020820190506130526000830184612d86565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130b882613200565b91506130c383613200565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130f8576130f76132db565b5b828201905092915050565b600061310e82613200565b915061311983613200565b9250826131295761312861330a565b5b828204905092915050565b600061313f82613200565b915061314a83613200565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613183576131826132db565b5b828202905092915050565b600061319982613200565b91506131a483613200565b9250828210156131b7576131b66132db565b5b828203905092915050565b60006131cd826131e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132228261323b565b9050919050565b600061323482613200565b9050919050565b60006132468261324d565b9050919050565b6000613258826131e0565b9050919050565b60005b8381101561327d578082015181840152602081019050613262565b8381111561328c576000848401525b50505050565b600061329d82613200565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132d0576132cf6132db565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f546178206665652063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613784816131c2565b811461378f57600080fd5b50565b61379b816131d4565b81146137a657600080fd5b50565b6137b281613200565b81146137bd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b3529595867424a0ce10d1ebac01a0b066a10866f5aecdccebd472dc978c44a364736f6c63430008070033

Deployed Bytecode Sourcemap

4398:13199:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6978:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7910:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5767:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7258:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8112:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6111:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7166:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5815:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16556:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16975:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12889:235;;;;;;;;;;;;;:::i;:::-;;7362:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1871:148;;;;;;;;;;;;;:::i;:::-;;17119:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12559:76;;;;;;;;;;;;;:::i;:::-;;5966:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1655:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6035:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7070:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16783:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7509:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12644:236;;;;;;;;;;;;;:::i;:::-;;17360:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7717:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17236:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2028:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6978:83;7015:13;7048:5;;;;;;;;;;;;;;;;;7041:12;;6978:83;:::o;7910:193::-;8012:4;8034:39;8043:12;:10;:12::i;:::-;8057:7;8066:6;8034:8;:39::i;:::-;8091:4;8084:11;;7910:193;;;;:::o;5767:41::-;;;;;;;;;;;;;:::o;7258:95::-;7311:7;4963:20;7331:14;;7258:95;:::o;8112:446::-;8244:4;8261:36;8271:6;8279:9;8290:6;8261:9;:36::i;:::-;8308:220;8331:6;8352:12;:10;:12::i;:::-;8379:138;8435:6;8379:138;;;;;;;;;;;;;;;;;:11;:19;8391:6;8379:19;;;;;;;;;;;;;;;:33;8399:12;:10;:12::i;:::-;8379:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8308:8;:220::i;:::-;8546:4;8539:11;;8112:446;;;;;:::o;6111:54::-;;;;:::o;7166:83::-;7207:5;4636:1;7225:16;;7166:83;:::o;5815:28::-;;;;;;;;;;;;;:::o;16556:174::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16645:2:::1;16630:12;:17;16622:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16710:12;16694:13;:28;;;;16556:174:::0;:::o;16975:101::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17056:12:::1;17042:11;;:26;;;;;;;;;;;;;;;;;;16975:101:::0;:::o;12889:235::-;12955:19;;;;;;;;;;;12939:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12994:17;;;;;;;;;;;12978:33;;:12;:10;:12::i;:::-;:33;;;12939:72;12931:81;;;;;;13023:26;13052:21;13023:50;;13084:32;13097:18;13084:12;:32::i;:::-;12920:204;12889:235::o;7362:138::-;7428:7;7455:37;7475:7;:16;7483:7;7475:16;;;;;;;;;;;;;;;;7455:19;:37::i;:::-;7448:44;;7362:138;;;:::o;1871:148::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:1:::1;1941:40;;1962:6;::::0;::::1;;;;;;;;1941:40;;;;;;;;;;;;2009:1;1992:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1871:148::o:0;17119:108::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17208:11:::1;17193:12;:26;;;;17119:108:::0;:::o;12559:76::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12623:4:::1;12609:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12559:76::o:0;5966:47::-;;;;:::o;1655:79::-;1693:7;1720:6;;;;;;;;;;;1713:13;;1655:79;:::o;6035:50::-;;;;:::o;7070:87::-;7109:13;7142:7;;;;;;;;;;;;;;;;;7135:14;;7070:87;:::o;16783:139::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16896:18:::1;16874:19;:40;;;;16783:139:::0;:::o;7509:199::-;7614:4;7636:42;7646:12;:10;:12::i;:::-;7660:9;7671:6;7636:9;:42::i;:::-;7696:4;7689:11;;7509:199;;;;:::o;12644:236::-;12710:19;;;;;;;;;;;12694:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12749:17;;;;;;;;;;;12733:33;;:12;:10;:12::i;:::-;:33;;;12694:72;12686:81;;;;;;12778:23;12804:24;12822:4;12804:9;:24::i;:::-;12778:50;;12839:33;12856:15;12839:16;:33::i;:::-;12675:205;12644:236::o;17360:234::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17477:9:::1;17473:114;17496:8;;:15;;17492:1;:19;17473:114;;;17567:8;17533:18;:31;17552:8;;17561:1;17552:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17533:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17513:3;;;;;:::i;:::-;;;;17473:114;;;;17360:234:::0;;;:::o;7717:184::-;7834:7;7866:11;:18;7878:5;7866:18;;;;;;;;;;;;;;;:27;7885:7;7866:27;;;;;;;;;;;;;;;;7859:34;;7717:184;;;;:::o;17236:115::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17330:13:::1;17313:14;:30;;;;17236:115:::0;:::o;2028:244::-;1793:12;:10;:12::i;:::-;1783:22;;:6;;;;;;;;;;:22;;;1775:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2137:1:::1;2117:22;;:8;:22;;;;2109:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2227:8;2198:38;;2219:6;::::0;::::1;;;;;;;;2198:38;;;;;;;;;;;;2256:8;2247:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2028:244:::0;:::o;404:98::-;457:7;484:10;477:17;;404:98;:::o;9255:369::-;9399:1;9382:19;;:5;:19;;;;9374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9480:1;9461:21;;:7;:21;;;;9453:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9562:6;9532:11;:18;9544:5;9532:18;;;;;;;;;;;;;;;:27;9551:7;9532:27;;;;;;;;;;;;;;;:36;;;;9600:7;9584:32;;9593:5;9584:32;;;9609:6;9584:32;;;;;;:::i;:::-;;;;;;;;9255:369;;;:::o;9633:2256::-;9771:1;9755:18;;:4;:18;;;;9747:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9848:1;9834:16;;:2;:16;;;;9826:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9918:1;9909:6;:10;9901:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9991:7;:5;:7::i;:::-;9983:15;;:4;:15;;;;:32;;;;;10008:7;:5;:7::i;:::-;10002:13;;:2;:13;;;;9983:32;9979:1178;;;10073:11;;;;;;;;;;10068:144;;10121:7;:5;:7::i;:::-;10113:15;;:4;:15;;;10105:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10068:144;10247:12;;10237:6;:22;;10229:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10319:13;;;;;;;;;;;10313:19;;:2;:19;;;10310:146;;10386:14;;10377:6;10361:13;10371:2;10361:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10353:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10310:146;10473:28;10504:24;10522:4;10504:9;:24::i;:::-;10473:55;;10543:12;10582:19;;10558:20;:43;;10543:58;;10646:12;;10622:20;:36;10619:124;;10715:12;;10692:35;;10619:124;10764:7;:18;;;;;10776:6;;;;;;;;;;;10775:7;10764:18;:43;;;;;10794:13;;;;;;;;;;;10786:21;;:4;:21;;;;10764:43;:58;;;;;10811:11;;;;;;;;;;;10764:58;:87;;;;;10827:18;:24;10846:4;10827:24;;;;;;;;;;;;;;;;;;;;;;;;;10826:25;10764:87;:114;;;;;10856:18;:22;10875:2;10856:22;;;;;;;;;;;;;;;;;;;;;;;;;10855:23;10764:114;10760:386;;;10899:38;10916:20;10899:16;:38::i;:::-;10956:26;10985:21;10956:50;;11050:1;11029:18;:22;11025:106;;;11076:35;11089:21;11076:12;:35::i;:::-;11025:106;10880:266;10760:386;10017:1140;;9979:1178;11170:12;11185:4;11170:19;;11235:18;:24;11254:4;11235:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11263:18;:22;11282:2;11263:22;;;;;;;;;;;;;;;;;;;;;;;;;11235:50;11234:102;;;;11299:13;;;;;;;;;;;11291:21;;:4;:21;;;;:44;;;;;11322:13;;;;;;;;;;;11316:19;;:2;:19;;;;11291:44;11234:102;11230:597;;;11363:5;11353:15;;11230:597;;;11447:13;;;;;;;;;;;11439:21;;:4;:21;;;:55;;;;;11478:15;;;;;;;;;;;11464:30;;:2;:30;;;;11439:55;11436:162;;;11527:14;;11515:9;:26;;;;11570:12;;11560:7;:22;;;;11436:162;11658:13;;;;;;;;;;;11652:19;;:2;:19;;;:55;;;;;11691:15;;;;;;;;;;;11675:32;;:4;:32;;;;11652:55;11648:165;;;11740:15;;11728:9;:27;;;;11784:13;;11774:7;:23;;;;11648:165;11230:597;11840:41;11855:4;11861:2;11865:6;11873:7;11840:14;:41::i;:::-;9736:2153;9633:2256;;;:::o;2640:224::-;2760:7;2793:1;2788;:6;;2796:12;2780:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2820:9;2836:1;2832;:5;;;;:::i;:::-;2820:17;;2855:1;2848:8;;;2640:224;;;;;:::o;12390:160::-;12447:19;;;;;;;;;;;:28;;:43;12476:13;12487:1;12476:6;:10;;:13;;;;:::i;:::-;12447:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12501:17;;;;;;;;;;;:26;;:41;12528:13;12539:1;12528:6;:10;;:13;;;;:::i;:::-;12501:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12390:160;:::o;8567:323::-;8662:7;8720;;8709;:18;;8687:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8808:19;8830:10;:8;:10::i;:::-;8808:32;;8858:24;8870:11;8858:7;:11;;:24;;;;:::i;:::-;8851:31;;;8567:323;;;:::o;11898:483::-;6270:4;6261:6;;:13;;;;;;;;;;;;;;;;;;11976:21:::1;12014:1;12000:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11976:40;;12045:4;12027;12032:1;12027:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12071:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12061:4;12066:1;12061:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12104:62;12121:4;12136:15;;;;;;;;;;;12154:11;12104:8;:62::i;:::-;12177:15;;;;;;;;;;;:66;;;12258:11;12284:1;12300:4;12327;12347:15;12177:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11965:416;6306:5:::0;6297:6;;:14;;;;;;;;;;;;;;;;;;11898:483;:::o;13133:282::-;13289:7;13284:28;;13298:14;:12;:14::i;:::-;13284:28;13323:44;13341:6;13349:9;13360:6;13323:17;:44::i;:::-;13383:7;13378:29;;13392:15;:13;:15::i;:::-;13378:29;13133:282;;;;:::o;3128:132::-;3186:7;3213:39;3217:1;3220;3213:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3206:46;;3128:132;;;;:::o;16111:167::-;16153:7;16174:15;16191;16210:19;:17;:19::i;:::-;16173:56;;;;16250:20;16262:7;16250;:11;;:20;;;;:::i;:::-;16243:27;;;;16111:167;:::o;8899:221::-;8959:1;8946:9;;:14;:30;;;;;8975:1;8964:7;;:12;8946:30;8942:43;;;8978:7;;8942:43;9018:9;;8998:17;:29;;;;9056:7;;9038:15;:25;;;;9089:1;9077:9;:13;;;;9111:1;9101:7;:11;;;;8899:221;:::o;13424:610::-;13571:15;13601:23;13639:12;13666:23;13704:12;13731:13;13758:19;13769:7;13758:10;:19::i;:::-;13556:221;;;;;;;;;;;;13806:28;13826:7;13806;:15;13814:6;13806:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13788:7;:15;13796:6;13788:15;;;;;;;;;;;;;;;:46;;;;13866:39;13889:15;13866:7;:18;13874:9;13866:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13845:7;:18;13853:9;13845:18;;;;;;;;;;;;;;;:60;;;;13916:16;13926:5;13916:9;:16::i;:::-;13943:23;13955:4;13961;13943:11;:23::i;:::-;13999:9;13982:44;;13991:6;13982:44;;;14010:15;13982:44;;;;;;:::i;:::-;;;;;;;;13545:489;;;;;;13424:610;;;:::o;9129:117::-;9185:17;;9173:9;:29;;;;9223:15;;9213:7;:25;;;;9129:117::o;3269:223::-;3389:7;3421:1;3417;:5;3424:12;3409:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3448:9;3464:1;3460;:5;;;;:::i;:::-;3448:17;;3483:1;3476:8;;;3269:223;;;;;:::o;16287:260::-;16338:7;16347;16367:15;16385:7;;16367:25;;16403:15;4963:20;16403:25;;16453:20;4963;16453:7;;:11;;:20;;;;:::i;:::-;16443:7;:30;16439:61;;;16483:7;;4963:20;16475:25;;;;;;;;16439:61;16522:7;16531;16514:25;;;;;;16287:260;;;:::o;14457:618::-;14557:7;14579;14601;14623;14645;14667;14703:23;14728:12;14742:13;14772:40;14784:7;14793:9;;14804:7;;14772:11;:40::i;:::-;14702:110;;;;;;14823:19;14845:10;:8;:10::i;:::-;14823:32;;14867:15;14884:23;14909:12;14938:46;14950:7;14959:4;14965:5;14972:11;14938;:46::i;:::-;14866:118;;;;;;15006:7;15015:15;15032:4;15038:15;15055:4;15061:5;14998:69;;;;;;;;;;;;;;;;;;;14457:618;;;;;;;:::o;2495:136::-;2553:7;2580:43;2584:1;2587;2580:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2573:50;;2495:136;;;;:::o;2307:179::-;2365:7;2385:9;2401:1;2397;:5;;;;:::i;:::-;2385:17;;2426:1;2421;:6;;2413:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2477:1;2470:8;;;2307:179;;;;:::o;14043:211::-;14096:19;14118:10;:8;:10::i;:::-;14096:32;;14139:13;14155:22;14165:11;14155:5;:9;;:22;;;;:::i;:::-;14139:38;;14213:33;14240:5;14213:7;:22;14229:4;14213:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14188:7;:22;14204:4;14188:22;;;;;;;;;;;;;;;:58;;;;14085:169;;14043:211;:::o;14263:147::-;14341:17;14353:4;14341:7;;:11;;:17;;;;:::i;:::-;14331:7;:27;;;;14382:20;14397:4;14382:10;;:14;;:20;;;;:::i;:::-;14369:10;:33;;;;14263:147;;:::o;15084:472::-;15253:7;15275;15297;15332:12;15347:30;15373:3;15347:21;15359:8;15347:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15332:45;;15388:13;15404:28;15428:3;15404:19;15416:6;15404:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15388:44;;15443:23;15469:28;15491:5;15469:17;15481:4;15469:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15443:54;;15519:15;15536:4;15542:5;15511:37;;;;;;;;;15084:472;;;;;;;:::o;15565:537::-;15759:7;15781;15803;15838:15;15856:24;15868:11;15856:7;:11;;:24;;;;:::i;:::-;15838:42;;15891:12;15906:21;15915:11;15906:4;:8;;:21;;;;:::i;:::-;15891:36;;15938:13;15954:22;15964:11;15954:5;:9;;:22;;;;:::i;:::-;15938:38;;15987:23;16013:28;16035:5;16013:17;16025:4;16013:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15987:54;;16063:7;16072:15;16089:4;16055:39;;;;;;;;;;15565:537;;;;;;;;:::o;2873:246::-;2931:7;2960:1;2955;:6;2951:47;;;2985:1;2978:8;;;;2951:47;3008:9;3024:1;3020;:5;;;;:::i;:::-;3008:17;;3053:1;3048;3044;:5;;;;:::i;:::-;:10;3036:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3110:1;3103:8;;;2873:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:323::-;4213:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:119;;;4268:79;;:::i;:::-;4230:119;4388:1;4413:50;4455:7;4446:6;4435:9;4431:22;4413:50;:::i;:::-;4403:60;;4359:114;4157:323;;;;:::o;4486:329::-;4545:6;4594:2;4582:9;4573:7;4569:23;4565:32;4562:119;;;4600:79;;:::i;:::-;4562:119;4720:1;4745:53;4790:7;4781:6;4770:9;4766:22;4745:53;:::i;:::-;4735:63;;4691:117;4486:329;;;;:::o;4821:179::-;4890:10;4911:46;4953:3;4945:6;4911:46;:::i;:::-;4989:4;4984:3;4980:14;4966:28;;4821:179;;;;:::o;5006:108::-;5083:24;5101:5;5083:24;:::i;:::-;5078:3;5071:37;5006:108;;:::o;5120:118::-;5207:24;5225:5;5207:24;:::i;:::-;5202:3;5195:37;5120:118;;:::o;5274:732::-;5393:3;5422:54;5470:5;5422:54;:::i;:::-;5492:86;5571:6;5566:3;5492:86;:::i;:::-;5485:93;;5602:56;5652:5;5602:56;:::i;:::-;5681:7;5712:1;5697:284;5722:6;5719:1;5716:13;5697:284;;;5798:6;5792:13;5825:63;5884:3;5869:13;5825:63;:::i;:::-;5818:70;;5911:60;5964:6;5911:60;:::i;:::-;5901:70;;5757:224;5744:1;5741;5737:9;5732:14;;5697:284;;;5701:14;5997:3;5990:10;;5398:608;;;5274:732;;;;:::o;6012:109::-;6093:21;6108:5;6093:21;:::i;:::-;6088:3;6081:34;6012:109;;:::o;6127:183::-;6240:63;6297:5;6240:63;:::i;:::-;6235:3;6228:76;6127:183;;:::o;6316:147::-;6411:45;6450:5;6411:45;:::i;:::-;6406:3;6399:58;6316:147;;:::o;6469:364::-;6557:3;6585:39;6618:5;6585:39;:::i;:::-;6640:71;6704:6;6699:3;6640:71;:::i;:::-;6633:78;;6720:52;6765:6;6760:3;6753:4;6746:5;6742:16;6720:52;:::i;:::-;6797:29;6819:6;6797:29;:::i;:::-;6792:3;6788:39;6781:46;;6561:272;6469:364;;;;:::o;6839:366::-;6981:3;7002:67;7066:2;7061:3;7002:67;:::i;:::-;6995:74;;7078:93;7167:3;7078:93;:::i;:::-;7196:2;7191:3;7187:12;7180:19;;6839:366;;;:::o;7211:::-;7353:3;7374:67;7438:2;7433:3;7374:67;:::i;:::-;7367:74;;7450:93;7539:3;7450:93;:::i;:::-;7568:2;7563:3;7559:12;7552:19;;7211:366;;;:::o;7583:::-;7725:3;7746:67;7810:2;7805:3;7746:67;:::i;:::-;7739:74;;7822:93;7911:3;7822:93;:::i;:::-;7940:2;7935:3;7931:12;7924:19;;7583:366;;;:::o;7955:::-;8097:3;8118:67;8182:2;8177:3;8118:67;:::i;:::-;8111:74;;8194:93;8283:3;8194:93;:::i;:::-;8312:2;8307:3;8303:12;8296:19;;7955:366;;;:::o;8327:::-;8469:3;8490:67;8554:2;8549:3;8490:67;:::i;:::-;8483:74;;8566:93;8655:3;8566:93;:::i;:::-;8684:2;8679:3;8675:12;8668:19;;8327:366;;;:::o;8699:::-;8841:3;8862:67;8926:2;8921:3;8862:67;:::i;:::-;8855:74;;8938:93;9027:3;8938:93;:::i;:::-;9056:2;9051:3;9047:12;9040:19;;8699:366;;;:::o;9071:::-;9213:3;9234:67;9298:2;9293:3;9234:67;:::i;:::-;9227:74;;9310:93;9399:3;9310:93;:::i;:::-;9428:2;9423:3;9419:12;9412:19;;9071:366;;;:::o;9443:::-;9585:3;9606:67;9670:2;9665:3;9606:67;:::i;:::-;9599:74;;9682:93;9771:3;9682:93;:::i;:::-;9800:2;9795:3;9791:12;9784:19;;9443:366;;;:::o;9815:::-;9957:3;9978:67;10042:2;10037:3;9978:67;:::i;:::-;9971:74;;10054:93;10143:3;10054:93;:::i;:::-;10172:2;10167:3;10163:12;10156:19;;9815:366;;;:::o;10187:::-;10329:3;10350:67;10414:2;10409:3;10350:67;:::i;:::-;10343:74;;10426:93;10515:3;10426:93;:::i;:::-;10544:2;10539:3;10535:12;10528:19;;10187:366;;;:::o;10559:::-;10701:3;10722:67;10786:2;10781:3;10722:67;:::i;:::-;10715:74;;10798:93;10887:3;10798:93;:::i;:::-;10916:2;10911:3;10907:12;10900:19;;10559:366;;;:::o;10931:::-;11073:3;11094:67;11158:2;11153:3;11094:67;:::i;:::-;11087:74;;11170:93;11259:3;11170:93;:::i;:::-;11288:2;11283:3;11279:12;11272:19;;10931:366;;;:::o;11303:::-;11445:3;11466:67;11530:2;11525:3;11466:67;:::i;:::-;11459:74;;11542:93;11631:3;11542:93;:::i;:::-;11660:2;11655:3;11651:12;11644:19;;11303:366;;;:::o;11675:::-;11817:3;11838:67;11902:2;11897:3;11838:67;:::i;:::-;11831:74;;11914:93;12003:3;11914:93;:::i;:::-;12032:2;12027:3;12023:12;12016:19;;11675:366;;;:::o;12047:118::-;12134:24;12152:5;12134:24;:::i;:::-;12129:3;12122:37;12047:118;;:::o;12171:112::-;12254:22;12270:5;12254:22;:::i;:::-;12249:3;12242:35;12171:112;;:::o;12289:222::-;12382:4;12420:2;12409:9;12405:18;12397:26;;12433:71;12501:1;12490:9;12486:17;12477:6;12433:71;:::i;:::-;12289:222;;;;:::o;12517:210::-;12604:4;12642:2;12631:9;12627:18;12619:26;;12655:65;12717:1;12706:9;12702:17;12693:6;12655:65;:::i;:::-;12517:210;;;;:::o;12733:274::-;12852:4;12890:2;12879:9;12875:18;12867:26;;12903:97;12997:1;12986:9;12982:17;12973:6;12903:97;:::i;:::-;12733:274;;;;:::o;13013:313::-;13126:4;13164:2;13153:9;13149:18;13141:26;;13213:9;13207:4;13203:20;13199:1;13188:9;13184:17;13177:47;13241:78;13314:4;13305:6;13241:78;:::i;:::-;13233:86;;13013:313;;;;:::o;13332:419::-;13498:4;13536:2;13525:9;13521:18;13513:26;;13585:9;13579:4;13575:20;13571:1;13560:9;13556:17;13549:47;13613:131;13739:4;13613:131;:::i;:::-;13605:139;;13332:419;;;:::o;13757:::-;13923:4;13961:2;13950:9;13946:18;13938:26;;14010:9;14004:4;14000:20;13996:1;13985:9;13981:17;13974:47;14038:131;14164:4;14038:131;:::i;:::-;14030:139;;13757:419;;;:::o;14182:::-;14348:4;14386:2;14375:9;14371:18;14363:26;;14435:9;14429:4;14425:20;14421:1;14410:9;14406:17;14399:47;14463:131;14589:4;14463:131;:::i;:::-;14455:139;;14182:419;;;:::o;14607:::-;14773:4;14811:2;14800:9;14796:18;14788:26;;14860:9;14854:4;14850:20;14846:1;14835:9;14831:17;14824:47;14888:131;15014:4;14888:131;:::i;:::-;14880:139;;14607:419;;;:::o;15032:::-;15198:4;15236:2;15225:9;15221:18;15213:26;;15285:9;15279:4;15275:20;15271:1;15260:9;15256:17;15249:47;15313:131;15439:4;15313:131;:::i;:::-;15305:139;;15032:419;;;:::o;15457:::-;15623:4;15661:2;15650:9;15646:18;15638:26;;15710:9;15704:4;15700:20;15696:1;15685:9;15681:17;15674:47;15738:131;15864:4;15738:131;:::i;:::-;15730:139;;15457:419;;;:::o;15882:::-;16048:4;16086:2;16075:9;16071:18;16063:26;;16135:9;16129:4;16125:20;16121:1;16110:9;16106:17;16099:47;16163:131;16289:4;16163:131;:::i;:::-;16155:139;;15882:419;;;:::o;16307:::-;16473:4;16511:2;16500:9;16496:18;16488:26;;16560:9;16554:4;16550:20;16546:1;16535:9;16531:17;16524:47;16588:131;16714:4;16588:131;:::i;:::-;16580:139;;16307:419;;;:::o;16732:::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:::-;17323:4;17361:2;17350:9;17346:18;17338:26;;17410:9;17404:4;17400:20;17396:1;17385:9;17381:17;17374:47;17438:131;17564:4;17438:131;:::i;:::-;17430:139;;17157:419;;;:::o;17582:::-;17748:4;17786:2;17775:9;17771:18;17763:26;;17835:9;17829:4;17825:20;17821:1;17810:9;17806:17;17799:47;17863:131;17989:4;17863:131;:::i;:::-;17855:139;;17582:419;;;:::o;18007:::-;18173:4;18211:2;18200:9;18196:18;18188:26;;18260:9;18254:4;18250:20;18246:1;18235:9;18231:17;18224:47;18288:131;18414:4;18288:131;:::i;:::-;18280:139;;18007:419;;;:::o;18432:::-;18598:4;18636:2;18625:9;18621:18;18613:26;;18685:9;18679:4;18675:20;18671:1;18660:9;18656:17;18649:47;18713:131;18839:4;18713:131;:::i;:::-;18705:139;;18432:419;;;:::o;18857:::-;19023:4;19061:2;19050:9;19046:18;19038:26;;19110:9;19104:4;19100:20;19096:1;19085:9;19081:17;19074:47;19138:131;19264:4;19138:131;:::i;:::-;19130:139;;18857:419;;;:::o;19282:222::-;19375:4;19413:2;19402:9;19398:18;19390:26;;19426:71;19494:1;19483:9;19479:17;19470:6;19426:71;:::i;:::-;19282:222;;;;:::o;19510:831::-;19773:4;19811:3;19800:9;19796:19;19788:27;;19825:71;19893:1;19882:9;19878:17;19869:6;19825:71;:::i;:::-;19906:80;19982:2;19971:9;19967:18;19958:6;19906:80;:::i;:::-;20033:9;20027:4;20023:20;20018:2;20007:9;20003:18;19996:48;20061:108;20164:4;20155:6;20061:108;:::i;:::-;20053:116;;20179:72;20247:2;20236:9;20232:18;20223:6;20179:72;:::i;:::-;20261:73;20329:3;20318:9;20314:19;20305:6;20261:73;:::i;:::-;19510:831;;;;;;;;:::o;20347:214::-;20436:4;20474:2;20463:9;20459:18;20451:26;;20487:67;20551:1;20540:9;20536:17;20527:6;20487:67;:::i;:::-;20347:214;;;;:::o;20648:132::-;20715:4;20738:3;20730:11;;20768:4;20763:3;20759:14;20751:22;;20648:132;;;:::o;20786:114::-;20853:6;20887:5;20881:12;20871:22;;20786:114;;;:::o;20906:99::-;20958:6;20992:5;20986:12;20976:22;;20906:99;;;:::o;21011:113::-;21081:4;21113;21108:3;21104:14;21096:22;;21011:113;;;:::o;21130:184::-;21229:11;21263:6;21258:3;21251:19;21303:4;21298:3;21294:14;21279:29;;21130:184;;;;:::o;21320:169::-;21404:11;21438:6;21433:3;21426:19;21478:4;21473:3;21469:14;21454:29;;21320:169;;;;:::o;21495:305::-;21535:3;21554:20;21572:1;21554:20;:::i;:::-;21549:25;;21588:20;21606:1;21588:20;:::i;:::-;21583:25;;21742:1;21674:66;21670:74;21667:1;21664:81;21661:107;;;21748:18;;:::i;:::-;21661:107;21792:1;21789;21785:9;21778:16;;21495:305;;;;:::o;21806:185::-;21846:1;21863:20;21881:1;21863:20;:::i;:::-;21858:25;;21897:20;21915:1;21897:20;:::i;:::-;21892:25;;21936:1;21926:35;;21941:18;;:::i;:::-;21926:35;21983:1;21980;21976:9;21971:14;;21806:185;;;;:::o;21997:348::-;22037:7;22060:20;22078:1;22060:20;:::i;:::-;22055:25;;22094:20;22112:1;22094:20;:::i;:::-;22089:25;;22282:1;22214:66;22210:74;22207:1;22204:81;22199:1;22192:9;22185:17;22181:105;22178:131;;;22289:18;;:::i;:::-;22178:131;22337:1;22334;22330:9;22319:20;;21997:348;;;;:::o;22351:191::-;22391:4;22411:20;22429:1;22411:20;:::i;:::-;22406:25;;22445:20;22463:1;22445:20;:::i;:::-;22440:25;;22484:1;22481;22478:8;22475:34;;;22489:18;;:::i;:::-;22475:34;22534:1;22531;22527:9;22519:17;;22351:191;;;;:::o;22548:96::-;22585:7;22614:24;22632:5;22614:24;:::i;:::-;22603:35;;22548:96;;;:::o;22650:90::-;22684:7;22727:5;22720:13;22713:21;22702:32;;22650:90;;;:::o;22746:126::-;22783:7;22823:42;22816:5;22812:54;22801:65;;22746:126;;;:::o;22878:77::-;22915:7;22944:5;22933:16;;22878:77;;;:::o;22961:86::-;22996:7;23036:4;23029:5;23025:16;23014:27;;22961:86;;;:::o;23053:152::-;23129:9;23162:37;23193:5;23162:37;:::i;:::-;23149:50;;23053:152;;;:::o;23211:121::-;23269:9;23302:24;23320:5;23302:24;:::i;:::-;23289:37;;23211:121;;;:::o;23338:126::-;23388:9;23421:37;23452:5;23421:37;:::i;:::-;23408:50;;23338:126;;;:::o;23470:113::-;23520:9;23553:24;23571:5;23553:24;:::i;:::-;23540:37;;23470:113;;;:::o;23589:307::-;23657:1;23667:113;23681:6;23678:1;23675:13;23667:113;;;23766:1;23761:3;23757:11;23751:18;23747:1;23742:3;23738:11;23731:39;23703:2;23700:1;23696:10;23691:15;;23667:113;;;23798:6;23795:1;23792:13;23789:101;;;23878:1;23869:6;23864:3;23860:16;23853:27;23789:101;23638:258;23589:307;;;:::o;23902:233::-;23941:3;23964:24;23982:5;23964:24;:::i;:::-;23955:33;;24010:66;24003:5;24000:77;23997:103;;;24080:18;;:::i;:::-;23997:103;24127:1;24120:5;24116:13;24109:20;;23902:233;;;:::o;24141:180::-;24189:77;24186:1;24179:88;24286:4;24283:1;24276:15;24310:4;24307:1;24300:15;24327:180;24375:77;24372:1;24365:88;24472:4;24469:1;24462:15;24496:4;24493:1;24486:15;24513:180;24561:77;24558:1;24551:88;24658:4;24655:1;24648:15;24682:4;24679:1;24672:15;24699:180;24747:77;24744:1;24737:88;24844:4;24841:1;24834:15;24868:4;24865:1;24858:15;24885:117;24994:1;24991;24984:12;25008:117;25117:1;25114;25107:12;25131:117;25240:1;25237;25230:12;25254:117;25363:1;25360;25353:12;25377:117;25486:1;25483;25476:12;25500:102;25541:6;25592:2;25588:7;25583:2;25576:5;25572:14;25568:28;25558:38;;25500:102;;;:::o;25608:222::-;25748:34;25744:1;25736:6;25732:14;25725:58;25817:5;25812:2;25804:6;25800:15;25793:30;25608:222;:::o;25836:181::-;25976:33;25972:1;25964:6;25960:14;25953:57;25836:181;:::o;26023:250::-;26163:34;26159:1;26151:6;26147:14;26140:58;26232:33;26227:2;26219:6;26215:15;26208:58;26023:250;:::o;26279:229::-;26419:34;26415:1;26407:6;26403:14;26396:58;26488:12;26483:2;26475:6;26471:15;26464:37;26279:229;:::o;26514:178::-;26654:30;26650:1;26642:6;26638:14;26631:54;26514:178;:::o;26698:225::-;26838:34;26834:1;26826:6;26822:14;26815:58;26907:8;26902:2;26894:6;26890:15;26883:33;26698:225;:::o;26929:221::-;27069:34;27065:1;27057:6;27053:14;27046:58;27138:4;27133:2;27125:6;27121:15;27114:29;26929:221;:::o;27156:177::-;27296:29;27292:1;27284:6;27280:14;27273:53;27156:177;:::o;27339:220::-;27479:34;27475:1;27467:6;27463:14;27456:58;27548:3;27543:2;27535:6;27531:15;27524:28;27339:220;:::o;27565:182::-;27705:34;27701:1;27693:6;27689:14;27682:58;27565:182;:::o;27753:228::-;27893:34;27889:1;27881:6;27877:14;27870:58;27962:11;27957:2;27949:6;27945:15;27938:36;27753:228;:::o;27987:224::-;28127:34;28123:1;28115:6;28111:14;28104:58;28196:7;28191:2;28183:6;28179:15;28172:32;27987:224;:::o;28217:222::-;28357:34;28353:1;28345:6;28341:14;28334:58;28426:5;28421:2;28413:6;28409:15;28402:30;28217:222;:::o;28445:223::-;28585:34;28581:1;28573:6;28569:14;28562:58;28654:6;28649:2;28641:6;28637:15;28630:31;28445:223;:::o;28674:122::-;28747:24;28765:5;28747:24;:::i;:::-;28740:5;28737:35;28727:63;;28786:1;28783;28776:12;28727:63;28674:122;:::o;28802:116::-;28872:21;28887:5;28872:21;:::i;:::-;28865:5;28862:32;28852:60;;28908:1;28905;28898:12;28852:60;28802:116;:::o;28924:122::-;28997:24;29015:5;28997:24;:::i;:::-;28990:5;28987:35;28977:63;;29036:1;29033;29026:12;28977:63;28924:122;:::o

Swarm Source

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