ETH Price: $3,105.81 (-5.89%)
 

Overview

Max Total Supply

1,000,000 VOG

Holders

137

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,048.45263897 VOG

Value
$0.00
0x822b5af1debaeaaa0d570719ceaf3ac27e6043c9
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:
VoiceOfThePeople

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**




                    For the people, By the people.
                    For the Voice of God is the Voice of the People.

            Website: https://voiceofthepeopleeth.com/
            Telegram: https://t.me/voiceofthepeople
            Twitter: https://twitter.com/VOGToken
            


*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

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 VoiceOfThePeople is Context, IERC20, Ownable {

    using SafeMath for uint256;

    uint256 private _totalDonated; //keeps running total of donated ETH in wei
    uint256 private _addToDonated;

    string private constant _name = "Voice of the People";
    string private constant _symbol = "VOG";
    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 = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0; //reflection to holders
    uint256 private _taxFeeOnBuy = 3; // total fees - is split into donation and marketing on transfer functions
    uint256 private _redisFeeOnSell = 0; //reflection to holders
    uint256 private _taxFeeOnSell = 3; //total fees - is split into donation and marketing on transfer functions

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _donationAddress = payable(0xB410D84ca2b878Cb685527A6607efACb3150eb07); //donation Wallet
    address payable private _marketingAddress = payable(0xB410D84ca2b878Cb685527A6607efACb3150eb07); //marketing & dev Wallet

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 20000 * 10**9;
    uint256 public _maxWalletSize = 20000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000 * 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[_donationAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        _totalDonated = 0; 

        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");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            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 {
        _marketingAddress.transfer(amount.mul(50).div(100)); //2% to dev & marketing
        _donationAddress.transfer(amount.mul(50).div(100)); //2% to donation wallet
        _totalDonated += amount.mul(50).div(100);  //returns in wei
    }

    function viewTotalDonated() public view returns (uint256)  {
        return uint(_totalDonated);  //returns in wei 
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

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

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

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    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 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        //Fee hardcaps to prevent honeypot
        require(_redisFeeOnBuy <= 4, "Hard cap 4%");
        require(_redisFeeOnSell <= 4, "Hard cap 4%");
        require(_taxFeeOnBuy <= 10, "Hard cap 10%");
        require(_taxFeeOnBuy <= 10, "Hard cap 10%");
        
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _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;
        }
    }

    function changeDonationAddress(address payable newAddress)
        public
        onlyOwner
        returns (bool)
    {
        _donationAddress = newAddress;
        return true;
    }

    function changeMarketingAddress(address payable newAddress)
        public
        onlyOwner
        returns (bool)
    {
        _marketingAddress = newAddress;
        return true;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddress","type":"address"}],"name":"changeDonationAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddress","type":"address"}],"name":"changeMarketingAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"},{"inputs":[],"name":"viewTotalDonated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c680006000196200001b91906200072d565b6000196200002a919062000794565b6008556000600a556003600b556000600c556003600d55600c54600e55600d54600f55600e54601055600f5460115573b410d84ca2b878cb685527a6607efacb3150eb07601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b410d84ca2b878cb685527a6607efacb3150eb07601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760146101000a81548160ff0219169083151502179055506000601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506512309ce540006018556512309ce5400060195564e8d4a51000601a553480156200017e57600080fd5b50600062000191620006c360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506008546004600062000246620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000839565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000839565b6040518363ffffffff1660e01b8152600401620003fd9291906200087c565b6020604051808303816000875af11580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000443919062000839565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016007600062000499620006cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006002819055506200064e620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006b49190620008ba565b60405180910390a350620008d7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073a82620006f4565b91506200074783620006f4565b9250826200075a5762000759620006fe565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007a182620006f4565b9150620007ae83620006f4565b9250828203905081811115620007c957620007c862000765565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080182620007d4565b9050919050565b6200081381620007f4565b81146200081f57600080fd5b50565b600081519050620008338162000808565b92915050565b600060208284031215620008525762000851620007cf565b5b6000620008628482850162000822565b91505092915050565b6200087681620007f4565b82525050565b60006040820190506200089360008301856200086b565b620008a260208301846200086b565b9392505050565b620008b481620006f4565b82525050565b6000602082019050620008d16000830184620008a9565b92915050565b61436280620008e76000396000f3fe6080604052600436106101f15760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd801461070b578063c492f04614610722578063dd62ed3e1461074b578063ea1644d514610788578063f2fde38b146107b1576101f8565b8063a2a957bb1461063d578063a9059cbb14610666578063b06c79ef146106a3578063bfd79284146106ce576101f8565b80638f70ccf7116100dc5780638f70ccf7146105955780638f9a55c0146105be57806395d89b41146105e957806398a5c31514610614576101f8565b806374010ece146104d95780637d1db4a5146105025780637f2feddc1461052d5780638da5cb5b1461056a576101f8565b8063313ce567116101855780636d8aa8f8116101545780636d8aa8f8146104455780636fc3eaec1461046e57806370a0823114610485578063715018a6146104c2576101f8565b8063313ce5671461038957806349bd5a5e146103b4578063641a8d75146103df5780636b9990531461041c576101f8565b80631694505e116101c15780631694505e146102cb57806318160ddd146102f657806323b872dd146103215780632fd689e31461035e576101f8565b8062b8cf2a146101fd578063048dec381461022657806306fdde0314610263578063095ea7b31461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906131ef565b6107da565b005b34801561023257600080fd5b5061024d60048036038101906102489190613276565b610904565b60405161025a91906132be565b60405180910390f35b34801561026f57600080fd5b506102786109e5565b6040516102859190613358565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906133b0565b610a22565b6040516102c291906132be565b60405180910390f35b3480156102d757600080fd5b506102e0610a40565b6040516102ed919061344f565b60405180910390f35b34801561030257600080fd5b5061030b610a66565b6040516103189190613479565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190613494565b610a75565b60405161035591906132be565b60405180910390f35b34801561036a57600080fd5b50610373610b4e565b6040516103809190613479565b60405180910390f35b34801561039557600080fd5b5061039e610b54565b6040516103ab9190613503565b60405180910390f35b3480156103c057600080fd5b506103c9610b5d565b6040516103d6919061352d565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190613276565b610b83565b60405161041391906132be565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613548565b610c64565b005b34801561045157600080fd5b5061046c600480360381019061046791906135a1565b610d54565b005b34801561047a57600080fd5b50610483610e06565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613548565b610ed7565b6040516104b99190613479565b60405180910390f35b3480156104ce57600080fd5b506104d7610f28565b005b3480156104e557600080fd5b5061050060048036038101906104fb91906135ce565b61107b565b005b34801561050e57600080fd5b5061051761111a565b6040516105249190613479565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613548565b611120565b6040516105619190613479565b60405180910390f35b34801561057657600080fd5b5061057f611138565b60405161058c919061352d565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906135a1565b611161565b005b3480156105ca57600080fd5b506105d3611213565b6040516105e09190613479565b60405180910390f35b3480156105f557600080fd5b506105fe611219565b60405161060b9190613358565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906135ce565b611256565b005b34801561064957600080fd5b50610664600480360381019061065f91906135fb565b6112f5565b005b34801561067257600080fd5b5061068d600480360381019061068891906133b0565b6114c4565b60405161069a91906132be565b60405180910390f35b3480156106af57600080fd5b506106b86114e2565b6040516106c59190613479565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f09190613548565b6114ec565b60405161070291906132be565b60405180910390f35b34801561071757600080fd5b5061072061150c565b005b34801561072e57600080fd5b50610749600480360381019061074491906136bd565b6115e5565b005b34801561075757600080fd5b50610772600480360381019061076d919061371d565b61171f565b60405161077f9190613479565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa91906135ce565b6117a6565b005b3480156107bd57600080fd5b506107d860048036038101906107d39190613548565b611845565b005b6107e2611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610866906137a9565b60405180910390fd5b60005b815181101561090057600160126000848481518110610894576108936137c9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108f890613827565b915050610872565b5050565b600061090e611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610992906137a9565b60405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60606040518060400160405280601381526020017f566f696365206f66207468652050656f706c6500000000000000000000000000815250905090565b6000610a36610a2f611a06565b8484611a0e565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b6000610a82848484611bd7565b610b4384610a8e611a06565b610b3e8560405180606001604052806028815260200161430560289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610af4611a06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245c9092919063ffffffff16565b611a0e565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b8d611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c11906137a9565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b610c6c611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf0906137a9565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d5c611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de0906137a9565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e47611a06565b73ffffffffffffffffffffffffffffffffffffffff161480610ebd5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea5611a06565b73ffffffffffffffffffffffffffffffffffffffff16145b610ec657600080fd5b6000479050610ed4816124c0565b50565b6000610f21600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612620565b9050919050565b610f30611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb4906137a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611083611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611107906137a9565b60405180910390fd5b8060188190555050565b60185481565b60136020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611169611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906137a9565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600381526020017f564f470000000000000000000000000000000000000000000000000000000000815250905090565b61125e611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906137a9565b60405180910390fd5b80601a8190555050565b6112fd611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906137a9565b60405180910390fd5b6004600a5411156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c7906138bb565b60405180910390fd5b6004600c541115611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d906138bb565b60405180910390fd5b600a600b54111561145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145390613927565b60405180910390fd5b600a600b5411156114a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149990613927565b60405180910390fd5b83600a8190555082600c8190555081600b8190555080600d8190555050505050565b60006114d86114d1611a06565b8484611bd7565b6001905092915050565b6000600254905090565b60126020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661154d611a06565b73ffffffffffffffffffffffffffffffffffffffff1614806115c35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ab611a06565b73ffffffffffffffffffffffffffffffffffffffff16145b6115cc57600080fd5b60006115d730610ed7565b90506115e28161268e565b50565b6115ed611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611671906137a9565b60405180910390fd5b60005b838390508110156117195781600760008686858181106116a05761169f6137c9565b5b90506020020160208101906116b59190613548565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061171190613827565b91505061167d565b50505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117ae611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611832906137a9565b60405180910390fd5b8060198190555050565b61184d611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d1906137a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906139b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7490613a4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613add565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bca9190613479565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d90613b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613c01565b60405180910390fd5b60008111611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90613c93565b60405180910390fd5b611d00611138565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d6e5750611d3e611138565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215b57601760149054906101000a900460ff16611dfd57611d8f611138565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df390613d25565b60405180910390fd5b5b601854811115611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990613d91565b60405180910390fd5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ee65750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c90613e23565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fd25760195481611f8784610ed7565b611f919190613e43565b10611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890613ee9565b60405180910390fd5b5b6000611fdd30610ed7565b90506000601a5482101590506018548210611ff85760185491505b8080156120125750601760159054906101000a900460ff16155b801561206c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120845750601760169054906101000a900460ff165b80156120da5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121305750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121585761213e8261268e565b6000479050600081111561215657612155476124c0565b5b505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122025750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122b55750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122b45750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156122c3576000905061244a565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561236e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561238657600a54600e81905550600b54600f819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124315750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561244957600c54600e81905550600d54600f819055505b5b61245684848484612907565b50505050565b60008383111582906124a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249b9190613358565b60405180910390fd5b50600083856124b39190613f09565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612523606461251560328661293490919063ffffffff16565b6129ae90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561254e573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125b260646125a460328661293490919063ffffffff16565b6129ae90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125dd573d6000803e3d6000fd5b5061260560646125f760328461293490919063ffffffff16565b6129ae90919063ffffffff16565b600260008282546126169190613e43565b9250508190555050565b6000600854821115612667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265e90613faf565b60405180910390fd5b60006126716129f8565b905061268681846129ae90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126c6576126c561304e565b5b6040519080825280602002602001820160405280156126f45781602001602082028036833780820191505090505b509050308160008151811061270c5761270b6137c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d79190613fe4565b816001815181106127eb576127ea6137c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061285230601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a0e565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128b695949392919061410a565b600060405180830381600087803b1580156128d057600080fd5b505af11580156128e4573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061291557612914612a23565b5b612920848484612a60565b8061292e5761292d612c2b565b5b50505050565b600080830361294657600090506129a8565b600082846129549190614164565b905082848261296391906141d5565b146129a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299a90614278565b60405180910390fd5b809150505b92915050565b60006129f083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c3f565b905092915050565b6000806000612a05612ca2565b91509150612a1c81836129ae90919063ffffffff16565b9250505090565b6000600e54148015612a3757506000600f54145b612a5e57600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080612a7287612cfe565b955095509550955095509550612ad086600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6690919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6585600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db090919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bb181612e0e565b612bbb8483612ecb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c189190613479565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b60008083118290612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d9190613358565b60405180910390fd5b5060008385612c9591906141d5565b9050809150509392505050565b60008060006008549050600066038d7ea4c680009050612cd466038d7ea4c680006008546129ae90919063ffffffff16565b821015612cf15760085466038d7ea4c68000935093505050612cfa565b81819350935050505b9091565b6000806000806000806000806000612d1b8a600e54600f54612f05565b9250925092506000612d2b6129f8565b90506000806000612d3e8e878787612f9b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612da883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245c565b905092915050565b6000808284612dbf9190613e43565b905083811015612e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfb906142e4565b60405180910390fd5b8091505092915050565b6000612e186129f8565b90506000612e2f828461293490919063ffffffff16565b9050612e8381600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ee082600854612d6690919063ffffffff16565b600881905550612efb81600954612db090919063ffffffff16565b6009819055505050565b600080600080612f316064612f23888a61293490919063ffffffff16565b6129ae90919063ffffffff16565b90506000612f5b6064612f4d888b61293490919063ffffffff16565b6129ae90919063ffffffff16565b90506000612f8482612f76858c612d6690919063ffffffff16565b612d6690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612fb4858961293490919063ffffffff16565b90506000612fcb868961293490919063ffffffff16565b90506000612fe2878961293490919063ffffffff16565b9050600061300b82612ffd8587612d6690919063ffffffff16565b612d6690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130868261303d565b810181811067ffffffffffffffff821117156130a5576130a461304e565b5b80604052505050565b60006130b8613024565b90506130c4828261307d565b919050565b600067ffffffffffffffff8211156130e4576130e361304e565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613125826130fa565b9050919050565b6131358161311a565b811461314057600080fd5b50565b6000813590506131528161312c565b92915050565b600061316b613166846130c9565b6130ae565b9050808382526020820190506020840283018581111561318e5761318d6130f5565b5b835b818110156131b757806131a38882613143565b845260208401935050602081019050613190565b5050509392505050565b600082601f8301126131d6576131d5613038565b5b81356131e6848260208601613158565b91505092915050565b6000602082840312156132055761320461302e565b5b600082013567ffffffffffffffff81111561322357613222613033565b5b61322f848285016131c1565b91505092915050565b6000613243826130fa565b9050919050565b61325381613238565b811461325e57600080fd5b50565b6000813590506132708161324a565b92915050565b60006020828403121561328c5761328b61302e565b5b600061329a84828501613261565b91505092915050565b60008115159050919050565b6132b8816132a3565b82525050565b60006020820190506132d360008301846132af565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133135780820151818401526020810190506132f8565b60008484015250505050565b600061332a826132d9565b61333481856132e4565b93506133448185602086016132f5565b61334d8161303d565b840191505092915050565b60006020820190508181036000830152613372818461331f565b905092915050565b6000819050919050565b61338d8161337a565b811461339857600080fd5b50565b6000813590506133aa81613384565b92915050565b600080604083850312156133c7576133c661302e565b5b60006133d585828601613143565b92505060206133e68582860161339b565b9150509250929050565b6000819050919050565b600061341561341061340b846130fa565b6133f0565b6130fa565b9050919050565b6000613427826133fa565b9050919050565b60006134398261341c565b9050919050565b6134498161342e565b82525050565b60006020820190506134646000830184613440565b92915050565b6134738161337a565b82525050565b600060208201905061348e600083018461346a565b92915050565b6000806000606084860312156134ad576134ac61302e565b5b60006134bb86828701613143565b93505060206134cc86828701613143565b92505060406134dd8682870161339b565b9150509250925092565b600060ff82169050919050565b6134fd816134e7565b82525050565b600060208201905061351860008301846134f4565b92915050565b6135278161311a565b82525050565b6000602082019050613542600083018461351e565b92915050565b60006020828403121561355e5761355d61302e565b5b600061356c84828501613143565b91505092915050565b61357e816132a3565b811461358957600080fd5b50565b60008135905061359b81613575565b92915050565b6000602082840312156135b7576135b661302e565b5b60006135c58482850161358c565b91505092915050565b6000602082840312156135e4576135e361302e565b5b60006135f28482850161339b565b91505092915050565b600080600080608085870312156136155761361461302e565b5b60006136238782880161339b565b94505060206136348782880161339b565b93505060406136458782880161339b565b92505060606136568782880161339b565b91505092959194509250565b600080fd5b60008083601f84011261367d5761367c613038565b5b8235905067ffffffffffffffff81111561369a57613699613662565b5b6020830191508360208202830111156136b6576136b56130f5565b5b9250929050565b6000806000604084860312156136d6576136d561302e565b5b600084013567ffffffffffffffff8111156136f4576136f3613033565b5b61370086828701613667565b935093505060206137138682870161358c565b9150509250925092565b600080604083850312156137345761373361302e565b5b600061374285828601613143565b925050602061375385828601613143565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137936020836132e4565b915061379e8261375d565b602082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138328261337a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613864576138636137f8565b5b600182019050919050565b7f4861726420636170203425000000000000000000000000000000000000000000600082015250565b60006138a5600b836132e4565b91506138b08261386f565b602082019050919050565b600060208201905081810360008301526138d481613898565b9050919050565b7f4861726420636170203130250000000000000000000000000000000000000000600082015250565b6000613911600c836132e4565b915061391c826138db565b602082019050919050565b6000602082019050818103600083015261394081613904565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139a36026836132e4565b91506139ae82613947565b604082019050919050565b600060208201905081810360008301526139d281613996565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a356024836132e4565b9150613a40826139d9565b604082019050919050565b60006020820190508181036000830152613a6481613a28565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ac76022836132e4565b9150613ad282613a6b565b604082019050919050565b60006020820190508181036000830152613af681613aba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b596025836132e4565b9150613b6482613afd565b604082019050919050565b60006020820190508181036000830152613b8881613b4c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613beb6023836132e4565b9150613bf682613b8f565b604082019050919050565b60006020820190508181036000830152613c1a81613bde565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c7d6029836132e4565b9150613c8882613c21565b604082019050919050565b60006020820190508181036000830152613cac81613c70565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613d0f603f836132e4565b9150613d1a82613cb3565b604082019050919050565b60006020820190508181036000830152613d3e81613d02565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613d7b601c836132e4565b9150613d8682613d45565b602082019050919050565b60006020820190508181036000830152613daa81613d6e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613e0d6023836132e4565b9150613e1882613db1565b604082019050919050565b60006020820190508181036000830152613e3c81613e00565b9050919050565b6000613e4e8261337a565b9150613e598361337a565b9250828201905080821115613e7157613e706137f8565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed36023836132e4565b9150613ede82613e77565b604082019050919050565b60006020820190508181036000830152613f0281613ec6565b9050919050565b6000613f148261337a565b9150613f1f8361337a565b9250828203905081811115613f3757613f366137f8565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613f99602a836132e4565b9150613fa482613f3d565b604082019050919050565b60006020820190508181036000830152613fc881613f8c565b9050919050565b600081519050613fde8161312c565b92915050565b600060208284031215613ffa57613ff961302e565b5b600061400884828501613fcf565b91505092915050565b6000819050919050565b600061403661403161402c84614011565b6133f0565b61337a565b9050919050565b6140468161401b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140818161311a565b82525050565b60006140938383614078565b60208301905092915050565b6000602082019050919050565b60006140b78261404c565b6140c18185614057565b93506140cc83614068565b8060005b838110156140fd5781516140e48882614087565b97506140ef8361409f565b9250506001810190506140d0565b5085935050505092915050565b600060a08201905061411f600083018861346a565b61412c602083018761403d565b818103604083015261413e81866140ac565b905061414d606083018561351e565b61415a608083018461346a565b9695505050505050565b600061416f8261337a565b915061417a8361337a565b92508282026141888161337a565b9150828204841483151761419f5761419e6137f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141e08261337a565b91506141eb8361337a565b9250826141fb576141fa6141a6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142626021836132e4565b915061426d82614206565b604082019050919050565b6000602082019050818103600083015261429181614255565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142ce601b836132e4565b91506142d982614298565b602082019050919050565b600060208201905081810360008301526142fd816142c1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce41a803dd4a539c44e66a4738674251d5511f4898546e775c7166b4aa5952bb64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806374010ece1161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd801461070b578063c492f04614610722578063dd62ed3e1461074b578063ea1644d514610788578063f2fde38b146107b1576101f8565b8063a2a957bb1461063d578063a9059cbb14610666578063b06c79ef146106a3578063bfd79284146106ce576101f8565b80638f70ccf7116100dc5780638f70ccf7146105955780638f9a55c0146105be57806395d89b41146105e957806398a5c31514610614576101f8565b806374010ece146104d95780637d1db4a5146105025780637f2feddc1461052d5780638da5cb5b1461056a576101f8565b8063313ce567116101855780636d8aa8f8116101545780636d8aa8f8146104455780636fc3eaec1461046e57806370a0823114610485578063715018a6146104c2576101f8565b8063313ce5671461038957806349bd5a5e146103b4578063641a8d75146103df5780636b9990531461041c576101f8565b80631694505e116101c15780631694505e146102cb57806318160ddd146102f657806323b872dd146103215780632fd689e31461035e576101f8565b8062b8cf2a146101fd578063048dec381461022657806306fdde0314610263578063095ea7b31461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906131ef565b6107da565b005b34801561023257600080fd5b5061024d60048036038101906102489190613276565b610904565b60405161025a91906132be565b60405180910390f35b34801561026f57600080fd5b506102786109e5565b6040516102859190613358565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b091906133b0565b610a22565b6040516102c291906132be565b60405180910390f35b3480156102d757600080fd5b506102e0610a40565b6040516102ed919061344f565b60405180910390f35b34801561030257600080fd5b5061030b610a66565b6040516103189190613479565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190613494565b610a75565b60405161035591906132be565b60405180910390f35b34801561036a57600080fd5b50610373610b4e565b6040516103809190613479565b60405180910390f35b34801561039557600080fd5b5061039e610b54565b6040516103ab9190613503565b60405180910390f35b3480156103c057600080fd5b506103c9610b5d565b6040516103d6919061352d565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190613276565b610b83565b60405161041391906132be565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190613548565b610c64565b005b34801561045157600080fd5b5061046c600480360381019061046791906135a1565b610d54565b005b34801561047a57600080fd5b50610483610e06565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613548565b610ed7565b6040516104b99190613479565b60405180910390f35b3480156104ce57600080fd5b506104d7610f28565b005b3480156104e557600080fd5b5061050060048036038101906104fb91906135ce565b61107b565b005b34801561050e57600080fd5b5061051761111a565b6040516105249190613479565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613548565b611120565b6040516105619190613479565b60405180910390f35b34801561057657600080fd5b5061057f611138565b60405161058c919061352d565b60405180910390f35b3480156105a157600080fd5b506105bc60048036038101906105b791906135a1565b611161565b005b3480156105ca57600080fd5b506105d3611213565b6040516105e09190613479565b60405180910390f35b3480156105f557600080fd5b506105fe611219565b60405161060b9190613358565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906135ce565b611256565b005b34801561064957600080fd5b50610664600480360381019061065f91906135fb565b6112f5565b005b34801561067257600080fd5b5061068d600480360381019061068891906133b0565b6114c4565b60405161069a91906132be565b60405180910390f35b3480156106af57600080fd5b506106b86114e2565b6040516106c59190613479565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f09190613548565b6114ec565b60405161070291906132be565b60405180910390f35b34801561071757600080fd5b5061072061150c565b005b34801561072e57600080fd5b50610749600480360381019061074491906136bd565b6115e5565b005b34801561075757600080fd5b50610772600480360381019061076d919061371d565b61171f565b60405161077f9190613479565b60405180910390f35b34801561079457600080fd5b506107af60048036038101906107aa91906135ce565b6117a6565b005b3480156107bd57600080fd5b506107d860048036038101906107d39190613548565b611845565b005b6107e2611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610866906137a9565b60405180910390fd5b60005b815181101561090057600160126000848481518110610894576108936137c9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108f890613827565b915050610872565b5050565b600061090e611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610992906137a9565b60405180910390fd5b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b60606040518060400160405280601381526020017f566f696365206f66207468652050656f706c6500000000000000000000000000815250905090565b6000610a36610a2f611a06565b8484611a0e565b6001905092915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b6000610a82848484611bd7565b610b4384610a8e611a06565b610b3e8560405180606001604052806028815260200161430560289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610af4611a06565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245c9092919063ffffffff16565b611a0e565b600190509392505050565b601a5481565b60006009905090565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b8d611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c11906137a9565b60405180910390fd5b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b610c6c611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf0906137a9565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d5c611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de0906137a9565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e47611a06565b73ffffffffffffffffffffffffffffffffffffffff161480610ebd5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ea5611a06565b73ffffffffffffffffffffffffffffffffffffffff16145b610ec657600080fd5b6000479050610ed4816124c0565b50565b6000610f21600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612620565b9050919050565b610f30611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb4906137a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611083611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611110576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611107906137a9565b60405180910390fd5b8060188190555050565b60185481565b60136020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611169611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed906137a9565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600381526020017f564f470000000000000000000000000000000000000000000000000000000000815250905090565b61125e611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e2906137a9565b60405180910390fd5b80601a8190555050565b6112fd611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906137a9565b60405180910390fd5b6004600a5411156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c7906138bb565b60405180910390fd5b6004600c541115611416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140d906138bb565b60405180910390fd5b600a600b54111561145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145390613927565b60405180910390fd5b600a600b5411156114a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149990613927565b60405180910390fd5b83600a8190555082600c8190555081600b8190555080600d8190555050505050565b60006114d86114d1611a06565b8484611bd7565b6001905092915050565b6000600254905090565b60126020528060005260406000206000915054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661154d611a06565b73ffffffffffffffffffffffffffffffffffffffff1614806115c35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115ab611a06565b73ffffffffffffffffffffffffffffffffffffffff16145b6115cc57600080fd5b60006115d730610ed7565b90506115e28161268e565b50565b6115ed611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611671906137a9565b60405180910390fd5b60005b838390508110156117195781600760008686858181106116a05761169f6137c9565b5b90506020020160208101906116b59190613548565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061171190613827565b91505061167d565b50505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6117ae611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461183b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611832906137a9565b60405180910390fd5b8060198190555050565b61184d611a06565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d1906137a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611940906139b9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7490613a4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae390613add565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bca9190613479565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d90613b6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cac90613c01565b60405180910390fd5b60008111611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef90613c93565b60405180910390fd5b611d00611138565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d6e5750611d3e611138565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561215b57601760149054906101000a900460ff16611dfd57611d8f611138565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df390613d25565b60405180910390fd5b5b601854811115611e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3990613d91565b60405180910390fd5b601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ee65750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c90613e23565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fd25760195481611f8784610ed7565b611f919190613e43565b10611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890613ee9565b60405180910390fd5b5b6000611fdd30610ed7565b90506000601a5482101590506018548210611ff85760185491505b8080156120125750601760159054906101000a900460ff16155b801561206c5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120845750601760169054906101000a900460ff165b80156120da5750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121305750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121585761213e8261268e565b6000479050600081111561215657612155476124c0565b5b505b50505b600060019050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122025750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806122b55750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122b45750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156122c3576000905061244a565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561236e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561238657600a54600e81905550600b54600f819055505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124315750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561244957600c54600e81905550600d54600f819055505b5b61245684848484612907565b50505050565b60008383111582906124a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249b9190613358565b60405180910390fd5b50600083856124b39190613f09565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612523606461251560328661293490919063ffffffff16565b6129ae90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561254e573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125b260646125a460328661293490919063ffffffff16565b6129ae90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156125dd573d6000803e3d6000fd5b5061260560646125f760328461293490919063ffffffff16565b6129ae90919063ffffffff16565b600260008282546126169190613e43565b9250508190555050565b6000600854821115612667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265e90613faf565b60405180910390fd5b60006126716129f8565b905061268681846129ae90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126c6576126c561304e565b5b6040519080825280602002602001820160405280156126f45781602001602082028036833780820191505090505b509050308160008151811061270c5761270b6137c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d79190613fe4565b816001815181106127eb576127ea6137c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061285230601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a0e565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016128b695949392919061410a565b600060405180830381600087803b1580156128d057600080fd5b505af11580156128e4573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b8061291557612914612a23565b5b612920848484612a60565b8061292e5761292d612c2b565b5b50505050565b600080830361294657600090506129a8565b600082846129549190614164565b905082848261296391906141d5565b146129a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299a90614278565b60405180910390fd5b809150505b92915050565b60006129f083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c3f565b905092915050565b6000806000612a05612ca2565b91509150612a1c81836129ae90919063ffffffff16565b9250505090565b6000600e54148015612a3757506000600f54145b612a5e57600e54601081905550600f546011819055506000600e819055506000600f819055505b565b600080600080600080612a7287612cfe565b955095509550955095509550612ad086600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d6690919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6585600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db090919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bb181612e0e565b612bbb8483612ecb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612c189190613479565b60405180910390a3505050505050505050565b601054600e81905550601154600f81905550565b60008083118290612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d9190613358565b60405180910390fd5b5060008385612c9591906141d5565b9050809150509392505050565b60008060006008549050600066038d7ea4c680009050612cd466038d7ea4c680006008546129ae90919063ffffffff16565b821015612cf15760085466038d7ea4c68000935093505050612cfa565b81819350935050505b9091565b6000806000806000806000806000612d1b8a600e54600f54612f05565b9250925092506000612d2b6129f8565b90506000806000612d3e8e878787612f9b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612da883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061245c565b905092915050565b6000808284612dbf9190613e43565b905083811015612e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfb906142e4565b60405180910390fd5b8091505092915050565b6000612e186129f8565b90506000612e2f828461293490919063ffffffff16565b9050612e8381600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612db090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ee082600854612d6690919063ffffffff16565b600881905550612efb81600954612db090919063ffffffff16565b6009819055505050565b600080600080612f316064612f23888a61293490919063ffffffff16565b6129ae90919063ffffffff16565b90506000612f5b6064612f4d888b61293490919063ffffffff16565b6129ae90919063ffffffff16565b90506000612f8482612f76858c612d6690919063ffffffff16565b612d6690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612fb4858961293490919063ffffffff16565b90506000612fcb868961293490919063ffffffff16565b90506000612fe2878961293490919063ffffffff16565b9050600061300b82612ffd8587612d6690919063ffffffff16565b612d6690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130868261303d565b810181811067ffffffffffffffff821117156130a5576130a461304e565b5b80604052505050565b60006130b8613024565b90506130c4828261307d565b919050565b600067ffffffffffffffff8211156130e4576130e361304e565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613125826130fa565b9050919050565b6131358161311a565b811461314057600080fd5b50565b6000813590506131528161312c565b92915050565b600061316b613166846130c9565b6130ae565b9050808382526020820190506020840283018581111561318e5761318d6130f5565b5b835b818110156131b757806131a38882613143565b845260208401935050602081019050613190565b5050509392505050565b600082601f8301126131d6576131d5613038565b5b81356131e6848260208601613158565b91505092915050565b6000602082840312156132055761320461302e565b5b600082013567ffffffffffffffff81111561322357613222613033565b5b61322f848285016131c1565b91505092915050565b6000613243826130fa565b9050919050565b61325381613238565b811461325e57600080fd5b50565b6000813590506132708161324a565b92915050565b60006020828403121561328c5761328b61302e565b5b600061329a84828501613261565b91505092915050565b60008115159050919050565b6132b8816132a3565b82525050565b60006020820190506132d360008301846132af565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133135780820151818401526020810190506132f8565b60008484015250505050565b600061332a826132d9565b61333481856132e4565b93506133448185602086016132f5565b61334d8161303d565b840191505092915050565b60006020820190508181036000830152613372818461331f565b905092915050565b6000819050919050565b61338d8161337a565b811461339857600080fd5b50565b6000813590506133aa81613384565b92915050565b600080604083850312156133c7576133c661302e565b5b60006133d585828601613143565b92505060206133e68582860161339b565b9150509250929050565b6000819050919050565b600061341561341061340b846130fa565b6133f0565b6130fa565b9050919050565b6000613427826133fa565b9050919050565b60006134398261341c565b9050919050565b6134498161342e565b82525050565b60006020820190506134646000830184613440565b92915050565b6134738161337a565b82525050565b600060208201905061348e600083018461346a565b92915050565b6000806000606084860312156134ad576134ac61302e565b5b60006134bb86828701613143565b93505060206134cc86828701613143565b92505060406134dd8682870161339b565b9150509250925092565b600060ff82169050919050565b6134fd816134e7565b82525050565b600060208201905061351860008301846134f4565b92915050565b6135278161311a565b82525050565b6000602082019050613542600083018461351e565b92915050565b60006020828403121561355e5761355d61302e565b5b600061356c84828501613143565b91505092915050565b61357e816132a3565b811461358957600080fd5b50565b60008135905061359b81613575565b92915050565b6000602082840312156135b7576135b661302e565b5b60006135c58482850161358c565b91505092915050565b6000602082840312156135e4576135e361302e565b5b60006135f28482850161339b565b91505092915050565b600080600080608085870312156136155761361461302e565b5b60006136238782880161339b565b94505060206136348782880161339b565b93505060406136458782880161339b565b92505060606136568782880161339b565b91505092959194509250565b600080fd5b60008083601f84011261367d5761367c613038565b5b8235905067ffffffffffffffff81111561369a57613699613662565b5b6020830191508360208202830111156136b6576136b56130f5565b5b9250929050565b6000806000604084860312156136d6576136d561302e565b5b600084013567ffffffffffffffff8111156136f4576136f3613033565b5b61370086828701613667565b935093505060206137138682870161358c565b9150509250925092565b600080604083850312156137345761373361302e565b5b600061374285828601613143565b925050602061375385828601613143565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137936020836132e4565b915061379e8261375d565b602082019050919050565b600060208201905081810360008301526137c281613786565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006138328261337a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613864576138636137f8565b5b600182019050919050565b7f4861726420636170203425000000000000000000000000000000000000000000600082015250565b60006138a5600b836132e4565b91506138b08261386f565b602082019050919050565b600060208201905081810360008301526138d481613898565b9050919050565b7f4861726420636170203130250000000000000000000000000000000000000000600082015250565b6000613911600c836132e4565b915061391c826138db565b602082019050919050565b6000602082019050818103600083015261394081613904565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139a36026836132e4565b91506139ae82613947565b604082019050919050565b600060208201905081810360008301526139d281613996565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a356024836132e4565b9150613a40826139d9565b604082019050919050565b60006020820190508181036000830152613a6481613a28565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ac76022836132e4565b9150613ad282613a6b565b604082019050919050565b60006020820190508181036000830152613af681613aba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b596025836132e4565b9150613b6482613afd565b604082019050919050565b60006020820190508181036000830152613b8881613b4c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613beb6023836132e4565b9150613bf682613b8f565b604082019050919050565b60006020820190508181036000830152613c1a81613bde565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c7d6029836132e4565b9150613c8882613c21565b604082019050919050565b60006020820190508181036000830152613cac81613c70565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613d0f603f836132e4565b9150613d1a82613cb3565b604082019050919050565b60006020820190508181036000830152613d3e81613d02565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613d7b601c836132e4565b9150613d8682613d45565b602082019050919050565b60006020820190508181036000830152613daa81613d6e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613e0d6023836132e4565b9150613e1882613db1565b604082019050919050565b60006020820190508181036000830152613e3c81613e00565b9050919050565b6000613e4e8261337a565b9150613e598361337a565b9250828201905080821115613e7157613e706137f8565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed36023836132e4565b9150613ede82613e77565b604082019050919050565b60006020820190508181036000830152613f0281613ec6565b9050919050565b6000613f148261337a565b9150613f1f8361337a565b9250828203905081811115613f3757613f366137f8565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613f99602a836132e4565b9150613fa482613f3d565b604082019050919050565b60006020820190508181036000830152613fc881613f8c565b9050919050565b600081519050613fde8161312c565b92915050565b600060208284031215613ffa57613ff961302e565b5b600061400884828501613fcf565b91505092915050565b6000819050919050565b600061403661403161402c84614011565b6133f0565b61337a565b9050919050565b6140468161401b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140818161311a565b82525050565b60006140938383614078565b60208301905092915050565b6000602082019050919050565b60006140b78261404c565b6140c18185614057565b93506140cc83614068565b8060005b838110156140fd5781516140e48882614087565b97506140ef8361409f565b9250506001810190506140d0565b5085935050505092915050565b600060a08201905061411f600083018861346a565b61412c602083018761403d565b818103604083015261413e81866140ac565b905061414d606083018561351e565b61415a608083018461346a565b9695505050505050565b600061416f8261337a565b915061417a8361337a565b92508282026141888161337a565b9150828204841483151761419f5761419e6137f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141e08261337a565b91506141eb8361337a565b9250826141fb576141fa6141a6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006142626021836132e4565b915061426d82614206565b604082019050919050565b6000602082019050818103600083015261429181614255565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142ce601b836132e4565b91506142d982614298565b602082019050919050565b600060208201905081810360008301526142fd816142c1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ce41a803dd4a539c44e66a4738674251d5511f4898546e775c7166b4aa5952bb64736f6c63430008110033

Deployed Bytecode Sourcemap

4381:14883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13760:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19062:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7268:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8193:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6092:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7545:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8394:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6391:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7454:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6140:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18861:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13937:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18240:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13520:232;;;;;;;;;;;;;:::i;:::-;;7648:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1868:148;;;;;;;;;;;;;:::i;:::-;;18380:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6289:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5794;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1654:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13170:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6339:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7359:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18049:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17435:562;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7794:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13039:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5756:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13279:233;;;;;;;;;;;;;:::i;:::-;;18619:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8001:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18496:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2024:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13760:169;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13836:9:::1;13831:91;13855:5;:12;13851:1;:16;13831:91;;;13906:4;13889;:14;13894:5;13900:1;13894:8;;;;;;;;:::i;:::-;;;;;;;;13889:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13869:3;;;;;:::i;:::-;;;;13831:91;;;;13760:169:::0;:::o;19062:195::-;19175:4;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19217:10:::1;19197:17;;:30;;;;;;;;;;;;;;;;;;19245:4;19238:11;;19062:195:::0;;;:::o;7268:83::-;7305:13;7338:5;;;;;;;;;;;;;;;;;7331:12;;7268:83;:::o;8193:193::-;8295:4;8317:39;8326:12;:10;:12::i;:::-;8340:7;8349:6;8317:8;:39::i;:::-;8374:4;8367:11;;8193:193;;;;:::o;6092:41::-;;;;;;;;;;;;;:::o;7545:95::-;7598:7;5064:15;7618:14;;7545:95;:::o;8394:446::-;8526:4;8543:36;8553:6;8561:9;8572:6;8543:9;:36::i;:::-;8590:220;8613:6;8634:12;:10;:12::i;:::-;8661:138;8717:6;8661:138;;;;;;;;;;;;;;;;;:11;:19;8673:6;8661:19;;;;;;;;;;;;;;;:33;8681:12;:10;:12::i;:::-;8661:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8590:8;:220::i;:::-;8828:4;8821:11;;8394:446;;;;;:::o;6391:49::-;;;;:::o;7454:83::-;7495:5;4738:1;7513:16;;7454:83;:::o;6140:28::-;;;;;;;;;;;;;:::o;18861:193::-;18973:4;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19014:10:::1;18995:16;;:29;;;;;;;;;;;;;;;;;;19042:4;19035:11;;18861:193:::0;;;:::o;13937:92::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14016:5:::1;14001:4;:12;14006:6;14001:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13937:92:::0;:::o;18240:101::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18321:12:::1;18307:11;;:26;;;;;;;;;;;;;;;;;;18240:101:::0;:::o;13520:232::-;13586:16;;;;;;;;;;;13570:32;;:12;:10;:12::i;:::-;:32;;;:69;;;;13622:17;;;;;;;;;;;13606:33;;:12;:10;:12::i;:::-;:33;;;13570:69;13562:78;;;;;;13651:26;13680:21;13651:50;;13712:32;13725:18;13712:12;:32::i;:::-;13551:201;13520:232::o;7648:138::-;7714:7;7741:37;7761:7;:16;7769:7;7761:16;;;;;;;;;;;;;;;;7741:19;:37::i;:::-;7734:44;;7648:138;;;:::o;1868:148::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1975:1:::1;1938:40;;1959:6;::::0;::::1;;;;;;;;1938:40;;;;;;;;;;;;2006:1;1989:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1868:148::o:0;18380:108::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18469:11:::1;18454:12;:26;;;;18380:108:::0;:::o;6289:43::-;;;;:::o;5794:::-;;;;;;;;;;;;;;;;;:::o;1654:79::-;1692:7;1719:6;;;;;;;;;;;1712:13;;1654:79;:::o;13170:101::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13251:12:::1;13237:11;;:26;;;;;;;;;;;;;;;;;;13170:101:::0;:::o;6339:45::-;;;;:::o;7359:87::-;7398:13;7431:7;;;;;;;;;;;;;;;;;7424:14;;7359:87;:::o;18049:139::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18162:18:::1;18140:19;:40;;;;18049:139:::0;:::o;17435:562::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17639:1:::1;17621:14;;:19;;17613:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;17694:1;17675:15;;:20;;17667:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;17746:2;17730:12;;:18;;17722:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;17800:2;17784:12;;:18;;17776:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;17857:13;17840:14;:30;;;;17899:14;17881:15;:32;;;;17939:11;17924:12;:26;;;;17977:12;17961:13;:28;;;;17435:562:::0;;;;:::o;7794:199::-;7899:4;7921:42;7931:12;:10;:12::i;:::-;7945:9;7956:6;7921:9;:42::i;:::-;7981:4;7974:11;;7794:199;;;;:::o;13039:123::-;13088:7;13121:13;;13109:26;;13039:123;:::o;5756:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13279:233::-;13345:16;;;;;;;;;;;13329:32;;:12;:10;:12::i;:::-;:32;;;:69;;;;13381:17;;;;;;;;;;;13365:33;;:12;:10;:12::i;:::-;:33;;;13329:69;13321:78;;;;;;13410:23;13436:24;13454:4;13436:9;:24::i;:::-;13410:50;;13471:33;13488:15;13471:16;:33::i;:::-;13310:202;13279:233::o;18619:234::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18736:9:::1;18732:114;18755:8;;:15;;18751:1;:19;18732:114;;;18826:8;18792:18;:31;18811:8;;18820:1;18811:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18792:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18772:3;;;;;:::i;:::-;;;;18732:114;;;;18619:234:::0;;;:::o;8001:184::-;8118:7;8150:11;:18;8162:5;8150:18;;;;;;;;;;;;;;;:27;8169:7;8150:27;;;;;;;;;;;;;;;;8143:34;;8001:184;;;;:::o;18496:115::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18590:13:::1;18573:14;:30;;;;18496:115:::0;:::o;2024:244::-;1791:12;:10;:12::i;:::-;1781:22;;:6;;;;;;;;;;:22;;;1773:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2133:1:::1;2113:22;;:8;:22;;::::0;2105:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2223:8;2194:38;;2215:6;::::0;::::1;;;;;;;;2194:38;;;;;;;;;;;;2252:8;2243:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2024:244:::0;:::o;413:98::-;466:7;493:10;486:17;;413:98;:::o;9531:369::-;9675:1;9658:19;;:5;:19;;;9650:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9756:1;9737:21;;:7;:21;;;9729:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9838:6;9808:11;:18;9820:5;9808:18;;;;;;;;;;;;;;;:27;9827:7;9808:27;;;;;;;;;;;;;;;:36;;;;9876:7;9860:32;;9869:5;9860:32;;;9885:6;9860:32;;;;;;:::i;:::-;;;;;;;;9531:369;;;:::o;9908:2330::-;10046:1;10030:18;;:4;:18;;;10022:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10123:1;10109:16;;:2;:16;;;10101:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10193:1;10184:6;:10;10176:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10265:7;:5;:7::i;:::-;10257:15;;:4;:15;;;;:32;;;;;10282:7;:5;:7::i;:::-;10276:13;;:2;:13;;;;10257:32;10253:1259;;;10346:11;;;;;;;;;;;10341:144;;10394:7;:5;:7::i;:::-;10386:15;;:4;:15;;;10378:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10341:144;10519:12;;10509:6;:22;;10501:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10588:4;:10;10593:4;10588:10;;;;;;;;;;;;;;;;;;;;;;;;;10587:11;:24;;;;;10603:4;:8;10608:2;10603:8;;;;;;;;;;;;;;;;;;;;;;;;;10602:9;10587:24;10579:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10677:13;;;;;;;;;;;10671:19;;:2;:19;;;10668:146;;10744:14;;10735:6;10719:13;10729:2;10719:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10711:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10668:146;10830:28;10861:24;10879:4;10861:9;:24::i;:::-;10830:55;;10900:12;10939:19;;10915:20;:43;;10900:58;;11002:12;;10978:20;:36;10975:124;;11071:12;;11048:35;;10975:124;11119:7;:18;;;;;11131:6;;;;;;;;;;;11130:7;11119:18;:43;;;;;11149:13;;;;;;;;;;;11141:21;;:4;:21;;;;11119:43;:58;;;;;11166:11;;;;;;;;;;;11119:58;:87;;;;;11182:18;:24;11201:4;11182:24;;;;;;;;;;;;;;;;;;;;;;;;;11181:25;11119:87;:114;;;;;11211:18;:22;11230:2;11211:22;;;;;;;;;;;;;;;;;;;;;;;;;11210:23;11119:114;11115:386;;;11254:38;11271:20;11254:16;:38::i;:::-;11311:26;11340:21;11311:50;;11405:1;11384:18;:22;11380:106;;;11431:35;11444:21;11431:12;:35::i;:::-;11380:106;11235:266;11115:386;10291:1221;;10253:1259;11524:12;11539:4;11524:19;;11588:18;:24;11607:4;11588:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11616:18;:22;11635:2;11616:22;;;;;;;;;;;;;;;;;;;;;;;;;11588:50;11587:102;;;;11652:13;;;;;;;;;;;11644:21;;:4;:21;;;;:44;;;;;11675:13;;;;;;;;;;;11669:19;;:2;:19;;;;11644:44;11587:102;11583:594;;;11716:5;11706:15;;11583:594;;;11799:13;;;;;;;;;;;11791:21;;:4;:21;;;:55;;;;;11830:15;;;;;;;;;;;11816:30;;:2;:30;;;;11791:55;11788:162;;;11879:14;;11867:9;:26;;;;11922:12;;11912:7;:22;;;;11788:162;12009:13;;;;;;;;;;;12003:19;;:2;:19;;;:55;;;;;12042:15;;;;;;;;;;;12026:32;;:4;:32;;;;12003:55;11999:165;;;12091:15;;12079:9;:27;;;;12135:13;;12125:7;:23;;;;11999:165;11583:594;12189:41;12204:4;12210:2;12214:6;12222:7;12189:14;:41::i;:::-;10011:2227;9908:2330;;;:::o;2632:224::-;2752:7;2785:1;2780;:6;;2788:12;2772:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2812:9;2828:1;2824;:5;;;;:::i;:::-;2812:17;;2847:1;2840:8;;;2632:224;;;;;:::o;12737:294::-;12794:17;;;;;;;;;;;:26;;:51;12821:23;12840:3;12821:14;12832:2;12821:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12794:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12880:16;;;;;;;;;;;:25;;:50;12906:23;12925:3;12906:14;12917:2;12906:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12880:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12982:23;13001:3;12982:14;12993:2;12982:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12965:13;;:40;;;;;;;:::i;:::-;;;;;;;;12737:294;:::o;8848:323::-;8943:7;9001;;8990;:18;;8968:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9089:19;9111:10;:8;:10::i;:::-;9089:32;;9139:24;9151:11;9139:7;:11;;:24;;;;:::i;:::-;9132:31;;;8848:323;;;:::o;12246:483::-;6543:4;6534:6;;:13;;;;;;;;;;;;;;;;;;12324:21:::1;12362:1;12348:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12324:40;;12393:4;12375;12380:1;12375:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12419:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12409:4;12414:1;12409:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12452:62;12469:4;12484:15;;;;;;;;;;;12502:11;12452:8;:62::i;:::-;12525:15;;;;;;;;;;;:66;;;12606:11;12632:1;12648:4;12675;12695:15;12525:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12313:416;6579:5:::0;6570:6;;:14;;;;;;;;;;;;;;;;;;12246:483;:::o;14037:282::-;14193:7;14188:28;;14202:14;:12;:14::i;:::-;14188:28;14227:44;14245:6;14253:9;14264:6;14227:17;:44::i;:::-;14287:7;14282:29;;14296:15;:13;:15::i;:::-;14282:29;14037:282;;;;:::o;2864:246::-;2922:7;2951:1;2946;:6;2942:47;;2976:1;2969:8;;;;2942:47;2999:9;3015:1;3011;:5;;;;:::i;:::-;2999:17;;3044:1;3039;3035;:5;;;;:::i;:::-;:10;3027:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3101:1;3094:8;;;2864:246;;;;;:::o;3118:132::-;3176:7;3203:39;3207:1;3210;3203:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3196:46;;3118:132;;;;:::o;16998:164::-;17040:7;17061:15;17078;17097:19;:17;:19::i;:::-;17060:56;;;;17134:20;17146:7;17134;:11;;:20;;;;:::i;:::-;17127:27;;;;16998:164;:::o;9179:219::-;9239:1;9226:9;;:14;:30;;;;;9255:1;9244:7;;:12;9226:30;9258:7;9222:43;9297:9;;9277:17;:29;;;;9335:7;;9317:15;:25;;;;9367:1;9355:9;:13;;;;9389:1;9379:7;:11;;;;9179:219;:::o;14327:610::-;14474:15;14504:23;14542:12;14569:23;14607:12;14634:13;14661:19;14672:7;14661:10;:19::i;:::-;14459:221;;;;;;;;;;;;14709:28;14729:7;14709;:15;14717:6;14709:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14691:7;:15;14699:6;14691:15;;;;;;;;;;;;;;;:46;;;;14769:39;14792:15;14769:7;:18;14777:9;14769:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14748:7;:18;14756:9;14748:18;;;;;;;;;;;;;;;:60;;;;14819:16;14829:5;14819:9;:16::i;:::-;14846:23;14858:4;14864;14846:11;:23::i;:::-;14902:9;14885:44;;14894:6;14885:44;;;14913:15;14885:44;;;;;;:::i;:::-;;;;;;;;14448:489;;;;;;14327:610;;;:::o;9406:117::-;9462:17;;9450:9;:29;;;;9500:15;;9490:7;:25;;;;9406:117::o;3258:223::-;3378:7;3410:1;3406;:5;3413:12;3398:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3437:9;3453:1;3449;:5;;;;:::i;:::-;3437:17;;3472:1;3465:8;;;3258:223;;;;;:::o;17170:257::-;17221:7;17230;17250:15;17268:7;;17250:25;;17286:15;5064;17286:25;;17336:20;5064:15;17336:7;;:11;;:20;;;;:::i;:::-;17326:7;:30;17322:61;;;17366:7;;5064:15;17358:25;;;;;;;;17322:61;17402:7;17411;17394:25;;;;;;17170:257;;;:::o;15356:615::-;15456:7;15478;15500;15522;15544;15566;15602:23;15627:12;15641:13;15671:40;15683:7;15692:9;;15703:7;;15671:11;:40::i;:::-;15601:110;;;;;;15722:19;15744:10;:8;:10::i;:::-;15722:32;;15766:15;15783:23;15808:12;15837:46;15849:7;15858:4;15864:5;15871:11;15837;:46::i;:::-;15765:118;;;;;;15902:7;15911:15;15928:4;15934:15;15951:4;15957:5;15894:69;;;;;;;;;;;;;;;;;;;15356:615;;;;;;;:::o;2488:136::-;2546:7;2573:43;2577:1;2580;2573:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2566:50;;2488:136;;;;:::o;2301:179::-;2359:7;2379:9;2395:1;2391;:5;;;;:::i;:::-;2379:17;;2420:1;2415;:6;;2407:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2471:1;2464:8;;;2301:179;;;;:::o;14945:211::-;14998:19;15020:10;:8;:10::i;:::-;14998:32;;15041:13;15057:22;15067:11;15057:5;:9;;:22;;;;:::i;:::-;15041:38;;15115:33;15142:5;15115:7;:22;15131:4;15115:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15090:7;:22;15106:4;15090:22;;;;;;;;;;;;;;;:58;;;;14987:169;;14945:211;:::o;15164:147::-;15242:17;15254:4;15242:7;;:11;;:17;;;;:::i;:::-;15232:7;:27;;;;15283:20;15298:4;15283:10;;:14;;:20;;;;:::i;:::-;15270:10;:33;;;;15164:147;;:::o;15979:469::-;16148:7;16170;16192;16227:12;16242:30;16268:3;16242:21;16254:8;16242:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16227:45;;16283:13;16299:28;16323:3;16299:19;16311:6;16299:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16283:44;;16338:23;16364:28;16386:5;16364:17;16376:4;16364:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16338:54;;16411:15;16428:4;16434:5;16403:37;;;;;;;;;15979:469;;;;;;;:::o;16456:534::-;16650:7;16672;16694;16729:15;16747:24;16759:11;16747:7;:11;;:24;;;;:::i;:::-;16729:42;;16782:12;16797:21;16806:11;16797:4;:8;;:21;;;;:::i;:::-;16782:36;;16829:13;16845:22;16855:11;16845:5;:9;;:22;;;;:::i;:::-;16829:38;;16878:23;16904:28;16926:5;16904:17;16916:4;16904:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16878:54;;16951:7;16960:15;16977:4;16943:39;;;;;;;;;;16456:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:104::-;3836:7;3865:24;3883:5;3865:24;:::i;:::-;3854:35;;3791:104;;;:::o;3901:138::-;3982:32;4008:5;3982:32;:::i;:::-;3975:5;3972:43;3962:71;;4029:1;4026;4019:12;3962:71;3901:138;:::o;4045:155::-;4099:5;4137:6;4124:20;4115:29;;4153:41;4188:5;4153:41;:::i;:::-;4045:155;;;;:::o;4206:345::-;4273:6;4322:2;4310:9;4301:7;4297:23;4293:32;4290:119;;;4328:79;;:::i;:::-;4290:119;4448:1;4473:61;4526:7;4517:6;4506:9;4502:22;4473:61;:::i;:::-;4463:71;;4419:125;4206:345;;;;:::o;4557:90::-;4591:7;4634:5;4627:13;4620:21;4609:32;;4557:90;;;:::o;4653:109::-;4734:21;4749:5;4734:21;:::i;:::-;4729:3;4722:34;4653:109;;:::o;4768:210::-;4855:4;4893:2;4882:9;4878:18;4870:26;;4906:65;4968:1;4957:9;4953:17;4944:6;4906:65;:::i;:::-;4768:210;;;;:::o;4984:99::-;5036:6;5070:5;5064:12;5054:22;;4984:99;;;:::o;5089:169::-;5173:11;5207:6;5202:3;5195:19;5247:4;5242:3;5238:14;5223:29;;5089:169;;;;:::o;5264:246::-;5345:1;5355:113;5369:6;5366:1;5363:13;5355:113;;;5454:1;5449:3;5445:11;5439:18;5435:1;5430:3;5426:11;5419:39;5391:2;5388:1;5384:10;5379:15;;5355:113;;;5502:1;5493:6;5488:3;5484:16;5477:27;5326:184;5264:246;;;:::o;5516:377::-;5604:3;5632:39;5665:5;5632:39;:::i;:::-;5687:71;5751:6;5746:3;5687:71;:::i;:::-;5680:78;;5767:65;5825:6;5820:3;5813:4;5806:5;5802:16;5767:65;:::i;:::-;5857:29;5879:6;5857:29;:::i;:::-;5852:3;5848:39;5841:46;;5608:285;5516:377;;;;:::o;5899:313::-;6012:4;6050:2;6039:9;6035:18;6027:26;;6099:9;6093:4;6089:20;6085:1;6074:9;6070:17;6063:47;6127:78;6200:4;6191:6;6127:78;:::i;:::-;6119:86;;5899:313;;;;:::o;6218:77::-;6255:7;6284:5;6273:16;;6218:77;;;:::o;6301:122::-;6374:24;6392:5;6374:24;:::i;:::-;6367:5;6364:35;6354:63;;6413:1;6410;6403:12;6354:63;6301:122;:::o;6429:139::-;6475:5;6513:6;6500:20;6491:29;;6529:33;6556:5;6529:33;:::i;:::-;6429:139;;;;:::o;6574:474::-;6642:6;6650;6699:2;6687:9;6678:7;6674:23;6670:32;6667:119;;;6705:79;;:::i;:::-;6667:119;6825:1;6850:53;6895:7;6886:6;6875:9;6871:22;6850:53;:::i;:::-;6840:63;;6796:117;6952:2;6978:53;7023:7;7014:6;7003:9;6999:22;6978:53;:::i;:::-;6968:63;;6923:118;6574:474;;;;;:::o;7054:60::-;7082:3;7103:5;7096:12;;7054:60;;;:::o;7120:142::-;7170:9;7203:53;7221:34;7230:24;7248:5;7230:24;:::i;:::-;7221:34;:::i;:::-;7203:53;:::i;:::-;7190:66;;7120:142;;;:::o;7268:126::-;7318:9;7351:37;7382:5;7351:37;:::i;:::-;7338:50;;7268:126;;;:::o;7400:152::-;7476:9;7509:37;7540:5;7509:37;:::i;:::-;7496:50;;7400:152;;;:::o;7558:183::-;7671:63;7728:5;7671:63;:::i;:::-;7666:3;7659:76;7558:183;;:::o;7747:274::-;7866:4;7904:2;7893:9;7889:18;7881:26;;7917:97;8011:1;8000:9;7996:17;7987:6;7917:97;:::i;:::-;7747:274;;;;:::o;8027:118::-;8114:24;8132:5;8114:24;:::i;:::-;8109:3;8102:37;8027:118;;:::o;8151:222::-;8244:4;8282:2;8271:9;8267:18;8259:26;;8295:71;8363:1;8352:9;8348:17;8339:6;8295:71;:::i;:::-;8151:222;;;;:::o;8379:619::-;8456:6;8464;8472;8521:2;8509:9;8500:7;8496:23;8492:32;8489:119;;;8527:79;;:::i;:::-;8489:119;8647:1;8672:53;8717:7;8708:6;8697:9;8693:22;8672:53;:::i;:::-;8662:63;;8618:117;8774:2;8800:53;8845:7;8836:6;8825:9;8821:22;8800:53;:::i;:::-;8790:63;;8745:118;8902:2;8928:53;8973:7;8964:6;8953:9;8949:22;8928:53;:::i;:::-;8918:63;;8873:118;8379:619;;;;;:::o;9004:86::-;9039:7;9079:4;9072:5;9068:16;9057:27;;9004:86;;;:::o;9096:112::-;9179:22;9195:5;9179:22;:::i;:::-;9174:3;9167:35;9096:112;;:::o;9214:214::-;9303:4;9341:2;9330:9;9326:18;9318:26;;9354:67;9418:1;9407:9;9403:17;9394:6;9354:67;:::i;:::-;9214:214;;;;:::o;9434:118::-;9521:24;9539:5;9521:24;:::i;:::-;9516:3;9509:37;9434:118;;:::o;9558:222::-;9651:4;9689:2;9678:9;9674:18;9666:26;;9702:71;9770:1;9759:9;9755:17;9746:6;9702:71;:::i;:::-;9558:222;;;;:::o;9786:329::-;9845:6;9894:2;9882:9;9873:7;9869:23;9865:32;9862:119;;;9900:79;;:::i;:::-;9862:119;10020:1;10045:53;10090:7;10081:6;10070:9;10066:22;10045:53;:::i;:::-;10035:63;;9991:117;9786:329;;;;:::o;10121:116::-;10191:21;10206:5;10191:21;:::i;:::-;10184:5;10181:32;10171:60;;10227:1;10224;10217:12;10171:60;10121:116;:::o;10243:133::-;10286:5;10324:6;10311:20;10302:29;;10340:30;10364:5;10340:30;:::i;:::-;10243:133;;;;:::o;10382:323::-;10438:6;10487:2;10475:9;10466:7;10462:23;10458:32;10455:119;;;10493:79;;:::i;:::-;10455:119;10613:1;10638:50;10680:7;10671:6;10660:9;10656:22;10638:50;:::i;:::-;10628:60;;10584:114;10382:323;;;;:::o;10711:329::-;10770:6;10819:2;10807:9;10798:7;10794:23;10790:32;10787:119;;;10825:79;;:::i;:::-;10787:119;10945:1;10970:53;11015:7;11006:6;10995:9;10991:22;10970:53;:::i;:::-;10960:63;;10916:117;10711:329;;;;:::o;11046:765::-;11132:6;11140;11148;11156;11205:3;11193:9;11184:7;11180:23;11176:33;11173:120;;;11212:79;;:::i;:::-;11173:120;11332:1;11357:53;11402:7;11393:6;11382:9;11378:22;11357:53;:::i;:::-;11347:63;;11303:117;11459:2;11485:53;11530:7;11521:6;11510:9;11506:22;11485:53;:::i;:::-;11475:63;;11430:118;11587:2;11613:53;11658:7;11649:6;11638:9;11634:22;11613:53;:::i;:::-;11603:63;;11558:118;11715:2;11741:53;11786:7;11777:6;11766:9;11762:22;11741:53;:::i;:::-;11731:63;;11686:118;11046:765;;;;;;;:::o;11817:117::-;11926:1;11923;11916:12;11957:568;12030:8;12040:6;12090:3;12083:4;12075:6;12071:17;12067:27;12057:122;;12098:79;;:::i;:::-;12057:122;12211:6;12198:20;12188:30;;12241:18;12233:6;12230:30;12227:117;;;12263:79;;:::i;:::-;12227:117;12377:4;12369:6;12365:17;12353:29;;12431:3;12423:4;12415:6;12411:17;12401:8;12397:32;12394:41;12391:128;;;12438:79;;:::i;:::-;12391:128;11957:568;;;;;:::o;12531:698::-;12623:6;12631;12639;12688:2;12676:9;12667:7;12663:23;12659:32;12656:119;;;12694:79;;:::i;:::-;12656:119;12842:1;12831:9;12827:17;12814:31;12872:18;12864:6;12861:30;12858:117;;;12894:79;;:::i;:::-;12858:117;13007:80;13079:7;13070:6;13059:9;13055:22;13007:80;:::i;:::-;12989:98;;;;12785:312;13136:2;13162:50;13204:7;13195:6;13184:9;13180:22;13162:50;:::i;:::-;13152:60;;13107:115;12531:698;;;;;:::o;13235:474::-;13303:6;13311;13360:2;13348:9;13339:7;13335:23;13331:32;13328:119;;;13366:79;;:::i;:::-;13328:119;13486:1;13511:53;13556:7;13547:6;13536:9;13532:22;13511:53;:::i;:::-;13501:63;;13457:117;13613:2;13639:53;13684:7;13675:6;13664:9;13660:22;13639:53;:::i;:::-;13629:63;;13584:118;13235:474;;;;;:::o;13715:182::-;13855:34;13851:1;13843:6;13839:14;13832:58;13715:182;:::o;13903:366::-;14045:3;14066:67;14130:2;14125:3;14066:67;:::i;:::-;14059:74;;14142:93;14231:3;14142:93;:::i;:::-;14260:2;14255:3;14251:12;14244:19;;13903:366;;;:::o;14275:419::-;14441:4;14479:2;14468:9;14464:18;14456:26;;14528:9;14522:4;14518:20;14514:1;14503:9;14499:17;14492:47;14556:131;14682:4;14556:131;:::i;:::-;14548:139;;14275:419;;;:::o;14700:180::-;14748:77;14745:1;14738:88;14845:4;14842:1;14835:15;14869:4;14866:1;14859:15;14886:180;14934:77;14931:1;14924:88;15031:4;15028:1;15021:15;15055:4;15052:1;15045:15;15072:233;15111:3;15134:24;15152:5;15134:24;:::i;:::-;15125:33;;15180:66;15173:5;15170:77;15167:103;;15250:18;;:::i;:::-;15167:103;15297:1;15290:5;15286:13;15279:20;;15072:233;;;:::o;15311:161::-;15451:13;15447:1;15439:6;15435:14;15428:37;15311:161;:::o;15478:366::-;15620:3;15641:67;15705:2;15700:3;15641:67;:::i;:::-;15634:74;;15717:93;15806:3;15717:93;:::i;:::-;15835:2;15830:3;15826:12;15819:19;;15478:366;;;:::o;15850:419::-;16016:4;16054:2;16043:9;16039:18;16031:26;;16103:9;16097:4;16093:20;16089:1;16078:9;16074:17;16067:47;16131:131;16257:4;16131:131;:::i;:::-;16123:139;;15850:419;;;:::o;16275:162::-;16415:14;16411:1;16403:6;16399:14;16392:38;16275:162;:::o;16443:366::-;16585:3;16606:67;16670:2;16665:3;16606:67;:::i;:::-;16599:74;;16682:93;16771:3;16682:93;:::i;:::-;16800:2;16795:3;16791:12;16784:19;;16443:366;;;:::o;16815:419::-;16981:4;17019:2;17008:9;17004:18;16996:26;;17068:9;17062:4;17058:20;17054:1;17043:9;17039:17;17032:47;17096:131;17222:4;17096:131;:::i;:::-;17088:139;;16815:419;;;:::o;17240:225::-;17380:34;17376:1;17368:6;17364:14;17357:58;17449:8;17444:2;17436:6;17432:15;17425:33;17240:225;:::o;17471:366::-;17613:3;17634:67;17698:2;17693:3;17634:67;:::i;:::-;17627:74;;17710:93;17799:3;17710:93;:::i;:::-;17828:2;17823:3;17819:12;17812:19;;17471:366;;;:::o;17843:419::-;18009:4;18047:2;18036:9;18032:18;18024:26;;18096:9;18090:4;18086:20;18082:1;18071:9;18067:17;18060:47;18124:131;18250:4;18124:131;:::i;:::-;18116:139;;17843:419;;;:::o;18268:223::-;18408:34;18404:1;18396:6;18392:14;18385:58;18477:6;18472:2;18464:6;18460:15;18453:31;18268:223;:::o;18497:366::-;18639:3;18660:67;18724:2;18719:3;18660:67;:::i;:::-;18653:74;;18736:93;18825:3;18736:93;:::i;:::-;18854:2;18849:3;18845:12;18838:19;;18497:366;;;:::o;18869:419::-;19035:4;19073:2;19062:9;19058:18;19050:26;;19122:9;19116:4;19112:20;19108:1;19097:9;19093:17;19086:47;19150:131;19276:4;19150:131;:::i;:::-;19142:139;;18869:419;;;:::o;19294:221::-;19434:34;19430:1;19422:6;19418:14;19411:58;19503:4;19498:2;19490:6;19486:15;19479:29;19294:221;:::o;19521:366::-;19663:3;19684:67;19748:2;19743:3;19684:67;:::i;:::-;19677:74;;19760:93;19849:3;19760:93;:::i;:::-;19878:2;19873:3;19869:12;19862:19;;19521:366;;;:::o;19893:419::-;20059:4;20097:2;20086:9;20082:18;20074:26;;20146:9;20140:4;20136:20;20132:1;20121:9;20117:17;20110:47;20174:131;20300:4;20174:131;:::i;:::-;20166:139;;19893:419;;;:::o;20318:224::-;20458:34;20454:1;20446:6;20442:14;20435:58;20527:7;20522:2;20514:6;20510:15;20503:32;20318:224;:::o;20548:366::-;20690:3;20711:67;20775:2;20770:3;20711:67;:::i;:::-;20704:74;;20787:93;20876:3;20787:93;:::i;:::-;20905:2;20900:3;20896:12;20889:19;;20548:366;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;20920:419;;;:::o;21345:222::-;21485:34;21481:1;21473:6;21469:14;21462:58;21554:5;21549:2;21541:6;21537:15;21530:30;21345:222;:::o;21573:366::-;21715:3;21736:67;21800:2;21795:3;21736:67;:::i;:::-;21729:74;;21812:93;21901:3;21812:93;:::i;:::-;21930:2;21925:3;21921:12;21914:19;;21573:366;;;:::o;21945:419::-;22111:4;22149:2;22138:9;22134:18;22126:26;;22198:9;22192:4;22188:20;22184:1;22173:9;22169:17;22162:47;22226:131;22352:4;22226:131;:::i;:::-;22218:139;;21945:419;;;:::o;22370:228::-;22510:34;22506:1;22498:6;22494:14;22487:58;22579:11;22574:2;22566:6;22562:15;22555:36;22370:228;:::o;22604:366::-;22746:3;22767:67;22831:2;22826:3;22767:67;:::i;:::-;22760:74;;22843:93;22932:3;22843:93;:::i;:::-;22961:2;22956:3;22952:12;22945:19;;22604:366;;;:::o;22976:419::-;23142:4;23180:2;23169:9;23165:18;23157:26;;23229:9;23223:4;23219:20;23215:1;23204:9;23200:17;23193:47;23257:131;23383:4;23257:131;:::i;:::-;23249:139;;22976:419;;;:::o;23401:250::-;23541:34;23537:1;23529:6;23525:14;23518:58;23610:33;23605:2;23597:6;23593:15;23586:58;23401:250;:::o;23657:366::-;23799:3;23820:67;23884:2;23879:3;23820:67;:::i;:::-;23813:74;;23896:93;23985:3;23896:93;:::i;:::-;24014:2;24009:3;24005:12;23998:19;;23657:366;;;:::o;24029:419::-;24195:4;24233:2;24222:9;24218:18;24210:26;;24282:9;24276:4;24272:20;24268:1;24257:9;24253:17;24246:47;24310:131;24436:4;24310:131;:::i;:::-;24302:139;;24029:419;;;:::o;24454:178::-;24594:30;24590:1;24582:6;24578:14;24571:54;24454:178;:::o;24638:366::-;24780:3;24801:67;24865:2;24860:3;24801:67;:::i;:::-;24794:74;;24877:93;24966:3;24877:93;:::i;:::-;24995:2;24990:3;24986:12;24979:19;;24638:366;;;:::o;25010:419::-;25176:4;25214:2;25203:9;25199:18;25191:26;;25263:9;25257:4;25253:20;25249:1;25238:9;25234:17;25227:47;25291:131;25417:4;25291:131;:::i;:::-;25283:139;;25010:419;;;:::o;25435:222::-;25575:34;25571:1;25563:6;25559:14;25552:58;25644:5;25639:2;25631:6;25627:15;25620:30;25435:222;:::o;25663:366::-;25805:3;25826:67;25890:2;25885:3;25826:67;:::i;:::-;25819:74;;25902:93;25991:3;25902:93;:::i;:::-;26020:2;26015:3;26011:12;26004:19;;25663:366;;;:::o;26035:419::-;26201:4;26239:2;26228:9;26224:18;26216:26;;26288:9;26282:4;26278:20;26274:1;26263:9;26259:17;26252:47;26316:131;26442:4;26316:131;:::i;:::-;26308:139;;26035:419;;;:::o;26460:191::-;26500:3;26519:20;26537:1;26519:20;:::i;:::-;26514:25;;26553:20;26571:1;26553:20;:::i;:::-;26548:25;;26596:1;26593;26589:9;26582:16;;26617:3;26614:1;26611:10;26608:36;;;26624:18;;:::i;:::-;26608:36;26460:191;;;;:::o;26657:222::-;26797:34;26793:1;26785:6;26781:14;26774:58;26866:5;26861:2;26853:6;26849:15;26842:30;26657:222;:::o;26885:366::-;27027:3;27048:67;27112:2;27107:3;27048:67;:::i;:::-;27041:74;;27124:93;27213:3;27124:93;:::i;:::-;27242:2;27237:3;27233:12;27226:19;;26885:366;;;:::o;27257:419::-;27423:4;27461:2;27450:9;27446:18;27438:26;;27510:9;27504:4;27500:20;27496:1;27485:9;27481:17;27474:47;27538:131;27664:4;27538:131;:::i;:::-;27530:139;;27257:419;;;:::o;27682:194::-;27722:4;27742:20;27760:1;27742:20;:::i;:::-;27737:25;;27776:20;27794:1;27776:20;:::i;:::-;27771:25;;27820:1;27817;27813:9;27805:17;;27844:1;27838:4;27835:11;27832:37;;;27849:18;;:::i;:::-;27832:37;27682:194;;;;:::o;27882:229::-;28022:34;28018:1;28010:6;28006:14;27999:58;28091:12;28086:2;28078:6;28074:15;28067:37;27882:229;:::o;28117:366::-;28259:3;28280:67;28344:2;28339:3;28280:67;:::i;:::-;28273:74;;28356:93;28445:3;28356:93;:::i;:::-;28474:2;28469:3;28465:12;28458:19;;28117:366;;;:::o;28489:419::-;28655:4;28693:2;28682:9;28678:18;28670:26;;28742:9;28736:4;28732:20;28728:1;28717:9;28713:17;28706:47;28770:131;28896:4;28770:131;:::i;:::-;28762:139;;28489:419;;;:::o;28914:143::-;28971:5;29002:6;28996:13;28987:22;;29018:33;29045:5;29018:33;:::i;:::-;28914:143;;;;:::o;29063:351::-;29133:6;29182:2;29170:9;29161:7;29157:23;29153:32;29150:119;;;29188:79;;:::i;:::-;29150:119;29308:1;29333:64;29389:7;29380:6;29369:9;29365:22;29333:64;:::i;:::-;29323:74;;29279:128;29063:351;;;;:::o;29420:85::-;29465:7;29494:5;29483:16;;29420:85;;;:::o;29511:158::-;29569:9;29602:61;29620:42;29629:32;29655:5;29629:32;:::i;:::-;29620:42;:::i;:::-;29602:61;:::i;:::-;29589:74;;29511:158;;;:::o;29675:147::-;29770:45;29809:5;29770:45;:::i;:::-;29765:3;29758:58;29675:147;;:::o;29828:114::-;29895:6;29929:5;29923:12;29913:22;;29828:114;;;:::o;29948:184::-;30047:11;30081:6;30076:3;30069:19;30121:4;30116:3;30112:14;30097:29;;29948:184;;;;:::o;30138:132::-;30205:4;30228:3;30220:11;;30258:4;30253:3;30249:14;30241:22;;30138:132;;;:::o;30276:108::-;30353:24;30371:5;30353:24;:::i;:::-;30348:3;30341:37;30276:108;;:::o;30390:179::-;30459:10;30480:46;30522:3;30514:6;30480:46;:::i;:::-;30558:4;30553:3;30549:14;30535:28;;30390:179;;;;:::o;30575:113::-;30645:4;30677;30672:3;30668:14;30660:22;;30575:113;;;:::o;30724:732::-;30843:3;30872:54;30920:5;30872:54;:::i;:::-;30942:86;31021:6;31016:3;30942:86;:::i;:::-;30935:93;;31052:56;31102:5;31052:56;:::i;:::-;31131:7;31162:1;31147:284;31172:6;31169:1;31166:13;31147:284;;;31248:6;31242:13;31275:63;31334:3;31319:13;31275:63;:::i;:::-;31268:70;;31361:60;31414:6;31361:60;:::i;:::-;31351:70;;31207:224;31194:1;31191;31187:9;31182:14;;31147:284;;;31151:14;31447:3;31440:10;;30848:608;;;30724:732;;;;:::o;31462:831::-;31725:4;31763:3;31752:9;31748:19;31740:27;;31777:71;31845:1;31834:9;31830:17;31821:6;31777:71;:::i;:::-;31858:80;31934:2;31923:9;31919:18;31910:6;31858:80;:::i;:::-;31985:9;31979:4;31975:20;31970:2;31959:9;31955:18;31948:48;32013:108;32116:4;32107:6;32013:108;:::i;:::-;32005:116;;32131:72;32199:2;32188:9;32184:18;32175:6;32131:72;:::i;:::-;32213:73;32281:3;32270:9;32266:19;32257:6;32213:73;:::i;:::-;31462:831;;;;;;;;:::o;32299:410::-;32339:7;32362:20;32380:1;32362:20;:::i;:::-;32357:25;;32396:20;32414:1;32396:20;:::i;:::-;32391:25;;32451:1;32448;32444:9;32473:30;32491:11;32473:30;:::i;:::-;32462:41;;32652:1;32643:7;32639:15;32636:1;32633:22;32613:1;32606:9;32586:83;32563:139;;32682:18;;:::i;:::-;32563:139;32347:362;32299:410;;;;:::o;32715:180::-;32763:77;32760:1;32753:88;32860:4;32857:1;32850:15;32884:4;32881:1;32874:15;32901:185;32941:1;32958:20;32976:1;32958:20;:::i;:::-;32953:25;;32992:20;33010:1;32992:20;:::i;:::-;32987:25;;33031:1;33021:35;;33036:18;;:::i;:::-;33021:35;33078:1;33075;33071:9;33066:14;;32901:185;;;;:::o;33092:220::-;33232:34;33228:1;33220:6;33216:14;33209:58;33301:3;33296:2;33288:6;33284:15;33277:28;33092:220;:::o;33318:366::-;33460:3;33481:67;33545:2;33540:3;33481:67;:::i;:::-;33474:74;;33557:93;33646:3;33557:93;:::i;:::-;33675:2;33670:3;33666:12;33659:19;;33318:366;;;:::o;33690:419::-;33856:4;33894:2;33883:9;33879:18;33871:26;;33943:9;33937:4;33933:20;33929:1;33918:9;33914:17;33907:47;33971:131;34097:4;33971:131;:::i;:::-;33963:139;;33690:419;;;:::o;34115:177::-;34255:29;34251:1;34243:6;34239:14;34232:53;34115:177;:::o;34298:366::-;34440:3;34461:67;34525:2;34520:3;34461:67;:::i;:::-;34454:74;;34537:93;34626:3;34537:93;:::i;:::-;34655:2;34650:3;34646:12;34639:19;;34298:366;;;:::o;34670:419::-;34836:4;34874:2;34863:9;34859:18;34851:26;;34923:9;34917:4;34913:20;34909:1;34898:9;34894:17;34887:47;34951:131;35077:4;34951:131;:::i;:::-;34943:139;;34670:419;;;:::o

Swarm Source

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