ETH Price: $2,416.15 (-0.06%)

Token

DESTINY (DSY)
 

Overview

Max Total Supply

1,000,000,000 DSY

Holders

129

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
336,060.307612968 DSY

Value
$0.00
0x021b02fae0f2c5371153de93aef3ed05a5266b2d
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:
DestinyToken

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**


██████╗░███████╗░██████╗████████╗██╗███╗░░██╗██╗░░░██╗
██╔══██╗██╔════╝██╔════╝╚══██╔══╝██║████╗░██║╚██╗░██╔╝
██║░░██║█████╗░░╚█████╗░░░░██║░░░██║██╔██╗██║░╚████╔╝░
██║░░██║██╔══╝░░░╚═══██╗░░░██║░░░██║██║╚████║░░╚██╔╝░░
██████╔╝███████╗██████╔╝░░░██║░░░██║██║░╚███║░░░██║░░░
╚═════╝░╚══════╝╚═════╝░░░░╚═╝░░░╚═╝╚═╝░░╚══╝░░░╚═╝░░░

*********
Elon Musk tweeted about destiny: https://twitter.com/elonmusk/status/1662293507925590016

Website: https://www.destinytoken.vip
Twitter: https://twitter.com/DestinyToken
Telegram: https://t.me/DestinyERC20

*********

**/


// 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 internal _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 DestinyToken  is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "DESTINY";
    string private constant _symbol = "DSY";
    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;
    mapping(address => bool) private _isExcludedFromMax;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 1_000_000_000 * 10**9;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 30;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 35;
 
    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 _marketingAddress = payable(0x2653C7Ab1aC1a7B45E4dD4bc53CA25B07716Ded5);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    address private _uncxLPLocker = 0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(100).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);
 
    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[_marketingAddress] = true;
        _isExcludedFromFee[address(_uniswapV2Router)] = true;
        _isExcludedFromFee[_uncxLPLocker] = true; //UNCX LP Lock address

        _isExcludedFromMax[owner()] = true;
        _isExcludedFromMax[address(this)] = true;
        _isExcludedFromMax[_marketingAddress] = true;
        _isExcludedFromMax[address(_uniswapV2Router)] = true;
        _isExcludedFromMax[_uncxLPLocker] = true; //UNCX LP Lock address


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

            if (!_isExcludedFromMax[from]){
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            }
            
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair && !_isExcludedFromMax[to]) {
                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);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require( _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require( _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unsetBot(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 {

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

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


}

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":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":"amountPercent","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":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unsetBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000b80565b6000196200002b919062000be7565b6007556000600955601e600a556000600b556023600c55600b54600d55600c54600e55600d54600f55600e54601055732653c7ab1ac1a7b45e4dd4bc53ca25b07716ded5601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073663a5c229c09b049e36dcc11a9b0d4a8eb9db214601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550620001766064620001626064670de0b6b3a7640000620009d860201b6200137d1790919060201c565b62000a5c60201b620013f81790919060201c565b601755620001b66064620001a26002670de0b6b3a7640000620009d860201b6200137d1790919060201c565b62000a5c60201b620013f81790919060201c565b601855620001f76103e8620001e36001670de0b6b3a7640000620009d860201b6200137d1790919060201c565b62000a5c60201b620013f81790919060201c565b6019553480156200020757600080fd5b5060006200021a62000aae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620002cf62000aae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ae57600080fd5b505afa158015620003c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e9919062000c8c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200044c57600080fd5b505afa15801562000461573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000487919062000c8c565b6040518363ffffffff1660e01b8152600401620004a692919062000ccf565b602060405180830381600087803b158015620004c157600080fd5b505af1158015620004d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fc919062000c8c565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200055262000ab660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660006200075d62000ab660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200096262000aae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620009c9919062000d0d565b60405180910390a35062000f23565b600080831415620009ed576000905062000a56565b60008284620009fd919062000d2a565b905082848262000a0e919062000d8b565b1462000a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a489062000e4a565b60405180910390fd5b809150505b92915050565b600062000aa683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000adf60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b20919062000eff565b60405180910390fd5b506000838562000b3a919062000d8b565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b8d8262000b47565b915062000b9a8362000b47565b92508262000bad5762000bac62000b51565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bf48262000b47565b915062000c018362000b47565b92508282101562000c175762000c1662000bb8565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c548262000c27565b9050919050565b62000c668162000c47565b811462000c7257600080fd5b50565b60008151905062000c868162000c5b565b92915050565b60006020828403121562000ca55762000ca462000c22565b5b600062000cb58482850162000c75565b91505092915050565b62000cc98162000c47565b82525050565b600060408201905062000ce6600083018562000cbe565b62000cf5602083018462000cbe565b9392505050565b62000d078162000b47565b82525050565b600060208201905062000d24600083018462000cfc565b92915050565b600062000d378262000b47565b915062000d448362000b47565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d805762000d7f62000bb8565b5b828202905092915050565b600062000d988262000b47565b915062000da58362000b47565b92508262000db85762000db762000b51565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e3260218362000dc3565b915062000e3f8262000dd4565b604082019050919050565b6000602082019050818103600083015262000e658162000e23565b9050919050565b600081519050919050565b60005b8381101562000e9757808201518184015260208101905062000e7a565b8381111562000ea7576000848401525b50505050565b6000601f19601f8301169050919050565b600062000ecb8262000e6c565b62000ed7818562000dc3565b935062000ee981856020860162000e77565b62000ef48162000ead565b840191505092915050565b6000602082019050818103600083015262000f1b818462000ebe565b905092915050565b613af08062000f336000396000f3fe6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c3c8cd8011610064578063c3c8cd80146105f5578063dd62ed3e1461060c578063ea1644d514610649578063f2fde38b14610672576101c2565b8063a9059cbb14610552578063b515566a1461058f578063bfd79284146105b8576101c2565b80638f9a55c0116100c65780638f9a55c0146104aa57806395d89b41146104d557806398a5c31514610500578063a2a957bb14610529576101c2565b80637f2feddc146104195780638da5cb5b146104565780638f70ccf714610481576101c2565b8063313ce5671161015957806370a082311161013357806370a0823114610383578063715018a6146103c0578063751039fc146103d75780637d1db4a5146103ee576101c2565b8063313ce5671461031657806349bd5a5e146103415780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632b89628b146102c25780632fd689e3146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61069b565b6040516101e99190612a05565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612acf565b6106d8565b6040516102269190612b2a565b60405180910390f35b34801561023b57600080fd5b506102446106f6565b6040516102519190612ba4565b60405180910390f35b34801561026657600080fd5b5061026f61071c565b60405161027c9190612bce565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612be9565b61072c565b6040516102b99190612b2a565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612c3c565b610805565b005b3480156102f757600080fd5b506103006108f5565b60405161030d9190612bce565b60405180910390f35b34801561032257600080fd5b5061032b6108fb565b6040516103389190612c85565b60405180910390f35b34801561034d57600080fd5b50610356610904565b6040516103639190612caf565b60405180910390f35b34801561037857600080fd5b5061038161092a565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612c3c565b61099c565b6040516103b79190612bce565b60405180910390f35b3480156103cc57600080fd5b506103d56109ed565b005b3480156103e357600080fd5b506103ec610b40565b005b3480156103fa57600080fd5b50610403610bf5565b6040516104109190612bce565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b9190612c3c565b610bfb565b60405161044d9190612bce565b60405180910390f35b34801561046257600080fd5b5061046b610c13565b6040516104789190612caf565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612cf6565b610c3c565b005b3480156104b657600080fd5b506104bf610cee565b6040516104cc9190612bce565b60405180910390f35b3480156104e157600080fd5b506104ea610cf4565b6040516104f79190612a05565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612d23565b610d31565b005b34801561053557600080fd5b50610550600480360381019061054b9190612d50565b610dd0565b005b34801561055e57600080fd5b5061057960048036038101906105749190612acf565b610e87565b6040516105869190612b2a565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190612eff565b610ea5565b005b3480156105c457600080fd5b506105df60048036038101906105da9190612c3c565b610fcf565b6040516105ec9190612b2a565b60405180910390f35b34801561060157600080fd5b5061060a610fef565b005b34801561061857600080fd5b50610633600480360381019061062e9190612f48565b611069565b6040516106409190612bce565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190612d23565b6110f0565b005b34801561067e57600080fd5b5061069960048036038101906106949190612c3c565b6111bb565b005b60606040518060400160405280600781526020017f44455354494e5900000000000000000000000000000000000000000000000000815250905090565b60006106ec6106e5611442565b848461144a565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610739848484611615565b6107fa84610745611442565b6107f585604051806060016040528060288152602001613a9360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ab611442565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f449092919063ffffffff16565b61144a565b600190509392505050565b61080d611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612fd4565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60195481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096b611442565b73ffffffffffffffffffffffffffffffffffffffff161461098b57600080fd5b600047905061099981611fa8565b50565b60006109e6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612014565b9050919050565b6109f5611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990612fd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b48611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc90612fd4565b60405180910390fd5b670de0b6b3a7640000601781905550670de0b6b3a7640000601881905550565b60175481565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c44611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612fd4565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f4453590000000000000000000000000000000000000000000000000000000000815250905090565b610d39611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd90612fd4565b60405180910390fd5b8060198190555050565b610dd8611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c90612fd4565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b6000610e9b610e94611442565b8484611615565b6001905092915050565b610ead611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190612fd4565b60405180910390fd5b60005b8151811015610fcb57600160116000848481518110610f5f57610f5e612ff4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fc390613052565b915050610f3d565b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611030611442565b73ffffffffffffffffffffffffffffffffffffffff161461105057600080fd5b600061105b3061099c565b905061106681612082565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110f8611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90612fd4565b60405180910390fd5b6000811161119257600080fd5b606481670de0b6b3a76400006111a8919061309b565b6111b29190613124565b60188190555050565b6111c3611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612fd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b7906131c7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561139057600090506113f2565b6000828461139e919061309b565b90508284826113ad9190613124565b146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613259565b60405180910390fd5b809150505b92915050565b600061143a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b1906132eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061337d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116089190612bce565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167c9061340f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134a1565b60405180910390fd5b60008111611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90613533565b60405180910390fd5b611740610c13565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ae575061177e610c13565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c4357601660149054906101000a900460ff1661183d576117cf610c13565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906135c5565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118d4576017548111156118d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ca90613631565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119785750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae906136c3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611a5f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc5760185481611a718461099c565b611a7b91906136e3565b10611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab2906137ab565b60405180910390fd5b5b6000611ac73061099c565b9050600060195482101590506017548210611ae25760175491505b808015611afc5750601660159054906101000a900460ff16155b8015611b565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b6c575060168054906101000a900460ff165b8015611bc25750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c185750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4057611c2682612082565b60004790506000811115611c3e57611c3d47611fa8565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cea5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d9d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d9c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611dab5760009050611f32565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e565750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6e57600954600d81905550600a54600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f3157600b54600d81905550600c54600e819055505b5b611f3e8484848461236d565b50505050565b6000838311158290611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f839190612a05565b60405180910390fd5b5060008385611f9b91906137cb565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612010573d6000803e3d6000fd5b5050565b600060075482111561205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613871565b60405180910390fd5b600061206561239a565b905061207a81846113f890919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120ba576120b9612dbc565b5b6040519080825280602002602001820160405280156120e85781602001602082028036833780820191505090505b5090503081600081518110612100576120ff612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a257600080fd5b505afa1580156121b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121da91906138a6565b816001815181106121ee576121ed612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b99594939291906139cc565b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b60008083118290612351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123489190612a05565b60405180910390fd5b50600083856123609190613124565b9050809150509392505050565b8061237b5761237a6123c5565b5b612386848484612408565b80612394576123936125d3565b5b50505050565b60008060006123a76125e7565b915091506123be81836113f890919063ffffffff16565b9250505090565b6000600d541480156123d957506000600e54145b156123e357612406565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061241a87612646565b95509550955095509550955061247886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ae90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061255981612756565b6125638483612813565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125c09190612bce565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a7640000905061261b670de0b6b3a76400006007546113f890919063ffffffff16565b82101561263957600754670de0b6b3a7640000935093505050612642565b81819350935050505b9091565b60008060008060008060008060006126638a600d54600e5461284d565b925092509250600061267361239a565b905060008060006126868e8787876128e3565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126f083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f44565b905092915050565b600080828461270791906136e3565b90508381101561274c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274390613a72565b60405180910390fd5b8091505092915050565b600061276061239a565b90506000612777828461137d90919063ffffffff16565b90506127cb81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612828826007546126ae90919063ffffffff16565b600781905550612843816008546126f890919063ffffffff16565b6008819055505050565b600080600080612879606461286b888a61137d90919063ffffffff16565b6113f890919063ffffffff16565b905060006128a36064612895888b61137d90919063ffffffff16565b6113f890919063ffffffff16565b905060006128cc826128be858c6126ae90919063ffffffff16565b6126ae90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128fc858961137d90919063ffffffff16565b90506000612913868961137d90919063ffffffff16565b9050600061292a878961137d90919063ffffffff16565b905060006129538261294585876126ae90919063ffffffff16565b6126ae90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129a657808201518184015260208101905061298b565b838111156129b5576000848401525b50505050565b6000601f19601f8301169050919050565b60006129d78261296c565b6129e18185612977565b93506129f1818560208601612988565b6129fa816129bb565b840191505092915050565b60006020820190508181036000830152612a1f81846129cc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a6682612a3b565b9050919050565b612a7681612a5b565b8114612a8157600080fd5b50565b600081359050612a9381612a6d565b92915050565b6000819050919050565b612aac81612a99565b8114612ab757600080fd5b50565b600081359050612ac981612aa3565b92915050565b60008060408385031215612ae657612ae5612a31565b5b6000612af485828601612a84565b9250506020612b0585828601612aba565b9150509250929050565b60008115159050919050565b612b2481612b0f565b82525050565b6000602082019050612b3f6000830184612b1b565b92915050565b6000819050919050565b6000612b6a612b65612b6084612a3b565b612b45565b612a3b565b9050919050565b6000612b7c82612b4f565b9050919050565b6000612b8e82612b71565b9050919050565b612b9e81612b83565b82525050565b6000602082019050612bb96000830184612b95565b92915050565b612bc881612a99565b82525050565b6000602082019050612be36000830184612bbf565b92915050565b600080600060608486031215612c0257612c01612a31565b5b6000612c1086828701612a84565b9350506020612c2186828701612a84565b9250506040612c3286828701612aba565b9150509250925092565b600060208284031215612c5257612c51612a31565b5b6000612c6084828501612a84565b91505092915050565b600060ff82169050919050565b612c7f81612c69565b82525050565b6000602082019050612c9a6000830184612c76565b92915050565b612ca981612a5b565b82525050565b6000602082019050612cc46000830184612ca0565b92915050565b612cd381612b0f565b8114612cde57600080fd5b50565b600081359050612cf081612cca565b92915050565b600060208284031215612d0c57612d0b612a31565b5b6000612d1a84828501612ce1565b91505092915050565b600060208284031215612d3957612d38612a31565b5b6000612d4784828501612aba565b91505092915050565b60008060008060808587031215612d6a57612d69612a31565b5b6000612d7887828801612aba565b9450506020612d8987828801612aba565b9350506040612d9a87828801612aba565b9250506060612dab87828801612aba565b91505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612df4826129bb565b810181811067ffffffffffffffff82111715612e1357612e12612dbc565b5b80604052505050565b6000612e26612a27565b9050612e328282612deb565b919050565b600067ffffffffffffffff821115612e5257612e51612dbc565b5b602082029050602081019050919050565b600080fd5b6000612e7b612e7684612e37565b612e1c565b90508083825260208201905060208402830185811115612e9e57612e9d612e63565b5b835b81811015612ec75780612eb38882612a84565b845260208401935050602081019050612ea0565b5050509392505050565b600082601f830112612ee657612ee5612db7565b5b8135612ef6848260208601612e68565b91505092915050565b600060208284031215612f1557612f14612a31565b5b600082013567ffffffffffffffff811115612f3357612f32612a36565b5b612f3f84828501612ed1565b91505092915050565b60008060408385031215612f5f57612f5e612a31565b5b6000612f6d85828601612a84565b9250506020612f7e85828601612a84565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fbe602083612977565b9150612fc982612f88565b602082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305d82612a99565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130905761308f613023565b5b600182019050919050565b60006130a682612a99565b91506130b183612a99565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130ea576130e9613023565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061312f82612a99565b915061313a83612a99565b92508261314a576131496130f5565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131b1602683612977565b91506131bc82613155565b604082019050919050565b600060208201905081810360008301526131e0816131a4565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613243602183612977565b915061324e826131e7565b604082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132d5602483612977565b91506132e082613279565b604082019050919050565b60006020820190508181036000830152613304816132c8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613367602283612977565b91506133728261330b565b604082019050919050565b600060208201905081810360008301526133968161335a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133f9602583612977565b91506134048261339d565b604082019050919050565b60006020820190508181036000830152613428816133ec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061348b602383612977565b91506134968261342f565b604082019050919050565b600060208201905081810360008301526134ba8161347e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061351d602983612977565b9150613528826134c1565b604082019050919050565b6000602082019050818103600083015261354c81613510565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006135af603f83612977565b91506135ba82613553565b604082019050919050565b600060208201905081810360008301526135de816135a2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061361b601c83612977565b9150613626826135e5565b602082019050919050565b6000602082019050818103600083015261364a8161360e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006136ad602383612977565b91506136b882613651565b604082019050919050565b600060208201905081810360008301526136dc816136a0565b9050919050565b60006136ee82612a99565b91506136f983612a99565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561372e5761372d613023565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613795602383612977565b91506137a082613739565b604082019050919050565b600060208201905081810360008301526137c481613788565b9050919050565b60006137d682612a99565b91506137e183612a99565b9250828210156137f4576137f3613023565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061385b602a83612977565b9150613866826137ff565b604082019050919050565b6000602082019050818103600083015261388a8161384e565b9050919050565b6000815190506138a081612a6d565b92915050565b6000602082840312156138bc576138bb612a31565b5b60006138ca84828501613891565b91505092915050565b6000819050919050565b60006138f86138f36138ee846138d3565b612b45565b612a99565b9050919050565b613908816138dd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61394381612a5b565b82525050565b6000613955838361393a565b60208301905092915050565b6000602082019050919050565b60006139798261390e565b6139838185613919565b935061398e8361392a565b8060005b838110156139bf5781516139a68882613949565b97506139b183613961565b925050600181019050613992565b5085935050505092915050565b600060a0820190506139e16000830188612bbf565b6139ee60208301876138ff565b8181036040830152613a00818661396e565b9050613a0f6060830185612ca0565b613a1c6080830184612bbf565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a5c601b83612977565b9150613a6782613a26565b602082019050919050565b60006020820190508181036000830152613a8b81613a4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220569b5634673e5a9e25abda6357e8bfc1c72cbdfb95fe12148ee1b408447d696864736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c3c8cd8011610064578063c3c8cd80146105f5578063dd62ed3e1461060c578063ea1644d514610649578063f2fde38b14610672576101c2565b8063a9059cbb14610552578063b515566a1461058f578063bfd79284146105b8576101c2565b80638f9a55c0116100c65780638f9a55c0146104aa57806395d89b41146104d557806398a5c31514610500578063a2a957bb14610529576101c2565b80637f2feddc146104195780638da5cb5b146104565780638f70ccf714610481576101c2565b8063313ce5671161015957806370a082311161013357806370a0823114610383578063715018a6146103c0578063751039fc146103d75780637d1db4a5146103ee576101c2565b8063313ce5671461031657806349bd5a5e146103415780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632b89628b146102c25780632fd689e3146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61069b565b6040516101e99190612a05565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612acf565b6106d8565b6040516102269190612b2a565b60405180910390f35b34801561023b57600080fd5b506102446106f6565b6040516102519190612ba4565b60405180910390f35b34801561026657600080fd5b5061026f61071c565b60405161027c9190612bce565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612be9565b61072c565b6040516102b99190612b2a565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612c3c565b610805565b005b3480156102f757600080fd5b506103006108f5565b60405161030d9190612bce565b60405180910390f35b34801561032257600080fd5b5061032b6108fb565b6040516103389190612c85565b60405180910390f35b34801561034d57600080fd5b50610356610904565b6040516103639190612caf565b60405180910390f35b34801561037857600080fd5b5061038161092a565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612c3c565b61099c565b6040516103b79190612bce565b60405180910390f35b3480156103cc57600080fd5b506103d56109ed565b005b3480156103e357600080fd5b506103ec610b40565b005b3480156103fa57600080fd5b50610403610bf5565b6040516104109190612bce565b60405180910390f35b34801561042557600080fd5b50610440600480360381019061043b9190612c3c565b610bfb565b60405161044d9190612bce565b60405180910390f35b34801561046257600080fd5b5061046b610c13565b6040516104789190612caf565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612cf6565b610c3c565b005b3480156104b657600080fd5b506104bf610cee565b6040516104cc9190612bce565b60405180910390f35b3480156104e157600080fd5b506104ea610cf4565b6040516104f79190612a05565b60405180910390f35b34801561050c57600080fd5b5061052760048036038101906105229190612d23565b610d31565b005b34801561053557600080fd5b50610550600480360381019061054b9190612d50565b610dd0565b005b34801561055e57600080fd5b5061057960048036038101906105749190612acf565b610e87565b6040516105869190612b2a565b60405180910390f35b34801561059b57600080fd5b506105b660048036038101906105b19190612eff565b610ea5565b005b3480156105c457600080fd5b506105df60048036038101906105da9190612c3c565b610fcf565b6040516105ec9190612b2a565b60405180910390f35b34801561060157600080fd5b5061060a610fef565b005b34801561061857600080fd5b50610633600480360381019061062e9190612f48565b611069565b6040516106409190612bce565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190612d23565b6110f0565b005b34801561067e57600080fd5b5061069960048036038101906106949190612c3c565b6111bb565b005b60606040518060400160405280600781526020017f44455354494e5900000000000000000000000000000000000000000000000000815250905090565b60006106ec6106e5611442565b848461144a565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610739848484611615565b6107fa84610745611442565b6107f585604051806060016040528060288152602001613a9360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ab611442565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f449092919063ffffffff16565b61144a565b600190509392505050565b61080d611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612fd4565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60195481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661096b611442565b73ffffffffffffffffffffffffffffffffffffffff161461098b57600080fd5b600047905061099981611fa8565b50565b60006109e6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612014565b9050919050565b6109f5611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990612fd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b48611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc90612fd4565b60405180910390fd5b670de0b6b3a7640000601781905550670de0b6b3a7640000601881905550565b60175481565b60126020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c44611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc890612fd4565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f4453590000000000000000000000000000000000000000000000000000000000815250905090565b610d39611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd90612fd4565b60405180910390fd5b8060198190555050565b610dd8611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5c90612fd4565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b6000610e9b610e94611442565b8484611615565b6001905092915050565b610ead611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190612fd4565b60405180910390fd5b60005b8151811015610fcb57600160116000848481518110610f5f57610f5e612ff4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fc390613052565b915050610f3d565b5050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611030611442565b73ffffffffffffffffffffffffffffffffffffffff161461105057600080fd5b600061105b3061099c565b905061106681612082565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110f8611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c90612fd4565b60405180910390fd5b6000811161119257600080fd5b606481670de0b6b3a76400006111a8919061309b565b6111b29190613124565b60188190555050565b6111c3611442565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612fd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b7906131c7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561139057600090506113f2565b6000828461139e919061309b565b90508284826113ad9190613124565b146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613259565b60405180910390fd5b809150505b92915050565b600061143a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061230a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b1906132eb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061337d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116089190612bce565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167c9061340f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134a1565b60405180910390fd5b60008111611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90613533565b60405180910390fd5b611740610c13565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ae575061177e610c13565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c4357601660149054906101000a900460ff1661183d576117cf610c13565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906135c5565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118d4576017548111156118d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ca90613631565b60405180910390fd5b5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119785750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae906136c3565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611a5f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611abc5760185481611a718461099c565b611a7b91906136e3565b10611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab2906137ab565b60405180910390fd5b5b6000611ac73061099c565b9050600060195482101590506017548210611ae25760175491505b808015611afc5750601660159054906101000a900460ff16155b8015611b565750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b6c575060168054906101000a900460ff165b8015611bc25750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c185750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4057611c2682612082565b60004790506000811115611c3e57611c3d47611fa8565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cea5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d9d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d9c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611dab5760009050611f32565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e565750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6e57600954600d81905550600a54600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f3157600b54600d81905550600c54600e819055505b5b611f3e8484848461236d565b50505050565b6000838311158290611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f839190612a05565b60405180910390fd5b5060008385611f9b91906137cb565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612010573d6000803e3d6000fd5b5050565b600060075482111561205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613871565b60405180910390fd5b600061206561239a565b905061207a81846113f890919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120ba576120b9612dbc565b5b6040519080825280602002602001820160405280156120e85781602001602082028036833780820191505090505b5090503081600081518110612100576120ff612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a257600080fd5b505afa1580156121b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121da91906138a6565b816001815181106121ee576121ed612ff4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061225530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b99594939291906139cc565b600060405180830381600087803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b60008083118290612351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123489190612a05565b60405180910390fd5b50600083856123609190613124565b9050809150509392505050565b8061237b5761237a6123c5565b5b612386848484612408565b80612394576123936125d3565b5b50505050565b60008060006123a76125e7565b915091506123be81836113f890919063ffffffff16565b9250505090565b6000600d541480156123d957506000600e54145b156123e357612406565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061241a87612646565b95509550955095509550955061247886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ae90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061250d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f890919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061255981612756565b6125638483612813565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125c09190612bce565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a7640000905061261b670de0b6b3a76400006007546113f890919063ffffffff16565b82101561263957600754670de0b6b3a7640000935093505050612642565b81819350935050505b9091565b60008060008060008060008060006126638a600d54600e5461284d565b925092509250600061267361239a565b905060008060006126868e8787876128e3565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126f083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f44565b905092915050565b600080828461270791906136e3565b90508381101561274c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274390613a72565b60405180910390fd5b8091505092915050565b600061276061239a565b90506000612777828461137d90919063ffffffff16565b90506127cb81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612828826007546126ae90919063ffffffff16565b600781905550612843816008546126f890919063ffffffff16565b6008819055505050565b600080600080612879606461286b888a61137d90919063ffffffff16565b6113f890919063ffffffff16565b905060006128a36064612895888b61137d90919063ffffffff16565b6113f890919063ffffffff16565b905060006128cc826128be858c6126ae90919063ffffffff16565b6126ae90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128fc858961137d90919063ffffffff16565b90506000612913868961137d90919063ffffffff16565b9050600061292a878961137d90919063ffffffff16565b905060006129538261294585876126ae90919063ffffffff16565b6126ae90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129a657808201518184015260208101905061298b565b838111156129b5576000848401525b50505050565b6000601f19601f8301169050919050565b60006129d78261296c565b6129e18185612977565b93506129f1818560208601612988565b6129fa816129bb565b840191505092915050565b60006020820190508181036000830152612a1f81846129cc565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a6682612a3b565b9050919050565b612a7681612a5b565b8114612a8157600080fd5b50565b600081359050612a9381612a6d565b92915050565b6000819050919050565b612aac81612a99565b8114612ab757600080fd5b50565b600081359050612ac981612aa3565b92915050565b60008060408385031215612ae657612ae5612a31565b5b6000612af485828601612a84565b9250506020612b0585828601612aba565b9150509250929050565b60008115159050919050565b612b2481612b0f565b82525050565b6000602082019050612b3f6000830184612b1b565b92915050565b6000819050919050565b6000612b6a612b65612b6084612a3b565b612b45565b612a3b565b9050919050565b6000612b7c82612b4f565b9050919050565b6000612b8e82612b71565b9050919050565b612b9e81612b83565b82525050565b6000602082019050612bb96000830184612b95565b92915050565b612bc881612a99565b82525050565b6000602082019050612be36000830184612bbf565b92915050565b600080600060608486031215612c0257612c01612a31565b5b6000612c1086828701612a84565b9350506020612c2186828701612a84565b9250506040612c3286828701612aba565b9150509250925092565b600060208284031215612c5257612c51612a31565b5b6000612c6084828501612a84565b91505092915050565b600060ff82169050919050565b612c7f81612c69565b82525050565b6000602082019050612c9a6000830184612c76565b92915050565b612ca981612a5b565b82525050565b6000602082019050612cc46000830184612ca0565b92915050565b612cd381612b0f565b8114612cde57600080fd5b50565b600081359050612cf081612cca565b92915050565b600060208284031215612d0c57612d0b612a31565b5b6000612d1a84828501612ce1565b91505092915050565b600060208284031215612d3957612d38612a31565b5b6000612d4784828501612aba565b91505092915050565b60008060008060808587031215612d6a57612d69612a31565b5b6000612d7887828801612aba565b9450506020612d8987828801612aba565b9350506040612d9a87828801612aba565b9250506060612dab87828801612aba565b91505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612df4826129bb565b810181811067ffffffffffffffff82111715612e1357612e12612dbc565b5b80604052505050565b6000612e26612a27565b9050612e328282612deb565b919050565b600067ffffffffffffffff821115612e5257612e51612dbc565b5b602082029050602081019050919050565b600080fd5b6000612e7b612e7684612e37565b612e1c565b90508083825260208201905060208402830185811115612e9e57612e9d612e63565b5b835b81811015612ec75780612eb38882612a84565b845260208401935050602081019050612ea0565b5050509392505050565b600082601f830112612ee657612ee5612db7565b5b8135612ef6848260208601612e68565b91505092915050565b600060208284031215612f1557612f14612a31565b5b600082013567ffffffffffffffff811115612f3357612f32612a36565b5b612f3f84828501612ed1565b91505092915050565b60008060408385031215612f5f57612f5e612a31565b5b6000612f6d85828601612a84565b9250506020612f7e85828601612a84565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fbe602083612977565b9150612fc982612f88565b602082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305d82612a99565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130905761308f613023565b5b600182019050919050565b60006130a682612a99565b91506130b183612a99565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156130ea576130e9613023565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061312f82612a99565b915061313a83612a99565b92508261314a576131496130f5565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131b1602683612977565b91506131bc82613155565b604082019050919050565b600060208201905081810360008301526131e0816131a4565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613243602183612977565b915061324e826131e7565b604082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132d5602483612977565b91506132e082613279565b604082019050919050565b60006020820190508181036000830152613304816132c8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613367602283612977565b91506133728261330b565b604082019050919050565b600060208201905081810360008301526133968161335a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133f9602583612977565b91506134048261339d565b604082019050919050565b60006020820190508181036000830152613428816133ec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061348b602383612977565b91506134968261342f565b604082019050919050565b600060208201905081810360008301526134ba8161347e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061351d602983612977565b9150613528826134c1565b604082019050919050565b6000602082019050818103600083015261354c81613510565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006135af603f83612977565b91506135ba82613553565b604082019050919050565b600060208201905081810360008301526135de816135a2565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061361b601c83612977565b9150613626826135e5565b602082019050919050565b6000602082019050818103600083015261364a8161360e565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006136ad602383612977565b91506136b882613651565b604082019050919050565b600060208201905081810360008301526136dc816136a0565b9050919050565b60006136ee82612a99565b91506136f983612a99565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561372e5761372d613023565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613795602383612977565b91506137a082613739565b604082019050919050565b600060208201905081810360008301526137c481613788565b9050919050565b60006137d682612a99565b91506137e183612a99565b9250828210156137f4576137f3613023565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061385b602a83612977565b9150613866826137ff565b604082019050919050565b6000602082019050818103600083015261388a8161384e565b9050919050565b6000815190506138a081612a6d565b92915050565b6000602082840312156138bc576138bb612a31565b5b60006138ca84828501613891565b91505092915050565b6000819050919050565b60006138f86138f36138ee846138d3565b612b45565b612a99565b9050919050565b613908816138dd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61394381612a5b565b82525050565b6000613955838361393a565b60208301905092915050565b6000602082019050919050565b60006139798261390e565b6139838185613919565b935061398e8361392a565b8060005b838110156139bf5781516139a68882613949565b97506139b183613961565b925050600181019050613992565b5085935050505092915050565b600060a0820190506139e16000830188612bbf565b6139ee60208301876138ff565b8181036040830152613a00818661396e565b9050613a0f6060830185612ca0565b613a1c6080830184612bbf565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a5c601b83612977565b9150613a6782613a26565b602082019050919050565b60006020820190508181036000830152613a8b81613a4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220569b5634673e5a9e25abda6357e8bfc1c72cbdfb95fe12148ee1b408447d696864736f6c63430008090033

Deployed Bytecode Sourcemap

5331:13613:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8272:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9204:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6631:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8552:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9406:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14683:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7031:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8460:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6679:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14301:197;;;;;;;;;;;;;:::i;:::-;;8656:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2805:148;;;;;;;;;;;;;:::i;:::-;;18819:118;;;;;;;;;;;;;:::i;:::-;;6906:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6476:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2589:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13984:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6968:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8364:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18494:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18190:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8803:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14507:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6438:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14094:198;;;;;;;;;;;;;:::i;:::-;;9011:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18642:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2962:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8272:83;8309:13;8342:5;;;;;;;;;;;;;;;;;8335:12;;8272:83;:::o;9204:193::-;9306:4;9328:39;9337:12;:10;:12::i;:::-;9351:7;9360:6;9328:8;:39::i;:::-;9385:4;9378:11;;9204:193;;;;:::o;6631:41::-;;;;;;;;;;;;;:::o;8552:95::-;8605:7;5944:21;8625:14;;8552:95;:::o;9406:446::-;9538:4;9555:36;9565:6;9573:9;9584:6;9555:9;:36::i;:::-;9602:220;9625:6;9646:12;:10;:12::i;:::-;9673:138;9729:6;9673:138;;;;;;;;;;;;;;;;;:11;:19;9685:6;9673:19;;;;;;;;;;;;;;;:33;9693:12;:10;:12::i;:::-;9673:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9602:8;:220::i;:::-;9840:4;9833:11;;9406:446;;;;;:::o;14683:90::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14760:5:::1;14745:4;:12;14750:6;14745:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14683:90:::0;:::o;7031:61::-;;;;:::o;8460:83::-;8501:5;5557:1;8519:16;;8460:83;:::o;6679:28::-;;;;;;;;;;;;;:::o;14301:197::-;14368:17;;;;;;;;;;;14352:33;;:12;:10;:12::i;:::-;:33;;;14343:43;;;;;;14397:26;14426:21;14397:50;;14458:32;14471:18;14458:12;:32::i;:::-;14332:166;14301:197::o;8656:138::-;8722:7;8749:37;8769:7;:16;8777:7;8769:16;;;;;;;;;;;;;;;;8749:19;:37::i;:::-;8742:44;;8656:138;;;:::o;2805:148::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2912:1:::1;2875:40;;2896:6;::::0;::::1;;;;;;;;2875:40;;;;;;;;;;;;2943:1;2926:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2805:148::o:0;18819:118::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5944:21:::1;18872:12;:22;;;;5944:21;18905:14;:24;;;;18819:118::o:0;6906:55::-;;;;:::o;6476:43::-;;;;;;;;;;;;;;;;;:::o;2589:79::-;2627:7;2654:6;;;;;;;;;;;2647:13;;2589:79;:::o;13984:101::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14065:12:::1;14051:11;;:26;;;;;;;;;;;;;;;;;;13984:101:::0;:::o;6968:55::-;;;;:::o;8364:87::-;8403:13;8436:7;;;;;;;;;;;;;;;;;8429:14;;8364:87;:::o;18494:139::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18607:18:::1;18585:19;:40;;;;18494:139:::0;:::o;18190:295::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18343:13:::1;18326:14;:30;;;;18385:14;18367:15;:32;;;;18425:11;18410:12;:26;;;;18463:12;18447:13;:28;;;;18190:295:::0;;;;:::o;8803:199::-;8908:4;8930:42;8940:12;:10;:12::i;:::-;8954:9;8965:6;8930:9;:42::i;:::-;8990:4;8983:11;;8803:199;;;;:::o;14507:167::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14581:9:::1;14576:91;14600:5;:12;14596:1;:16;14576:91;;;14651:4;14634;:14;14639:5;14645:1;14639:8;;;;;;;;:::i;:::-;;;;;;;;14634:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14614:3;;;;;:::i;:::-;;;;14576:91;;;;14507:167:::0;:::o;6438:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14094:198::-;14161:17;;;;;;;;;;;14145:33;;:12;:10;:12::i;:::-;:33;;;14136:43;;;;;;14190:23;14216:24;14234:4;14216:9;:24::i;:::-;14190:50;;14251:33;14268:15;14251:16;:33::i;:::-;14125:167;14094:198::o;9011:184::-;9128:7;9160:11;:18;9172:5;9160:18;;;;;;;;;;;;;;;:27;9179:7;9160:27;;;;;;;;;;;;;;;;9153:34;;9011:184;;;;:::o;18642:169::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18741:1:::1;18727:13;:15;18719:24;;;::::0;::::1;;18800:3;18782:13;5944:21;18772:23;;;;:::i;:::-;18771:32;;;;:::i;:::-;18754:14;:49;;;;18642:169:::0;:::o;2962:244::-;2727:12;:10;:12::i;:::-;2717:22;;:6;;;;;;;;;;:22;;;2709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3071:1:::1;3051:22;;:8;:22;;;;3043:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3161:8;3132:38;;3153:6;::::0;::::1;;;;;;;;3132:38;;;;;;;;;;;;3190:8;3181:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2962:244:::0;:::o;3806:246::-;3864:7;3893:1;3888;:6;3884:47;;;3918:1;3911:8;;;;3884:47;3941:9;3957:1;3953;:5;;;;:::i;:::-;3941:17;;3986:1;3981;3977;:5;;;;:::i;:::-;:10;3969:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4043:1;4036:8;;;3806:246;;;;;:::o;4061:132::-;4119:7;4146:39;4150:1;4153;4146:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4139:46;;4061:132;;;;:::o;1337:98::-;1390:7;1417:10;1410:17;;1337:98;:::o;10549:369::-;10693:1;10676:19;;:5;:19;;;;10668:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10774:1;10755:21;;:7;:21;;;;10747:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10856:6;10826:11;:18;10838:5;10826:18;;;;;;;;;;;;;;;:27;10845:7;10826:27;;;;;;;;;;;;;;;:36;;;;10894:7;10878:32;;10887:5;10878:32;;;10903:6;10878:32;;;;;;:::i;:::-;;;;;;;;10549:369;;;:::o;10927:2448::-;11065:1;11049:18;;:4;:18;;;;11041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11142:1;11128:16;;:2;:16;;;;11120:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11212:1;11203:6;:10;11195:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11285:7;:5;:7::i;:::-;11277:15;;:4;:15;;;;:32;;;;;11302:7;:5;:7::i;:::-;11296:13;;:2;:13;;;;11277:32;11273:1369;;;11367:11;;;;;;;;;;;11362:144;;11415:7;:5;:7::i;:::-;11407:15;;:4;:15;;;11399:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11362:144;11527:18;:24;11546:4;11527:24;;;;;;;;;;;;;;;;;;;;;;;;;11522:128;;11589:12;;11579:6;:22;;11571:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11522:128;11687:4;:10;11692:4;11687:10;;;;;;;;;;;;;;;;;;;;;;;;;11686:11;:24;;;;;11702:4;:8;11707:2;11702:8;;;;;;;;;;;;;;;;;;;;;;;;;11701:9;11686:24;11678:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11777:13;;;;;;;;;;;11771:19;;:2;:19;;;;:46;;;;;11795:18;:22;11814:2;11795:22;;;;;;;;;;;;;;;;;;;;;;;;;11794:23;11771:46;11768:173;;;11871:14;;11862:6;11846:13;11856:2;11846:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11838:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11768:173;11958:28;11989:24;12007:4;11989:9;:24::i;:::-;11958:55;;12028:12;12067:19;;12043:20;:43;;12028:58;;12131:12;;12107:20;:36;12104:124;;12200:12;;12177:35;;12104:124;12249:7;:18;;;;;12261:6;;;;;;;;;;;12260:7;12249:18;:43;;;;;12279:13;;;;;;;;;;;12271:21;;:4;:21;;;;12249:43;:58;;;;;12296:11;;;;;;;;;;12249:58;:87;;;;;12312:18;:24;12331:4;12312:24;;;;;;;;;;;;;;;;;;;;;;;;;12311:25;12249:87;:114;;;;;12341:18;:22;12360:2;12341:22;;;;;;;;;;;;;;;;;;;;;;;;;12340:23;12249:114;12245:386;;;12384:38;12401:20;12384:16;:38::i;:::-;12441:26;12470:21;12441:50;;12535:1;12514:18;:22;12510:106;;;12561:35;12574:21;12561:12;:35::i;:::-;12510:106;12365:266;12245:386;11311:1331;;11273:1369;12656:12;12671:4;12656:19;;12721:18;:24;12740:4;12721:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12749:18;:22;12768:2;12749:22;;;;;;;;;;;;;;;;;;;;;;;;;12721:50;12720:102;;;;12785:13;;;;;;;;;;;12777:21;;:4;:21;;;;:44;;;;;12808:13;;;;;;;;;;;12802:19;;:2;:19;;;;12777:44;12720:102;12716:597;;;12849:5;12839:15;;12716:597;;;12933:13;;;;;;;;;;;12925:21;;:4;:21;;;:55;;;;;12964:15;;;;;;;;;;;12950:30;;:2;:30;;;;12925:55;12922:162;;;13013:14;;13001:9;:26;;;;13056:12;;13046:7;:22;;;;12922:162;13144:13;;;;;;;;;;;13138:19;;:2;:19;;;:55;;;;;13177:15;;;;;;;;;;;13161:32;;:4;:32;;;;13138:55;13134:165;;;13226:15;;13214:9;:27;;;;13270:13;;13260:7;:23;;;;13134:165;12716:597;13326:41;13341:4;13347:2;13351:6;13359:7;13326:14;:41::i;:::-;11030:2345;10927:2448;;;:::o;3573:224::-;3693:7;3726:1;3721;:6;;3729:12;3713:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3753:9;3769:1;3765;:5;;;;:::i;:::-;3753:17;;3788:1;3781:8;;;3573:224;;;;;:::o;13876:99::-;13933:17;;;;;;;;;;;:26;;:34;13960:6;13933:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13876:99;:::o;9861:323::-;9956:7;10014;;10003;:18;;9981:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10102:19;10124:10;:8;:10::i;:::-;10102:32;;10152:24;10164:11;10152:7;:11;;:24;;;;:::i;:::-;10145:31;;;9861:323;;;:::o;13384:483::-;7196:4;7187:6;;:13;;;;;;;;;;;;;;;;;;13462:21:::1;13500:1;13486:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13462:40;;13531:4;13513;13518:1;13513:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13557:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13547:4;13552:1;13547:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13590:62;13607:4;13622:15;;;;;;;;;;;13640:11;13590:8;:62::i;:::-;13663:15;;;;;;;;;;;:66;;;13744:11;13770:1;13786:4;13813;13833:15;13663:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13451:416;7232:5:::0;7223:6;;:14;;;;;;;;;;;;;;;;;;13384:483;:::o;4202:223::-;4322:7;4354:1;4350;:5;4357:12;4342:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4381:9;4397:1;4393;:5;;;;:::i;:::-;4381:17;;4416:1;4409:8;;;4202:223;;;;;:::o;14782:282::-;14938:7;14933:28;;14947:14;:12;:14::i;:::-;14933:28;14972:44;14990:6;14998:9;15009:6;14972:17;:44::i;:::-;15032:7;15027:29;;15041:15;:13;:15::i;:::-;15027:29;14782:282;;;;:::o;17751:164::-;17793:7;17814:15;17831;17850:19;:17;:19::i;:::-;17813:56;;;;17887:20;17899:7;17887;:11;;:20;;;;:::i;:::-;17880:27;;;;17751:164;:::o;10193:221::-;10253:1;10240:9;;:14;:30;;;;;10269:1;10258:7;;:12;10240:30;10236:43;;;10272:7;;10236:43;10312:9;;10292:17;:29;;;;10350:7;;10332:15;:25;;;;10383:1;10371:9;:13;;;;10405:1;10395:7;:11;;;;10193:221;:::o;15073:610::-;15220:15;15250:23;15288:12;15315:23;15353:12;15380:13;15407:19;15418:7;15407:10;:19::i;:::-;15205:221;;;;;;;;;;;;15455:28;15475:7;15455;:15;15463:6;15455:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15437:7;:15;15445:6;15437:15;;;;;;;;;;;;;;;:46;;;;15515:39;15538:15;15515:7;:18;15523:9;15515:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15494:7;:18;15502:9;15494:18;;;;;;;;;;;;;;;:60;;;;15565:16;15575:5;15565:9;:16::i;:::-;15592:23;15604:4;15610;15592:11;:23::i;:::-;15648:9;15631:44;;15640:6;15631:44;;;15659:15;15631:44;;;;;;:::i;:::-;;;;;;;;15194:489;;;;;;15073:610;;;:::o;10423:117::-;10479:17;;10467:9;:29;;;;10517:15;;10507:7;:25;;;;10423:117::o;17924:257::-;17975:7;17984;18004:15;18022:7;;18004:25;;18040:15;5944:21;18040:25;;18090:20;5944:21;18090:7;;:11;;:20;;;;:::i;:::-;18080:7;:30;18076:61;;;18120:7;;5944:21;18112:25;;;;;;;;18076:61;18156:7;18165;18148:25;;;;;;17924:257;;;:::o;16106:615::-;16206:7;16228;16250;16272;16294;16316;16352:23;16377:12;16391:13;16421:40;16433:7;16442:9;;16453:7;;16421:11;:40::i;:::-;16351:110;;;;;;16472:19;16494:10;:8;:10::i;:::-;16472:32;;16516:15;16533:23;16558:12;16587:46;16599:7;16608:4;16614:5;16621:11;16587;:46::i;:::-;16515:118;;;;;;16652:7;16661:15;16678:4;16684:15;16701:4;16707:5;16644:69;;;;;;;;;;;;;;;;;;;16106:615;;;;;;;:::o;3428:136::-;3486:7;3513:43;3517:1;3520;3513:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3506:50;;3428:136;;;;:::o;3240:179::-;3298:7;3318:9;3334:1;3330;:5;;;;:::i;:::-;3318:17;;3359:1;3354;:6;;3346:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3410:1;3403:8;;;3240:179;;;;:::o;15692:211::-;15745:19;15767:10;:8;:10::i;:::-;15745:32;;15788:13;15804:22;15814:11;15804:5;:9;;:22;;;;:::i;:::-;15788:38;;15862:33;15889:5;15862:7;:22;15878:4;15862:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15837:7;:22;15853:4;15837:22;;;;;;;;;;;;;;;:58;;;;15734:169;;15692:211;:::o;15912:147::-;15990:17;16002:4;15990:7;;:11;;:17;;;;:::i;:::-;15980:7;:27;;;;16031:20;16046:4;16031:10;;:14;;:20;;;;:::i;:::-;16018:10;:33;;;;15912:147;;:::o;16730:469::-;16899:7;16921;16943;16978:12;16993:30;17019:3;16993:21;17005:8;16993:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16978:45;;17034:13;17050:28;17074:3;17050:19;17062:6;17050:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17034:44;;17089:23;17115:28;17137:5;17115:17;17127:4;17115:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17089:54;;17162:15;17179:4;17185:5;17154:37;;;;;;;;;16730:469;;;;;;;:::o;17208:534::-;17402:7;17424;17446;17481:15;17499:24;17511:11;17499:7;:11;;:24;;;;:::i;:::-;17481:42;;17534:12;17549:21;17558:11;17549:4;:8;;:21;;;;:::i;:::-;17534:36;;17581:13;17597:22;17607:11;17597:5;:9;;:22;;;;:::i;:::-;17581:38;;17630:23;17656:28;17678:5;17656:17;17668:4;17656:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17630:54;;17703:7;17712:15;17729:4;17695:39;;;;;;;;;;17208:534;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:329::-;5503:6;5552:2;5540:9;5531:7;5527:23;5523:32;5520:119;;;5558:79;;:::i;:::-;5520:119;5678:1;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5649:117;5444:329;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:118::-;6296:24;6314:5;6296:24;:::i;:::-;6291:3;6284:37;6209:118;;:::o;6333:222::-;6426:4;6464:2;6453:9;6449:18;6441:26;;6477:71;6545:1;6534:9;6530:17;6521:6;6477:71;:::i;:::-;6333:222;;;;:::o;6561:116::-;6631:21;6646:5;6631:21;:::i;:::-;6624:5;6621:32;6611:60;;6667:1;6664;6657:12;6611:60;6561:116;:::o;6683:133::-;6726:5;6764:6;6751:20;6742:29;;6780:30;6804:5;6780:30;:::i;:::-;6683:133;;;;:::o;6822:323::-;6878:6;6927:2;6915:9;6906:7;6902:23;6898:32;6895:119;;;6933:79;;:::i;:::-;6895:119;7053:1;7078:50;7120:7;7111:6;7100:9;7096:22;7078:50;:::i;:::-;7068:60;;7024:114;6822:323;;;;:::o;7151:329::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:765::-;7572:6;7580;7588;7596;7645:3;7633:9;7624:7;7620:23;7616:33;7613:120;;;7652:79;;:::i;:::-;7613:120;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;8027:2;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7998:118;8155:2;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8126:118;7486:765;;;;;;;:::o;8257:117::-;8366:1;8363;8356:12;8380:180;8428:77;8425:1;8418:88;8525:4;8522:1;8515:15;8549:4;8546:1;8539:15;8566:281;8649:27;8671:4;8649:27;:::i;:::-;8641:6;8637:40;8779:6;8767:10;8764:22;8743:18;8731:10;8728:34;8725:62;8722:88;;;8790:18;;:::i;:::-;8722:88;8830:10;8826:2;8819:22;8609:238;8566:281;;:::o;8853:129::-;8887:6;8914:20;;:::i;:::-;8904:30;;8943:33;8971:4;8963:6;8943:33;:::i;:::-;8853:129;;;:::o;8988:311::-;9065:4;9155:18;9147:6;9144:30;9141:56;;;9177:18;;:::i;:::-;9141:56;9227:4;9219:6;9215:17;9207:25;;9287:4;9281;9277:15;9269:23;;8988:311;;;:::o;9305:117::-;9414:1;9411;9404:12;9445:710;9541:5;9566:81;9582:64;9639:6;9582:64;:::i;:::-;9566:81;:::i;:::-;9557:90;;9667:5;9696:6;9689:5;9682:21;9730:4;9723:5;9719:16;9712:23;;9783:4;9775:6;9771:17;9763:6;9759:30;9812:3;9804:6;9801:15;9798:122;;;9831:79;;:::i;:::-;9798:122;9946:6;9929:220;9963:6;9958:3;9955:15;9929:220;;;10038:3;10067:37;10100:3;10088:10;10067:37;:::i;:::-;10062:3;10055:50;10134:4;10129:3;10125:14;10118:21;;10005:144;9989:4;9984:3;9980:14;9973:21;;9929:220;;;9933:21;9547:608;;9445:710;;;;;:::o;10178:370::-;10249:5;10298:3;10291:4;10283:6;10279:17;10275:27;10265:122;;10306:79;;:::i;:::-;10265:122;10423:6;10410:20;10448:94;10538:3;10530:6;10523:4;10515:6;10511:17;10448:94;:::i;:::-;10439:103;;10255:293;10178:370;;;;:::o;10554:539::-;10638:6;10687:2;10675:9;10666:7;10662:23;10658:32;10655:119;;;10693:79;;:::i;:::-;10655:119;10841:1;10830:9;10826:17;10813:31;10871:18;10863:6;10860:30;10857:117;;;10893:79;;:::i;:::-;10857:117;10998:78;11068:7;11059:6;11048:9;11044:22;10998:78;:::i;:::-;10988:88;;10784:302;10554:539;;;;:::o;11099:474::-;11167:6;11175;11224:2;11212:9;11203:7;11199:23;11195:32;11192:119;;;11230:79;;:::i;:::-;11192:119;11350:1;11375:53;11420:7;11411:6;11400:9;11396:22;11375:53;:::i;:::-;11365:63;;11321:117;11477:2;11503:53;11548:7;11539:6;11528:9;11524:22;11503:53;:::i;:::-;11493:63;;11448:118;11099:474;;;;;:::o;11579:182::-;11719:34;11715:1;11707:6;11703:14;11696:58;11579:182;:::o;11767:366::-;11909:3;11930:67;11994:2;11989:3;11930:67;:::i;:::-;11923:74;;12006:93;12095:3;12006:93;:::i;:::-;12124:2;12119:3;12115:12;12108:19;;11767:366;;;:::o;12139:419::-;12305:4;12343:2;12332:9;12328:18;12320:26;;12392:9;12386:4;12382:20;12378:1;12367:9;12363:17;12356:47;12420:131;12546:4;12420:131;:::i;:::-;12412:139;;12139:419;;;:::o;12564:180::-;12612:77;12609:1;12602:88;12709:4;12706:1;12699:15;12733:4;12730:1;12723:15;12750:180;12798:77;12795:1;12788:88;12895:4;12892:1;12885:15;12919:4;12916:1;12909:15;12936:233;12975:3;12998:24;13016:5;12998:24;:::i;:::-;12989:33;;13044:66;13037:5;13034:77;13031:103;;;13114:18;;:::i;:::-;13031:103;13161:1;13154:5;13150:13;13143:20;;12936:233;;;:::o;13175:348::-;13215:7;13238:20;13256:1;13238:20;:::i;:::-;13233:25;;13272:20;13290:1;13272:20;:::i;:::-;13267:25;;13460:1;13392:66;13388:74;13385:1;13382:81;13377:1;13370:9;13363:17;13359:105;13356:131;;;13467:18;;:::i;:::-;13356:131;13515:1;13512;13508:9;13497:20;;13175:348;;;;:::o;13529:180::-;13577:77;13574:1;13567:88;13674:4;13671:1;13664:15;13698:4;13695:1;13688:15;13715:185;13755:1;13772:20;13790:1;13772:20;:::i;:::-;13767:25;;13806:20;13824:1;13806:20;:::i;:::-;13801:25;;13845:1;13835:35;;13850:18;;:::i;:::-;13835:35;13892:1;13889;13885:9;13880:14;;13715:185;;;;:::o;13906:225::-;14046:34;14042:1;14034:6;14030:14;14023:58;14115:8;14110:2;14102:6;14098:15;14091:33;13906:225;:::o;14137:366::-;14279:3;14300:67;14364:2;14359:3;14300:67;:::i;:::-;14293:74;;14376:93;14465:3;14376:93;:::i;:::-;14494:2;14489:3;14485:12;14478:19;;14137:366;;;:::o;14509:419::-;14675:4;14713:2;14702:9;14698:18;14690:26;;14762:9;14756:4;14752:20;14748:1;14737:9;14733:17;14726:47;14790:131;14916:4;14790:131;:::i;:::-;14782:139;;14509:419;;;:::o;14934:220::-;15074:34;15070:1;15062:6;15058:14;15051:58;15143:3;15138:2;15130:6;15126:15;15119:28;14934:220;:::o;15160:366::-;15302:3;15323:67;15387:2;15382:3;15323:67;:::i;:::-;15316:74;;15399:93;15488:3;15399:93;:::i;:::-;15517:2;15512:3;15508:12;15501:19;;15160:366;;;:::o;15532:419::-;15698:4;15736:2;15725:9;15721:18;15713:26;;15785:9;15779:4;15775:20;15771:1;15760:9;15756:17;15749:47;15813:131;15939:4;15813:131;:::i;:::-;15805:139;;15532:419;;;:::o;15957:223::-;16097:34;16093:1;16085:6;16081:14;16074:58;16166:6;16161:2;16153:6;16149:15;16142:31;15957:223;:::o;16186:366::-;16328:3;16349:67;16413:2;16408:3;16349:67;:::i;:::-;16342:74;;16425:93;16514:3;16425:93;:::i;:::-;16543:2;16538:3;16534:12;16527:19;;16186:366;;;:::o;16558:419::-;16724:4;16762:2;16751:9;16747:18;16739:26;;16811:9;16805:4;16801:20;16797:1;16786:9;16782:17;16775:47;16839:131;16965:4;16839:131;:::i;:::-;16831:139;;16558:419;;;:::o;16983:221::-;17123:34;17119:1;17111:6;17107:14;17100:58;17192:4;17187:2;17179:6;17175:15;17168:29;16983:221;:::o;17210:366::-;17352:3;17373:67;17437:2;17432:3;17373:67;:::i;:::-;17366:74;;17449:93;17538:3;17449:93;:::i;:::-;17567:2;17562:3;17558:12;17551:19;;17210:366;;;:::o;17582:419::-;17748:4;17786:2;17775:9;17771:18;17763:26;;17835:9;17829:4;17825:20;17821:1;17810:9;17806:17;17799:47;17863:131;17989:4;17863:131;:::i;:::-;17855:139;;17582:419;;;:::o;18007:224::-;18147:34;18143:1;18135:6;18131:14;18124:58;18216:7;18211:2;18203:6;18199:15;18192:32;18007:224;:::o;18237:366::-;18379:3;18400:67;18464:2;18459:3;18400:67;:::i;:::-;18393:74;;18476:93;18565:3;18476:93;:::i;:::-;18594:2;18589:3;18585:12;18578:19;;18237:366;;;:::o;18609:419::-;18775:4;18813:2;18802:9;18798:18;18790:26;;18862:9;18856:4;18852:20;18848:1;18837:9;18833:17;18826:47;18890:131;19016:4;18890:131;:::i;:::-;18882:139;;18609:419;;;:::o;19034:222::-;19174:34;19170:1;19162:6;19158:14;19151:58;19243:5;19238:2;19230:6;19226:15;19219:30;19034:222;:::o;19262:366::-;19404:3;19425:67;19489:2;19484:3;19425:67;:::i;:::-;19418:74;;19501:93;19590:3;19501:93;:::i;:::-;19619:2;19614:3;19610:12;19603:19;;19262:366;;;:::o;19634:419::-;19800:4;19838:2;19827:9;19823:18;19815:26;;19887:9;19881:4;19877:20;19873:1;19862:9;19858:17;19851:47;19915:131;20041:4;19915:131;:::i;:::-;19907:139;;19634:419;;;:::o;20059:228::-;20199:34;20195:1;20187:6;20183:14;20176:58;20268:11;20263:2;20255:6;20251:15;20244:36;20059:228;:::o;20293:366::-;20435:3;20456:67;20520:2;20515:3;20456:67;:::i;:::-;20449:74;;20532:93;20621:3;20532:93;:::i;:::-;20650:2;20645:3;20641:12;20634:19;;20293:366;;;:::o;20665:419::-;20831:4;20869:2;20858:9;20854:18;20846:26;;20918:9;20912:4;20908:20;20904:1;20893:9;20889:17;20882:47;20946:131;21072:4;20946:131;:::i;:::-;20938:139;;20665:419;;;:::o;21090:250::-;21230:34;21226:1;21218:6;21214:14;21207:58;21299:33;21294:2;21286:6;21282:15;21275:58;21090:250;:::o;21346:366::-;21488:3;21509:67;21573:2;21568:3;21509:67;:::i;:::-;21502:74;;21585:93;21674:3;21585:93;:::i;:::-;21703:2;21698:3;21694:12;21687:19;;21346:366;;;:::o;21718:419::-;21884:4;21922:2;21911:9;21907:18;21899:26;;21971:9;21965:4;21961:20;21957:1;21946:9;21942:17;21935:47;21999:131;22125:4;21999:131;:::i;:::-;21991:139;;21718:419;;;:::o;22143:178::-;22283:30;22279:1;22271:6;22267:14;22260:54;22143:178;:::o;22327:366::-;22469:3;22490:67;22554:2;22549:3;22490:67;:::i;:::-;22483:74;;22566:93;22655:3;22566:93;:::i;:::-;22684:2;22679:3;22675:12;22668:19;;22327:366;;;:::o;22699:419::-;22865:4;22903:2;22892:9;22888:18;22880:26;;22952:9;22946:4;22942:20;22938:1;22927:9;22923:17;22916:47;22980:131;23106:4;22980:131;:::i;:::-;22972:139;;22699:419;;;:::o;23124:222::-;23264:34;23260:1;23252:6;23248:14;23241:58;23333:5;23328:2;23320:6;23316:15;23309:30;23124:222;:::o;23352:366::-;23494:3;23515:67;23579:2;23574:3;23515:67;:::i;:::-;23508:74;;23591:93;23680:3;23591:93;:::i;:::-;23709:2;23704:3;23700:12;23693:19;;23352:366;;;:::o;23724:419::-;23890:4;23928:2;23917:9;23913:18;23905:26;;23977:9;23971:4;23967:20;23963:1;23952:9;23948:17;23941:47;24005:131;24131:4;24005:131;:::i;:::-;23997:139;;23724:419;;;:::o;24149:305::-;24189:3;24208:20;24226:1;24208:20;:::i;:::-;24203:25;;24242:20;24260:1;24242:20;:::i;:::-;24237:25;;24396:1;24328:66;24324:74;24321:1;24318:81;24315:107;;;24402:18;;:::i;:::-;24315:107;24446:1;24443;24439:9;24432:16;;24149:305;;;;:::o;24460:222::-;24600:34;24596:1;24588:6;24584:14;24577:58;24669:5;24664:2;24656:6;24652:15;24645:30;24460:222;:::o;24688:366::-;24830:3;24851:67;24915:2;24910:3;24851:67;:::i;:::-;24844:74;;24927:93;25016:3;24927:93;:::i;:::-;25045:2;25040:3;25036:12;25029:19;;24688:366;;;:::o;25060:419::-;25226:4;25264:2;25253:9;25249:18;25241:26;;25313:9;25307:4;25303:20;25299:1;25288:9;25284:17;25277:47;25341:131;25467:4;25341:131;:::i;:::-;25333:139;;25060:419;;;:::o;25485:191::-;25525:4;25545:20;25563:1;25545:20;:::i;:::-;25540:25;;25579:20;25597:1;25579:20;:::i;:::-;25574:25;;25618:1;25615;25612:8;25609:34;;;25623:18;;:::i;:::-;25609:34;25668:1;25665;25661:9;25653:17;;25485:191;;;;:::o;25682:229::-;25822:34;25818:1;25810:6;25806:14;25799:58;25891:12;25886:2;25878:6;25874:15;25867:37;25682:229;:::o;25917:366::-;26059:3;26080:67;26144:2;26139:3;26080:67;:::i;:::-;26073:74;;26156:93;26245:3;26156:93;:::i;:::-;26274:2;26269:3;26265:12;26258:19;;25917:366;;;:::o;26289:419::-;26455:4;26493:2;26482:9;26478:18;26470:26;;26542:9;26536:4;26532:20;26528:1;26517:9;26513:17;26506:47;26570:131;26696:4;26570:131;:::i;:::-;26562:139;;26289:419;;;:::o;26714:143::-;26771:5;26802:6;26796:13;26787:22;;26818:33;26845:5;26818:33;:::i;:::-;26714:143;;;;:::o;26863:351::-;26933:6;26982:2;26970:9;26961:7;26957:23;26953:32;26950:119;;;26988:79;;:::i;:::-;26950:119;27108:1;27133:64;27189:7;27180:6;27169:9;27165:22;27133:64;:::i;:::-;27123:74;;27079:128;26863:351;;;;:::o;27220:85::-;27265:7;27294:5;27283:16;;27220:85;;;:::o;27311:158::-;27369:9;27402:61;27420:42;27429:32;27455:5;27429:32;:::i;:::-;27420:42;:::i;:::-;27402:61;:::i;:::-;27389:74;;27311:158;;;:::o;27475:147::-;27570:45;27609:5;27570:45;:::i;:::-;27565:3;27558:58;27475:147;;:::o;27628:114::-;27695:6;27729:5;27723:12;27713:22;;27628:114;;;:::o;27748:184::-;27847:11;27881:6;27876:3;27869:19;27921:4;27916:3;27912:14;27897:29;;27748:184;;;;:::o;27938:132::-;28005:4;28028:3;28020:11;;28058:4;28053:3;28049:14;28041:22;;27938:132;;;:::o;28076:108::-;28153:24;28171:5;28153:24;:::i;:::-;28148:3;28141:37;28076:108;;:::o;28190:179::-;28259:10;28280:46;28322:3;28314:6;28280:46;:::i;:::-;28358:4;28353:3;28349:14;28335:28;;28190:179;;;;:::o;28375:113::-;28445:4;28477;28472:3;28468:14;28460:22;;28375:113;;;:::o;28524:732::-;28643:3;28672:54;28720:5;28672:54;:::i;:::-;28742:86;28821:6;28816:3;28742:86;:::i;:::-;28735:93;;28852:56;28902:5;28852:56;:::i;:::-;28931:7;28962:1;28947:284;28972:6;28969:1;28966:13;28947:284;;;29048:6;29042:13;29075:63;29134:3;29119:13;29075:63;:::i;:::-;29068:70;;29161:60;29214:6;29161:60;:::i;:::-;29151:70;;29007:224;28994:1;28991;28987:9;28982:14;;28947:284;;;28951:14;29247:3;29240:10;;28648:608;;;28524:732;;;;:::o;29262:831::-;29525:4;29563:3;29552:9;29548:19;29540:27;;29577:71;29645:1;29634:9;29630:17;29621:6;29577:71;:::i;:::-;29658:80;29734:2;29723:9;29719:18;29710:6;29658:80;:::i;:::-;29785:9;29779:4;29775:20;29770:2;29759:9;29755:18;29748:48;29813:108;29916:4;29907:6;29813:108;:::i;:::-;29805:116;;29931:72;29999:2;29988:9;29984:18;29975:6;29931:72;:::i;:::-;30013:73;30081:3;30070:9;30066:19;30057:6;30013:73;:::i;:::-;29262:831;;;;;;;;:::o;30099:177::-;30239:29;30235:1;30227:6;30223:14;30216:53;30099:177;:::o;30282:366::-;30424:3;30445:67;30509:2;30504:3;30445:67;:::i;:::-;30438:74;;30521:93;30610:3;30521:93;:::i;:::-;30639:2;30634:3;30630:12;30623:19;;30282:366;;;:::o;30654:419::-;30820:4;30858:2;30847:9;30843:18;30835:26;;30907:9;30901:4;30897:20;30893:1;30882:9;30878:17;30871:47;30935:131;31061:4;30935:131;:::i;:::-;30927:139;;30654:419;;;:::o

Swarm Source

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