ETH Price: $3,387.22 (+10.51%)
Gas: 94 Gwei

Token

Growl Inu (GROWL)
 

Overview

Max Total Supply

1,000,000 GROWL

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 GROWL

Value
$0.00
0x6e9cd8864a04f5a799c1de68d5b738cd2ad70534
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:
Growl

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/**

Growl Inu is the new dog in town, a dog that has no fear for the other INUs, a dog that is willing to prove its dominance in the crypto space.

https://t.me/growltoken 
https://twitter.com/growltoken 

 */

pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract Growl is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Growl Inu";
    string private constant _symbol = "GROWL";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 15;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 25;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(0x291a837D008Ccdd7F309624375A36A1794c7e3aa); 
    address payable private _marketingAddress = payable(0x291a837D008Ccdd7F309624375A36A1794c7e3aa);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 15001 * 10**9; 
    uint256 public _maxWalletSize = 15001 * 10**9; 
    uint256 public _swapTokensAtAmount = 500 * 10**9;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be 0%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 10, "Buy tax must be between 0% and 5%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be 0%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 10, "Sell tax must be between 0% and 5%");

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

    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
	require(
            maxTxAmount >= ((totalSupply() * 1) / 100),
            "Cannot set maxTransactionAmount lower than 1%"
        );
	_maxTxAmount = maxTxAmount;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
	require(
            maxWalletSize >= ((totalSupply() * 1) / 100),
            "Cannot set maxWalletAmount lower than 1%"
        );
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c680006000196200001b919062000724565b6000196200002a91906200078b565b6006556000600855600f6009556000600a556019600b55600a54600c55600b54600d55600c54600e55600d54600f5573291a837d008ccdd7f309624375a36a1794c7e3aa601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073291a837d008ccdd7f309624375a36a1794c7e3aa601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550650da4b146ba00601655650da4b146ba0060175564746a5288006018553480156200017d57600080fd5b50600062000190620006ba60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000245620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f919062000830565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dd919062000830565b6040518363ffffffff1660e01b8152600401620003fc92919062000873565b6020604051808303816000875af11580156200041c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000442919062000830565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000498620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000645620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006ab9190620008b1565b60405180910390a350620008ce565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073182620006eb565b91506200073e83620006eb565b925082620007515762000750620006f5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079882620006eb565b9150620007a583620006eb565b9250828203905081811115620007c057620007bf6200075c565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f882620007cb565b9050919050565b6200080a81620007eb565b81146200081657600080fd5b50565b6000815190506200082a81620007ff565b92915050565b600060208284031215620008495762000848620007c6565b5b6000620008598482850162000819565b91505092915050565b6200086d81620007eb565b82525050565b60006040820190506200088a600083018562000862565b62000899602083018462000862565b9392505050565b620008ab81620006eb565b82525050565b6000602082019050620008c86000830184620008a0565b92915050565b613ec280620008de6000396000f3fe6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e99190612b99565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c59565b6106ea565b6040516102269190612cb4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612d2e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612d58565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d73565b61073d565b6040516102b99190612cb4565b60405180910390f35b3480156102ce57600080fd5b506102d7610816565b6040516102e49190612d58565b60405180910390f35b3480156102f957600080fd5b5061030261081c565b60405161030f9190612de2565b60405180910390f35b34801561032457600080fd5b5061032d610825565b60405161033a9190612e0c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612e53565b61084b565b005b34801561037857600080fd5b506103816108fd565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612e80565b6109ce565b6040516103b79190612d58565b60405180910390f35b3480156103cc57600080fd5b506103d5610a1f565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ead565b610b72565b005b34801561040c57600080fd5b50610415610c73565b6040516104229190612d58565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612e80565b610c79565b60405161045f9190612d58565b60405180910390f35b34801561047457600080fd5b5061047d610c91565b60405161048a9190612e0c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612e53565b610cba565b005b3480156104c857600080fd5b506104d1610d6c565b6040516104de9190612d58565b60405180910390f35b3480156104f357600080fd5b506104fc610d72565b6040516105099190612b99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ead565b610daf565b005b34801561054757600080fd5b50610562600480360381019061055d9190612eda565b610e4e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612c59565b611049565b6040516105989190612cb4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612e80565b611067565b6040516105d59190612cb4565b60405180910390f35b3480156105ea57600080fd5b506105f3611087565b005b34801561060157600080fd5b5061061c60048036038101906106179190612fa6565b611160565b005b34801561062a57600080fd5b5061064560048036038101906106409190613006565b61129a565b6040516106529190612d58565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ead565b611321565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612e80565b611422565b005b60606040518060400160405280600981526020017f47726f776c20496e750000000000000000000000000000000000000000000000815250905090565b60006106fe6106f76115e3565b84846115eb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b600061074a8484846117b4565b61080b846107566115e3565b61080685604051806060016040528060288152602001613e6560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bc6115e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b6115eb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108536115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d790613092565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e6115e3565b73ffffffffffffffffffffffffffffffffffffffff1614806109b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b6109bd57600080fd5b60004790506109cb8161209b565b50565b6000610a18600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612107565b9050919050565b610a276115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90613092565b60405180910390fd5b60646001610c1361072e565b610c1d91906130e1565b610c279190613152565b811015610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c60906131f5565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc26115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613092565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f47524f574c000000000000000000000000000000000000000000000000000000815250905090565b610db76115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613092565b60405180910390fd5b8060188190555050565b610e566115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613092565b60405180910390fd5b60008410158015610ef5575060008411155b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613261565b60405180910390fd5b60008210158015610f465750600a8211155b610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c906132f3565b60405180910390fd5b60008310158015610f97575060008311155b610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd9061335f565b60405180910390fd5b60008110158015610fe85750600a8111155b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906133f1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061105d6110566115e3565b84846117b4565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c86115e3565b73ffffffffffffffffffffffffffffffffffffffff16148061113e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111266115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b61114757600080fd5b6000611152306109ce565b905061115d81612175565b50565b6111686115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613092565b60405180910390fd5b60005b8383905081101561129457816005600086868581811061121b5761121a613411565b5b90506020020160208101906112309190612e80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128c90613440565b9150506111f8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113296115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613092565b60405180910390fd5b606460016113c261072e565b6113cc91906130e1565b6113d69190613152565b811015611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f906134fa565b60405180910390fd5b8060178190555050565b61142a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d9061358c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116519061361e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c0906136b0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a79190612d58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613742565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137d4565b60405180910390fd5b600081116118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613866565b60405180910390fd5b6118dd610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194b575061191b610c91565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d3657601560149054906101000a900460ff166119da5761196c610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d0906138f8565b60405180910390fd5b5b601654811115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1690613964565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ac35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af9906139f6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baf5760175481611b64846109ce565b611b6e9190613a16565b10611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613abc565b60405180910390fd5b5b6000611bba306109ce565b9050600060185482101590506016548210611bd55760165491505b808015611bed575060158054906101000a900460ff16155b8015611c475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5f5750601560169054906101000a900460ff165b8015611cb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3357611d1982612175565b60004790506000811115611d3157611d304761209b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ddd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e905750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e8f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e9e5760009050612025565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f6157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561200c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561202457600a54600c81905550600b54600d819055505b5b612031848484846123ec565b50505050565b600083831115829061207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769190612b99565b60405180910390fd5b506000838561208e9190613adc565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612103573d6000803e3d6000fd5b5050565b600060065482111561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590613b82565b60405180910390fd5b6000612158612419565b905061216d818461244490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ac576121ab613ba2565b5b6040519080825280602002602001820160405280156121da5781602001602082028036833780820191505090505b50905030816000815181106121f2576121f1613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd9190613be6565b816001815181106122d1576122d0613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239c959493929190613d0c565b600060405180830381600087803b1580156123b657600080fd5b505af11580156123ca573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123fa576123f961248e565b5b6124058484846124cb565b8061241357612412612696565b5b50505050565b60008060006124266126aa565b9150915061243d818361244490919063ffffffff16565b9250505090565b600061248683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612706565b905092915050565b6000600c541480156124a257506000600d54145b6124c957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806124dd87612769565b95509550955095509550955061253b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261c81612879565b6126268483612936565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126839190612d58565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506126dc66038d7ea4c6800060065461244490919063ffffffff16565b8210156126f95760065466038d7ea4c68000935093505050612702565b81819350935050505b9091565b6000808311829061274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449190612b99565b60405180910390fd5b506000838561275c9190613152565b9050809150509392505050565b60008060008060008060008060006127868a600c54600d54612970565b9250925092506000612796612419565b905060008060006127a98e878787612a06565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b600080828461282a9190613a16565b90508381101561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613db2565b60405180910390fd5b8091505092915050565b6000612883612419565b9050600061289a8284612a8f90919063ffffffff16565b90506128ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61294b826006546127d190919063ffffffff16565b6006819055506129668160075461281b90919063ffffffff16565b6007819055505050565b60008060008061299c606461298e888a612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129c660646129b8888b612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129ef826129e1858c6127d190919063ffffffff16565b6127d190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a1f8589612a8f90919063ffffffff16565b90506000612a368689612a8f90919063ffffffff16565b90506000612a4d8789612a8f90919063ffffffff16565b90506000612a7682612a6885876127d190919063ffffffff16565b6127d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612aa15760009050612b03565b60008284612aaf91906130e1565b9050828482612abe9190613152565b14612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e44565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b43578082015181840152602081019050612b28565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b6b82612b09565b612b758185612b14565b9350612b85818560208601612b25565b612b8e81612b4f565b840191505092915050565b60006020820190508181036000830152612bb38184612b60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bf082612bc5565b9050919050565b612c0081612be5565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b6000819050919050565b612c3681612c23565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612bbb565b5b6000612c7e85828601612c0e565b9250506020612c8f85828601612c44565b9150509250929050565b60008115159050919050565b612cae81612c99565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b6000819050919050565b6000612cf4612cef612cea84612bc5565b612ccf565b612bc5565b9050919050565b6000612d0682612cd9565b9050919050565b6000612d1882612cfb565b9050919050565b612d2881612d0d565b82525050565b6000602082019050612d436000830184612d1f565b92915050565b612d5281612c23565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600080600060608486031215612d8c57612d8b612bbb565b5b6000612d9a86828701612c0e565b9350506020612dab86828701612c0e565b9250506040612dbc86828701612c44565b9150509250925092565b600060ff82169050919050565b612ddc81612dc6565b82525050565b6000602082019050612df76000830184612dd3565b92915050565b612e0681612be5565b82525050565b6000602082019050612e216000830184612dfd565b92915050565b612e3081612c99565b8114612e3b57600080fd5b50565b600081359050612e4d81612e27565b92915050565b600060208284031215612e6957612e68612bbb565b5b6000612e7784828501612e3e565b91505092915050565b600060208284031215612e9657612e95612bbb565b5b6000612ea484828501612c0e565b91505092915050565b600060208284031215612ec357612ec2612bbb565b5b6000612ed184828501612c44565b91505092915050565b60008060008060808587031215612ef457612ef3612bbb565b5b6000612f0287828801612c44565b9450506020612f1387828801612c44565b9350506040612f2487828801612c44565b9250506060612f3587828801612c44565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612f6657612f65612f41565b5b8235905067ffffffffffffffff811115612f8357612f82612f46565b5b602083019150836020820283011115612f9f57612f9e612f4b565b5b9250929050565b600080600060408486031215612fbf57612fbe612bbb565b5b600084013567ffffffffffffffff811115612fdd57612fdc612bc0565b5b612fe986828701612f50565b93509350506020612ffc86828701612e3e565b9150509250925092565b6000806040838503121561301d5761301c612bbb565b5b600061302b85828601612c0e565b925050602061303c85828601612c0e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307c602083612b14565b915061308782613046565b602082019050919050565b600060208201905081810360008301526130ab8161306f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ec82612c23565b91506130f783612c23565b925082820261310581612c23565b9150828204841483151761311c5761311b6130b2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061315d82612c23565b915061316883612c23565b92508261317857613177613123565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006131df602d83612b14565b91506131ea82613183565b604082019050919050565b6000602082019050818103600083015261320e816131d2565b9050919050565b7f4275792072657761726473206d75737420626520302500000000000000000000600082015250565b600061324b601683612b14565b915061325682613215565b602082019050919050565b6000602082019050818103600083015261327a8161323e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006132dd602183612b14565b91506132e882613281565b604082019050919050565b6000602082019050818103600083015261330c816132d0565b9050919050565b7f53656c6c2072657761726473206d757374206265203025000000000000000000600082015250565b6000613349601783612b14565b915061335482613313565b602082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b60006133db602283612b14565b91506133e68261337f565b604082019050919050565b6000602082019050818103600083015261340a816133ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061344b82612c23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347d5761347c6130b2565b5b600182019050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b60006134e4602883612b14565b91506134ef82613488565b604082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613576602683612b14565b91506135818261351a565b604082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613608602483612b14565b9150613613826135ac565b604082019050919050565b60006020820190508181036000830152613637816135fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061369a602283612b14565b91506136a58261363e565b604082019050919050565b600060208201905081810360008301526136c98161368d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061372c602583612b14565b9150613737826136d0565b604082019050919050565b6000602082019050818103600083015261375b8161371f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137be602383612b14565b91506137c982613762565b604082019050919050565b600060208201905081810360008301526137ed816137b1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613850602983612b14565b915061385b826137f4565b604082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138e2603f83612b14565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061394e601c83612b14565b915061395982613918565b602082019050919050565b6000602082019050818103600083015261397d81613941565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139e0602383612b14565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b6000613a2182612c23565b9150613a2c83612c23565b9250828201905080821115613a4457613a436130b2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa6602383612b14565b9150613ab182613a4a565b604082019050919050565b60006020820190508181036000830152613ad581613a99565b9050919050565b6000613ae782612c23565b9150613af283612c23565b9250828203905081811115613b0a57613b096130b2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b6c602a83612b14565b9150613b7782613b10565b604082019050919050565b60006020820190508181036000830152613b9b81613b5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613be081612bf7565b92915050565b600060208284031215613bfc57613bfb612bbb565b5b6000613c0a84828501613bd1565b91505092915050565b6000819050919050565b6000613c38613c33613c2e84613c13565b612ccf565b612c23565b9050919050565b613c4881613c1d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8381612be5565b82525050565b6000613c958383613c7a565b60208301905092915050565b6000602082019050919050565b6000613cb982613c4e565b613cc38185613c59565b9350613cce83613c6a565b8060005b83811015613cff578151613ce68882613c89565b9750613cf183613ca1565b925050600181019050613cd2565b5085935050505092915050565b600060a082019050613d216000830188612d49565b613d2e6020830187613c3f565b8181036040830152613d408186613cae565b9050613d4f6060830185612dfd565b613d5c6080830184612d49565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d9c601b83612b14565b9150613da782613d66565b602082019050919050565b60006020820190508181036000830152613dcb81613d8f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e2e602183612b14565b9150613e3982613dd2565b604082019050919050565b60006020820190508181036000830152613e5d81613e21565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eb3344f3c96fe083fca57ba6e7edb9d24cd8345aa48cf3df7e69752beb33656c64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e99190612b99565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c59565b6106ea565b6040516102269190612cb4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612d2e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612d58565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d73565b61073d565b6040516102b99190612cb4565b60405180910390f35b3480156102ce57600080fd5b506102d7610816565b6040516102e49190612d58565b60405180910390f35b3480156102f957600080fd5b5061030261081c565b60405161030f9190612de2565b60405180910390f35b34801561032457600080fd5b5061032d610825565b60405161033a9190612e0c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612e53565b61084b565b005b34801561037857600080fd5b506103816108fd565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612e80565b6109ce565b6040516103b79190612d58565b60405180910390f35b3480156103cc57600080fd5b506103d5610a1f565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ead565b610b72565b005b34801561040c57600080fd5b50610415610c73565b6040516104229190612d58565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612e80565b610c79565b60405161045f9190612d58565b60405180910390f35b34801561047457600080fd5b5061047d610c91565b60405161048a9190612e0c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612e53565b610cba565b005b3480156104c857600080fd5b506104d1610d6c565b6040516104de9190612d58565b60405180910390f35b3480156104f357600080fd5b506104fc610d72565b6040516105099190612b99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ead565b610daf565b005b34801561054757600080fd5b50610562600480360381019061055d9190612eda565b610e4e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612c59565b611049565b6040516105989190612cb4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612e80565b611067565b6040516105d59190612cb4565b60405180910390f35b3480156105ea57600080fd5b506105f3611087565b005b34801561060157600080fd5b5061061c60048036038101906106179190612fa6565b611160565b005b34801561062a57600080fd5b5061064560048036038101906106409190613006565b61129a565b6040516106529190612d58565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ead565b611321565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612e80565b611422565b005b60606040518060400160405280600981526020017f47726f776c20496e750000000000000000000000000000000000000000000000815250905090565b60006106fe6106f76115e3565b84846115eb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b600061074a8484846117b4565b61080b846107566115e3565b61080685604051806060016040528060288152602001613e6560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bc6115e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b6115eb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108536115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d790613092565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e6115e3565b73ffffffffffffffffffffffffffffffffffffffff1614806109b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b6109bd57600080fd5b60004790506109cb8161209b565b50565b6000610a18600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612107565b9050919050565b610a276115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90613092565b60405180910390fd5b60646001610c1361072e565b610c1d91906130e1565b610c279190613152565b811015610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c60906131f5565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc26115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613092565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f47524f574c000000000000000000000000000000000000000000000000000000815250905090565b610db76115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613092565b60405180910390fd5b8060188190555050565b610e566115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613092565b60405180910390fd5b60008410158015610ef5575060008411155b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613261565b60405180910390fd5b60008210158015610f465750600a8211155b610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c906132f3565b60405180910390fd5b60008310158015610f97575060008311155b610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd9061335f565b60405180910390fd5b60008110158015610fe85750600a8111155b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906133f1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061105d6110566115e3565b84846117b4565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c86115e3565b73ffffffffffffffffffffffffffffffffffffffff16148061113e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111266115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b61114757600080fd5b6000611152306109ce565b905061115d81612175565b50565b6111686115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613092565b60405180910390fd5b60005b8383905081101561129457816005600086868581811061121b5761121a613411565b5b90506020020160208101906112309190612e80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128c90613440565b9150506111f8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113296115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613092565b60405180910390fd5b606460016113c261072e565b6113cc91906130e1565b6113d69190613152565b811015611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f906134fa565b60405180910390fd5b8060178190555050565b61142a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d9061358c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116519061361e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c0906136b0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a79190612d58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613742565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137d4565b60405180910390fd5b600081116118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613866565b60405180910390fd5b6118dd610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194b575061191b610c91565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d3657601560149054906101000a900460ff166119da5761196c610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d0906138f8565b60405180910390fd5b5b601654811115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1690613964565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ac35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af9906139f6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baf5760175481611b64846109ce565b611b6e9190613a16565b10611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613abc565b60405180910390fd5b5b6000611bba306109ce565b9050600060185482101590506016548210611bd55760165491505b808015611bed575060158054906101000a900460ff16155b8015611c475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5f5750601560169054906101000a900460ff165b8015611cb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3357611d1982612175565b60004790506000811115611d3157611d304761209b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ddd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e905750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e8f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e9e5760009050612025565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f6157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561200c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561202457600a54600c81905550600b54600d819055505b5b612031848484846123ec565b50505050565b600083831115829061207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769190612b99565b60405180910390fd5b506000838561208e9190613adc565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612103573d6000803e3d6000fd5b5050565b600060065482111561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590613b82565b60405180910390fd5b6000612158612419565b905061216d818461244490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ac576121ab613ba2565b5b6040519080825280602002602001820160405280156121da5781602001602082028036833780820191505090505b50905030816000815181106121f2576121f1613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd9190613be6565b816001815181106122d1576122d0613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239c959493929190613d0c565b600060405180830381600087803b1580156123b657600080fd5b505af11580156123ca573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123fa576123f961248e565b5b6124058484846124cb565b8061241357612412612696565b5b50505050565b60008060006124266126aa565b9150915061243d818361244490919063ffffffff16565b9250505090565b600061248683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612706565b905092915050565b6000600c541480156124a257506000600d54145b6124c957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806124dd87612769565b95509550955095509550955061253b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261c81612879565b6126268483612936565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126839190612d58565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506126dc66038d7ea4c6800060065461244490919063ffffffff16565b8210156126f95760065466038d7ea4c68000935093505050612702565b81819350935050505b9091565b6000808311829061274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449190612b99565b60405180910390fd5b506000838561275c9190613152565b9050809150509392505050565b60008060008060008060008060006127868a600c54600d54612970565b9250925092506000612796612419565b905060008060006127a98e878787612a06565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b600080828461282a9190613a16565b90508381101561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613db2565b60405180910390fd5b8091505092915050565b6000612883612419565b9050600061289a8284612a8f90919063ffffffff16565b90506128ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61294b826006546127d190919063ffffffff16565b6006819055506129668160075461281b90919063ffffffff16565b6007819055505050565b60008060008061299c606461298e888a612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129c660646129b8888b612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129ef826129e1858c6127d190919063ffffffff16565b6127d190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a1f8589612a8f90919063ffffffff16565b90506000612a368689612a8f90919063ffffffff16565b90506000612a4d8789612a8f90919063ffffffff16565b90506000612a7682612a6885876127d190919063ffffffff16565b6127d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612aa15760009050612b03565b60008284612aaf91906130e1565b9050828482612abe9190613152565b14612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e44565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b43578082015181840152602081019050612b28565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b6b82612b09565b612b758185612b14565b9350612b85818560208601612b25565b612b8e81612b4f565b840191505092915050565b60006020820190508181036000830152612bb38184612b60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bf082612bc5565b9050919050565b612c0081612be5565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b6000819050919050565b612c3681612c23565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612bbb565b5b6000612c7e85828601612c0e565b9250506020612c8f85828601612c44565b9150509250929050565b60008115159050919050565b612cae81612c99565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b6000819050919050565b6000612cf4612cef612cea84612bc5565b612ccf565b612bc5565b9050919050565b6000612d0682612cd9565b9050919050565b6000612d1882612cfb565b9050919050565b612d2881612d0d565b82525050565b6000602082019050612d436000830184612d1f565b92915050565b612d5281612c23565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600080600060608486031215612d8c57612d8b612bbb565b5b6000612d9a86828701612c0e565b9350506020612dab86828701612c0e565b9250506040612dbc86828701612c44565b9150509250925092565b600060ff82169050919050565b612ddc81612dc6565b82525050565b6000602082019050612df76000830184612dd3565b92915050565b612e0681612be5565b82525050565b6000602082019050612e216000830184612dfd565b92915050565b612e3081612c99565b8114612e3b57600080fd5b50565b600081359050612e4d81612e27565b92915050565b600060208284031215612e6957612e68612bbb565b5b6000612e7784828501612e3e565b91505092915050565b600060208284031215612e9657612e95612bbb565b5b6000612ea484828501612c0e565b91505092915050565b600060208284031215612ec357612ec2612bbb565b5b6000612ed184828501612c44565b91505092915050565b60008060008060808587031215612ef457612ef3612bbb565b5b6000612f0287828801612c44565b9450506020612f1387828801612c44565b9350506040612f2487828801612c44565b9250506060612f3587828801612c44565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612f6657612f65612f41565b5b8235905067ffffffffffffffff811115612f8357612f82612f46565b5b602083019150836020820283011115612f9f57612f9e612f4b565b5b9250929050565b600080600060408486031215612fbf57612fbe612bbb565b5b600084013567ffffffffffffffff811115612fdd57612fdc612bc0565b5b612fe986828701612f50565b93509350506020612ffc86828701612e3e565b9150509250925092565b6000806040838503121561301d5761301c612bbb565b5b600061302b85828601612c0e565b925050602061303c85828601612c0e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307c602083612b14565b915061308782613046565b602082019050919050565b600060208201905081810360008301526130ab8161306f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ec82612c23565b91506130f783612c23565b925082820261310581612c23565b9150828204841483151761311c5761311b6130b2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061315d82612c23565b915061316883612c23565b92508261317857613177613123565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006131df602d83612b14565b91506131ea82613183565b604082019050919050565b6000602082019050818103600083015261320e816131d2565b9050919050565b7f4275792072657761726473206d75737420626520302500000000000000000000600082015250565b600061324b601683612b14565b915061325682613215565b602082019050919050565b6000602082019050818103600083015261327a8161323e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006132dd602183612b14565b91506132e882613281565b604082019050919050565b6000602082019050818103600083015261330c816132d0565b9050919050565b7f53656c6c2072657761726473206d757374206265203025000000000000000000600082015250565b6000613349601783612b14565b915061335482613313565b602082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b60006133db602283612b14565b91506133e68261337f565b604082019050919050565b6000602082019050818103600083015261340a816133ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061344b82612c23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347d5761347c6130b2565b5b600182019050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b60006134e4602883612b14565b91506134ef82613488565b604082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613576602683612b14565b91506135818261351a565b604082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613608602483612b14565b9150613613826135ac565b604082019050919050565b60006020820190508181036000830152613637816135fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061369a602283612b14565b91506136a58261363e565b604082019050919050565b600060208201905081810360008301526136c98161368d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061372c602583612b14565b9150613737826136d0565b604082019050919050565b6000602082019050818103600083015261375b8161371f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137be602383612b14565b91506137c982613762565b604082019050919050565b600060208201905081810360008301526137ed816137b1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613850602983612b14565b915061385b826137f4565b604082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138e2603f83612b14565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061394e601c83612b14565b915061395982613918565b602082019050919050565b6000602082019050818103600083015261397d81613941565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139e0602383612b14565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b6000613a2182612c23565b9150613a2c83612c23565b9250828201905080821115613a4457613a436130b2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa6602383612b14565b9150613ab182613a4a565b604082019050919050565b60006020820190508181036000830152613ad581613a99565b9050919050565b6000613ae782612c23565b9150613af283612c23565b9250828203905081811115613b0a57613b096130b2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b6c602a83612b14565b9150613b7782613b10565b604082019050919050565b60006020820190508181036000830152613b9b81613b5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613be081612bf7565b92915050565b600060208284031215613bfc57613bfb612bbb565b5b6000613c0a84828501613bd1565b91505092915050565b6000819050919050565b6000613c38613c33613c2e84613c13565b612ccf565b612c23565b9050919050565b613c4881613c1d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8381612be5565b82525050565b6000613c958383613c7a565b60208301905092915050565b6000602082019050919050565b6000613cb982613c4e565b613cc38185613c59565b9350613cce83613c6a565b8060005b83811015613cff578151613ce68882613c89565b9750613cf183613ca1565b925050600181019050613cd2565b5085935050505092915050565b600060a082019050613d216000830188612d49565b613d2e6020830187613c3f565b8181036040830152613d408186613cae565b9050613d4f6060830185612dfd565b613d5c6080830184612d49565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d9c601b83612b14565b9150613da782613d66565b602082019050919050565b60006020820190508181036000830152613dcb81613d8f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e2e602183612b14565b9150613e3982613dd2565b604082019050919050565b60006020820190508181036000830152613e5d81613e21565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eb3344f3c96fe083fca57ba6e7edb9d24cd8345aa48cf3df7e69752beb33656c64736f6c63430008120033

Deployed Bytecode Sourcemap

4318:13937:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6832:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7764:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5672:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7112:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7966:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5975:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7020:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5720:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17352:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12794:235;;;;;;;;;;;;;:::i;:::-;;7216:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1791:148;;;;;;;;;;;;;:::i;:::-;;17493:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5871:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1575:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12439:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5922:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6924:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17160:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16446:661;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7363:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5373:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12549:236;;;;;;;;;;;;;:::i;:::-;;18016:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7571:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17754:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1948:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6832:83;6869:13;6902:5;;;;;;;;;;;;;;;;;6895:12;;6832:83;:::o;7764:193::-;7866:4;7888:39;7897:12;:10;:12::i;:::-;7911:7;7920:6;7888:8;:39::i;:::-;7945:4;7938:11;;7764:193;;;;:::o;5672:41::-;;;;;;;;;;;;;:::o;7112:95::-;7165:7;4867:15;7185:14;;7112:95;:::o;7966:446::-;8098:4;8115:36;8125:6;8133:9;8144:6;8115:9;:36::i;:::-;8162:220;8185:6;8206:12;:10;:12::i;:::-;8233:138;8289:6;8233:138;;;;;;;;;;;;;;;;;:11;:19;8245:6;8233:19;;;;;;;;;;;;;;;:33;8253:12;:10;:12::i;:::-;8233:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8162:8;:220::i;:::-;8400:4;8393:11;;7966:446;;;;;:::o;5975:48::-;;;;:::o;7020:83::-;7061:5;4540:1;7079:16;;7020:83;:::o;5720:28::-;;;;;;;;;;;;;:::o;17352:101::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17433:12:::1;17419:11;;:26;;;;;;;;;;;;;;;;;;17352:101:::0;:::o;12794:235::-;12860:19;;;;;;;;;;;12844:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12899:17;;;;;;;;;;;12883:33;;:12;:10;:12::i;:::-;:33;;;12844:72;12836:81;;;;;;12928:26;12957:21;12928:50;;12989:32;13002:18;12989:12;:32::i;:::-;12825:204;12794:235::o;7216:138::-;7282:7;7309:37;7329:7;:16;7337:7;7329:16;;;;;;;;;;;;;;;;7309:19;:37::i;:::-;7302:44;;7216:138;;;:::o;1791:148::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1898:1:::1;1861:40;;1882:6;::::0;::::1;;;;;;;;1861:40;;;;;;;;;;;;1929:1;1912:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1791:148::o:0;17493:252::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17620:3:::1;17615:1;17599:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17598:25;;;;:::i;:::-;17582:11;:42;;17560:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;17716:11;17701:12;:26;;;;17493:252:::0;:::o;5871:43::-;;;;:::o;5411:::-;;;;;;;;;;;;;;;;;:::o;1575:79::-;1613:7;1640:6;;;;;;;;;;;1633:13;;1575:79;:::o;12439:101::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12520:12:::1;12506:11;;:26;;;;;;;;;;;;;;;;;;12439:101:::0;:::o;5922:45::-;;;;:::o;6924:87::-;6963:13;6996:7;;;;;;;;;;;;;;;;;6989:14;;6924:87;:::o;17160:139::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17273:18:::1;17251:19;:40;;;;17160:139:::0;:::o;16446:661::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16605:1:::1;16588:13;:18;;:40;;;;;16627:1;16610:13;:18;;16588:40;16580:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16689:1;16674:11;:16;;:37;;;;;16709:2;16694:11;:17;;16674:37;16666:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;16786:1;16768:14;:19;;:42;;;;;16809:1;16791:14;:19;;16768:42;16760:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;16873:1;16857:12;:17;;:39;;;;;16894:2;16878:12;:18;;16857:39;16849:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;16965:13;16948:14;:30;;;;17007:14;16989:15;:32;;;;17047:11;17032:12;:26;;;;17085:12;17069:13;:28;;;;16446:661:::0;;;;:::o;7363:199::-;7468:4;7490:42;7500:12;:10;:12::i;:::-;7514:9;7525:6;7490:9;:42::i;:::-;7550:4;7543:11;;7363:199;;;;:::o;5373:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12549:236::-;12615:19;;;;;;;;;;;12599:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12654:17;;;;;;;;;;;12638:33;;:12;:10;:12::i;:::-;:33;;;12599:72;12591:81;;;;;;12683:23;12709:24;12727:4;12709:9;:24::i;:::-;12683:50;;12744:33;12761:15;12744:16;:33::i;:::-;12580:205;12549:236::o;18016:234::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18133:9:::1;18129:114;18152:8;;:15;;18148:1;:19;18129:114;;;18223:8;18189:18;:31;18208:8;;18217:1;18208:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18189:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18169:3;;;;;:::i;:::-;;;;18129:114;;;;18016:234:::0;;;:::o;7571:184::-;7688:7;7720:11;:18;7732:5;7720:18;;;;;;;;;;;;;;;:27;7739:7;7720:27;;;;;;;;;;;;;;;;7713:34;;7571:184;;;;:::o;17754:253::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17886:3:::1;17881:1;17865:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17864:25;;;;:::i;:::-;17846:13;:44;;17824:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;17986:13;17969:14;:30;;;;17754:253:::0;:::o;1948:244::-;1713:12;:10;:12::i;:::-;1703:22;;:6;;;;;;;;;;:22;;;1695:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2057:1:::1;2037:22;;:8;:22;;::::0;2029:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2147:8;2118:38;;2139:6;::::0;::::1;;;;;;;;2118:38;;;;;;;;;;;;2176:8;2167:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1948:244:::0;:::o;324:98::-;377:7;404:10;397:17;;324:98;:::o;9109:369::-;9253:1;9236:19;;:5;:19;;;9228:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9334:1;9315:21;;:7;:21;;;9307:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9416:6;9386:11;:18;9398:5;9386:18;;;;;;;;;;;;;;;:27;9405:7;9386:27;;;;;;;;;;;;;;;:36;;;;9454:7;9438:32;;9447:5;9438:32;;;9463:6;9438:32;;;;;;:::i;:::-;;;;;;;;9109:369;;;:::o;9487:2343::-;9625:1;9609:18;;:4;:18;;;9601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9702:1;9688:16;;:2;:16;;;9680:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9772:1;9763:6;:10;9755:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9845:7;:5;:7::i;:::-;9837:15;;:4;:15;;;;:32;;;;;9862:7;:5;:7::i;:::-;9856:13;;:2;:13;;;;9837:32;9833:1265;;;9927:11;;;;;;;;;;;9922:144;;9975:7;:5;:7::i;:::-;9967:15;;:4;:15;;;9959:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9922:144;10101:12;;10091:6;:22;;10083:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10170:4;:10;10175:4;10170:10;;;;;;;;;;;;;;;;;;;;;;;;;10169:11;:24;;;;;10185:4;:8;10190:2;10185:8;;;;;;;;;;;;;;;;;;;;;;;;;10184:9;10169:24;10161:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10260:13;;;;;;;;;;;10254:19;;:2;:19;;;10251:146;;10327:14;;10318:6;10302:13;10312:2;10302:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10294:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:146;10414:28;10445:24;10463:4;10445:9;:24::i;:::-;10414:55;;10484:12;10523:19;;10499:20;:43;;10484:58;;10587:12;;10563:20;:36;10560:124;;10656:12;;10633:35;;10560:124;10705:7;:18;;;;;10717:6;;;;;;;;;;10716:7;10705:18;:43;;;;;10735:13;;;;;;;;;;;10727:21;;:4;:21;;;;10705:43;:58;;;;;10752:11;;;;;;;;;;;10705:58;:87;;;;;10768:18;:24;10787:4;10768:24;;;;;;;;;;;;;;;;;;;;;;;;;10767:25;10705:87;:114;;;;;10797:18;:22;10816:2;10797:22;;;;;;;;;;;;;;;;;;;;;;;;;10796:23;10705:114;10701:386;;;10840:38;10857:20;10840:16;:38::i;:::-;10897:26;10926:21;10897:50;;10991:1;10970:18;:22;10966:106;;;11017:35;11030:21;11017:12;:35::i;:::-;10966:106;10821:266;10701:386;9871:1227;;9833:1265;11111:12;11126:4;11111:19;;11176:18;:24;11195:4;11176:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11204:18;:22;11223:2;11204:22;;;;;;;;;;;;;;;;;;;;;;;;;11176:50;11175:102;;;;11240:13;;;;;;;;;;;11232:21;;:4;:21;;;;:44;;;;;11263:13;;;;;;;;;;;11257:19;;:2;:19;;;;11232:44;11175:102;11171:597;;;11304:5;11294:15;;11171:597;;;11388:13;;;;;;;;;;;11380:21;;:4;:21;;;:55;;;;;11419:15;;;;;;;;;;;11405:30;;:2;:30;;;;11380:55;11377:162;;;11468:14;;11456:9;:26;;;;11511:12;;11501:7;:22;;;;11377:162;11599:13;;;;;;;;;;;11593:19;;:2;:19;;;:55;;;;;11632:15;;;;;;;;;;;11616:32;;:4;:32;;;;11593:55;11589:165;;;11681:15;;11669:9;:27;;;;11725:13;;11715:7;:23;;;;11589:165;11171:597;11781:41;11796:4;11802:2;11806:6;11814:7;11781:14;:41::i;:::-;9590:2240;9487:2343;;;:::o;2560:224::-;2680:7;2713:1;2708;:6;;2716:12;2700:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2740:9;2756:1;2752;:5;;;;:::i;:::-;2740:17;;2775:1;2768:8;;;2560:224;;;;;:::o;12331:99::-;12388:17;;;;;;;;;;;:26;;:34;12415:6;12388:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12331:99;:::o;8421:323::-;8516:7;8574;;8563;:18;;8541:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8662:19;8684:10;:8;:10::i;:::-;8662:32;;8712:24;8724:11;8712:7;:11;;:24;;;;:::i;:::-;8705:31;;;8421:323;;;:::o;11839:483::-;6127:4;6118:6;;:13;;;;;;;;;;;;;;;;;;11917:21:::1;11955:1;11941:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11917:40;;11986:4;11968;11973:1;11968:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12012:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12002:4;12007:1;12002:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12045:62;12062:4;12077:15;;;;;;;;;;;12095:11;12045:8;:62::i;:::-;12118:15;;;;;;;;;;;:66;;;12199:11;12225:1;12241:4;12268;12288:15;12118:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11906:416;6163:5:::0;6154:6;;:14;;;;;;;;;;;;;;;;;;11839:483;:::o;13038:282::-;13194:7;13189:28;;13203:14;:12;:14::i;:::-;13189:28;13228:44;13246:6;13254:9;13265:6;13228:17;:44::i;:::-;13288:7;13283:29;;13297:15;:13;:15::i;:::-;13283:29;13038:282;;;;:::o;16007:164::-;16049:7;16070:15;16087;16106:19;:17;:19::i;:::-;16069:56;;;;16143:20;16155:7;16143;:11;;:20;;;;:::i;:::-;16136:27;;;;16007:164;:::o;3048:132::-;3106:7;3133:39;3137:1;3140;3133:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3126:46;;3048:132;;;;:::o;8753:221::-;8813:1;8800:9;;:14;:30;;;;;8829:1;8818:7;;:12;8800:30;8832:7;8796:43;8872:9;;8852:17;:29;;;;8910:7;;8892:15;:25;;;;8943:1;8931:9;:13;;;;8965:1;8955:7;:11;;;;8753:221;:::o;13329:610::-;13476:15;13506:23;13544:12;13571:23;13609:12;13636:13;13663:19;13674:7;13663:10;:19::i;:::-;13461:221;;;;;;;;;;;;13711:28;13731:7;13711;:15;13719:6;13711:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13693:7;:15;13701:6;13693:15;;;;;;;;;;;;;;;:46;;;;13771:39;13794:15;13771:7;:18;13779:9;13771:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13750:7;:18;13758:9;13750:18;;;;;;;;;;;;;;;:60;;;;13821:16;13831:5;13821:9;:16::i;:::-;13848:23;13860:4;13866;13848:11;:23::i;:::-;13904:9;13887:44;;13896:6;13887:44;;;13915:15;13887:44;;;;;;:::i;:::-;;;;;;;;13450:489;;;;;;13329:610;;;:::o;8983:117::-;9039:17;;9027:9;:29;;;;9077:15;;9067:7;:25;;;;8983:117::o;16180:257::-;16231:7;16240;16260:15;16278:7;;16260:25;;16296:15;4867;16296:25;;16346:20;4867:15;16346:7;;:11;;:20;;;;:::i;:::-;16336:7;:30;16332:61;;;16376:7;;4867:15;16368:25;;;;;;;;16332:61;16412:7;16421;16404:25;;;;;;16180:257;;;:::o;3189:223::-;3309:7;3341:1;3337;:5;3344:12;3329:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3368:9;3384:1;3380;:5;;;;:::i;:::-;3368:17;;3403:1;3396:8;;;3189:223;;;;;:::o;14362:615::-;14462:7;14484;14506;14528;14550;14572;14608:23;14633:12;14647:13;14677:40;14689:7;14698:9;;14709:7;;14677:11;:40::i;:::-;14607:110;;;;;;14728:19;14750:10;:8;:10::i;:::-;14728:32;;14772:15;14789:23;14814:12;14843:46;14855:7;14864:4;14870:5;14877:11;14843;:46::i;:::-;14771:118;;;;;;14908:7;14917:15;14934:4;14940:15;14957:4;14963:5;14900:69;;;;;;;;;;;;;;;;;;;14362:615;;;;;;;:::o;2415:136::-;2473:7;2500:43;2504:1;2507;2500:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2493:50;;2415:136;;;;:::o;2227:179::-;2285:7;2305:9;2321:1;2317;:5;;;;:::i;:::-;2305:17;;2346:1;2341;:6;;2333:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2397:1;2390:8;;;2227:179;;;;:::o;13948:211::-;14001:19;14023:10;:8;:10::i;:::-;14001:32;;14044:13;14060:22;14070:11;14060:5;:9;;:22;;;;:::i;:::-;14044:38;;14118:33;14145:5;14118:7;:22;14134:4;14118:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14093:7;:22;14109:4;14093:22;;;;;;;;;;;;;;;:58;;;;13990:169;;13948:211;:::o;14168:147::-;14246:17;14258:4;14246:7;;:11;;:17;;;;:::i;:::-;14236:7;:27;;;;14287:20;14302:4;14287:10;;:14;;:20;;;;:::i;:::-;14274:10;:33;;;;14168:147;;:::o;14986:469::-;15155:7;15177;15199;15234:12;15249:30;15275:3;15249:21;15261:8;15249:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15234:45;;15290:13;15306:28;15330:3;15306:19;15318:6;15306:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15290:44;;15345:23;15371:28;15393:5;15371:17;15383:4;15371:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15345:54;;15418:15;15435:4;15441:5;15410:37;;;;;;;;;14986:469;;;;;;;:::o;15464:534::-;15658:7;15680;15702;15737:15;15755:24;15767:11;15755:7;:11;;:24;;;;:::i;:::-;15737:42;;15790:12;15805:21;15814:11;15805:4;:8;;:21;;;;:::i;:::-;15790:36;;15837:13;15853:22;15863:11;15853:5;:9;;:22;;;;:::i;:::-;15837:38;;15886:23;15912:28;15934:5;15912:17;15924:4;15912:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15886:54;;15959:7;15968:15;15985:4;15951:39;;;;;;;;;;15464:534;;;;;;;;:::o;2793:246::-;2851:7;2880:1;2875;:6;2871:47;;2905:1;2898:8;;;;2871:47;2928:9;2944:1;2940;:5;;;;:::i;:::-;2928:17;;2973:1;2968;2964;:5;;;;:::i;:::-;:10;2956:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3030:1;3023:8;;;2793:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:116::-;6248:21;6263:5;6248:21;:::i;:::-;6241:5;6238:32;6228:60;;6284:1;6281;6274:12;6228:60;6178:116;:::o;6300:133::-;6343:5;6381:6;6368:20;6359:29;;6397:30;6421:5;6397:30;:::i;:::-;6300:133;;;;:::o;6439:323::-;6495:6;6544:2;6532:9;6523:7;6519:23;6515:32;6512:119;;;6550:79;;:::i;:::-;6512:119;6670:1;6695:50;6737:7;6728:6;6717:9;6713:22;6695:50;:::i;:::-;6685:60;;6641:114;6439:323;;;;:::o;6768:329::-;6827:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:119;;;6882:79;;:::i;:::-;6844:119;7002:1;7027:53;7072:7;7063:6;7052:9;7048:22;7027:53;:::i;:::-;7017:63;;6973:117;6768:329;;;;:::o;7103:::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:765::-;7524:6;7532;7540;7548;7597:3;7585:9;7576:7;7572:23;7568:33;7565:120;;;7604:79;;:::i;:::-;7565:120;7724:1;7749:53;7794:7;7785:6;7774:9;7770:22;7749:53;:::i;:::-;7739:63;;7695:117;7851:2;7877:53;7922:7;7913:6;7902:9;7898:22;7877:53;:::i;:::-;7867:63;;7822:118;7979:2;8005:53;8050:7;8041:6;8030:9;8026:22;8005:53;:::i;:::-;7995:63;;7950:118;8107:2;8133:53;8178:7;8169:6;8158:9;8154:22;8133:53;:::i;:::-;8123:63;;8078:118;7438:765;;;;;;;:::o;8209:117::-;8318:1;8315;8308:12;8332:117;8441:1;8438;8431:12;8455:117;8564:1;8561;8554:12;8595:568;8668:8;8678:6;8728:3;8721:4;8713:6;8709:17;8705:27;8695:122;;8736:79;;:::i;:::-;8695:122;8849:6;8836:20;8826:30;;8879:18;8871:6;8868:30;8865:117;;;8901:79;;:::i;:::-;8865:117;9015:4;9007:6;9003:17;8991:29;;9069:3;9061:4;9053:6;9049:17;9039:8;9035:32;9032:41;9029:128;;;9076:79;;:::i;:::-;9029:128;8595:568;;;;;:::o;9169:698::-;9261:6;9269;9277;9326:2;9314:9;9305:7;9301:23;9297:32;9294:119;;;9332:79;;:::i;:::-;9294:119;9480:1;9469:9;9465:17;9452:31;9510:18;9502:6;9499:30;9496:117;;;9532:79;;:::i;:::-;9496:117;9645:80;9717:7;9708:6;9697:9;9693:22;9645:80;:::i;:::-;9627:98;;;;9423:312;9774:2;9800:50;9842:7;9833:6;9822:9;9818:22;9800:50;:::i;:::-;9790:60;;9745:115;9169:698;;;;;:::o;9873:474::-;9941:6;9949;9998:2;9986:9;9977:7;9973:23;9969:32;9966:119;;;10004:79;;:::i;:::-;9966:119;10124:1;10149:53;10194:7;10185:6;10174:9;10170:22;10149:53;:::i;:::-;10139:63;;10095:117;10251:2;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10222:118;9873:474;;;;;:::o;10353:182::-;10493:34;10489:1;10481:6;10477:14;10470:58;10353:182;:::o;10541:366::-;10683:3;10704:67;10768:2;10763:3;10704:67;:::i;:::-;10697:74;;10780:93;10869:3;10780:93;:::i;:::-;10898:2;10893:3;10889:12;10882:19;;10541:366;;;:::o;10913:419::-;11079:4;11117:2;11106:9;11102:18;11094:26;;11166:9;11160:4;11156:20;11152:1;11141:9;11137:17;11130:47;11194:131;11320:4;11194:131;:::i;:::-;11186:139;;10913:419;;;:::o;11338:180::-;11386:77;11383:1;11376:88;11483:4;11480:1;11473:15;11507:4;11504:1;11497:15;11524:410;11564:7;11587:20;11605:1;11587:20;:::i;:::-;11582:25;;11621:20;11639:1;11621:20;:::i;:::-;11616:25;;11676:1;11673;11669:9;11698:30;11716:11;11698:30;:::i;:::-;11687:41;;11877:1;11868:7;11864:15;11861:1;11858:22;11838:1;11831:9;11811:83;11788:139;;11907:18;;:::i;:::-;11788:139;11572:362;11524:410;;;;:::o;11940:180::-;11988:77;11985:1;11978:88;12085:4;12082:1;12075:15;12109:4;12106:1;12099:15;12126:185;12166:1;12183:20;12201:1;12183:20;:::i;:::-;12178:25;;12217:20;12235:1;12217:20;:::i;:::-;12212:25;;12256:1;12246:35;;12261:18;;:::i;:::-;12246:35;12303:1;12300;12296:9;12291:14;;12126:185;;;;:::o;12317:232::-;12457:34;12453:1;12445:6;12441:14;12434:58;12526:15;12521:2;12513:6;12509:15;12502:40;12317:232;:::o;12555:366::-;12697:3;12718:67;12782:2;12777:3;12718:67;:::i;:::-;12711:74;;12794:93;12883:3;12794:93;:::i;:::-;12912:2;12907:3;12903:12;12896:19;;12555:366;;;:::o;12927:419::-;13093:4;13131:2;13120:9;13116:18;13108:26;;13180:9;13174:4;13170:20;13166:1;13155:9;13151:17;13144:47;13208:131;13334:4;13208:131;:::i;:::-;13200:139;;12927:419;;;:::o;13352:172::-;13492:24;13488:1;13480:6;13476:14;13469:48;13352:172;:::o;13530:366::-;13672:3;13693:67;13757:2;13752:3;13693:67;:::i;:::-;13686:74;;13769:93;13858:3;13769:93;:::i;:::-;13887:2;13882:3;13878:12;13871:19;;13530:366;;;:::o;13902:419::-;14068:4;14106:2;14095:9;14091:18;14083:26;;14155:9;14149:4;14145:20;14141:1;14130:9;14126:17;14119:47;14183:131;14309:4;14183:131;:::i;:::-;14175:139;;13902:419;;;:::o;14327:220::-;14467:34;14463:1;14455:6;14451:14;14444:58;14536:3;14531:2;14523:6;14519:15;14512:28;14327:220;:::o;14553:366::-;14695:3;14716:67;14780:2;14775:3;14716:67;:::i;:::-;14709:74;;14792:93;14881:3;14792:93;:::i;:::-;14910:2;14905:3;14901:12;14894:19;;14553:366;;;:::o;14925:419::-;15091:4;15129:2;15118:9;15114:18;15106:26;;15178:9;15172:4;15168:20;15164:1;15153:9;15149:17;15142:47;15206:131;15332:4;15206:131;:::i;:::-;15198:139;;14925:419;;;:::o;15350:173::-;15490:25;15486:1;15478:6;15474:14;15467:49;15350:173;:::o;15529:366::-;15671:3;15692:67;15756:2;15751:3;15692:67;:::i;:::-;15685:74;;15768:93;15857:3;15768:93;:::i;:::-;15886:2;15881:3;15877:12;15870:19;;15529:366;;;:::o;15901:419::-;16067:4;16105:2;16094:9;16090:18;16082:26;;16154:9;16148:4;16144:20;16140:1;16129:9;16125:17;16118:47;16182:131;16308:4;16182:131;:::i;:::-;16174:139;;15901:419;;;:::o;16326:221::-;16466:34;16462:1;16454:6;16450:14;16443:58;16535:4;16530:2;16522:6;16518:15;16511:29;16326:221;:::o;16553:366::-;16695:3;16716:67;16780:2;16775:3;16716:67;:::i;:::-;16709:74;;16792:93;16881:3;16792:93;:::i;:::-;16910:2;16905:3;16901:12;16894:19;;16553:366;;;:::o;16925:419::-;17091:4;17129:2;17118:9;17114:18;17106:26;;17178:9;17172:4;17168:20;17164:1;17153:9;17149:17;17142:47;17206:131;17332:4;17206:131;:::i;:::-;17198:139;;16925:419;;;:::o;17350:180::-;17398:77;17395:1;17388:88;17495:4;17492:1;17485:15;17519:4;17516:1;17509:15;17536:233;17575:3;17598:24;17616:5;17598:24;:::i;:::-;17589:33;;17644:66;17637:5;17634:77;17631:103;;17714:18;;:::i;:::-;17631:103;17761:1;17754:5;17750:13;17743:20;;17536:233;;;:::o;17775:227::-;17915:34;17911:1;17903:6;17899:14;17892:58;17984:10;17979:2;17971:6;17967:15;17960:35;17775:227;:::o;18008:366::-;18150:3;18171:67;18235:2;18230:3;18171:67;:::i;:::-;18164:74;;18247:93;18336:3;18247:93;:::i;:::-;18365:2;18360:3;18356:12;18349:19;;18008:366;;;:::o;18380:419::-;18546:4;18584:2;18573:9;18569:18;18561:26;;18633:9;18627:4;18623:20;18619:1;18608:9;18604:17;18597:47;18661:131;18787:4;18661:131;:::i;:::-;18653:139;;18380:419;;;:::o;18805:225::-;18945:34;18941:1;18933:6;18929:14;18922:58;19014:8;19009:2;19001:6;18997:15;18990:33;18805:225;:::o;19036:366::-;19178:3;19199:67;19263:2;19258:3;19199:67;:::i;:::-;19192:74;;19275:93;19364:3;19275:93;:::i;:::-;19393:2;19388:3;19384:12;19377:19;;19036:366;;;:::o;19408:419::-;19574:4;19612:2;19601:9;19597:18;19589:26;;19661:9;19655:4;19651:20;19647:1;19636:9;19632:17;19625:47;19689:131;19815:4;19689:131;:::i;:::-;19681:139;;19408:419;;;:::o;19833:223::-;19973:34;19969:1;19961:6;19957:14;19950:58;20042:6;20037:2;20029:6;20025:15;20018:31;19833:223;:::o;20062:366::-;20204:3;20225:67;20289:2;20284:3;20225:67;:::i;:::-;20218:74;;20301:93;20390:3;20301:93;:::i;:::-;20419:2;20414:3;20410:12;20403:19;;20062:366;;;:::o;20434:419::-;20600:4;20638:2;20627:9;20623:18;20615:26;;20687:9;20681:4;20677:20;20673:1;20662:9;20658:17;20651:47;20715:131;20841:4;20715:131;:::i;:::-;20707:139;;20434:419;;;:::o;20859:221::-;20999:34;20995:1;20987:6;20983:14;20976:58;21068:4;21063:2;21055:6;21051:15;21044:29;20859:221;:::o;21086:366::-;21228:3;21249:67;21313:2;21308:3;21249:67;:::i;:::-;21242:74;;21325:93;21414:3;21325:93;:::i;:::-;21443:2;21438:3;21434:12;21427:19;;21086:366;;;:::o;21458:419::-;21624:4;21662:2;21651:9;21647:18;21639:26;;21711:9;21705:4;21701:20;21697:1;21686:9;21682:17;21675:47;21739:131;21865:4;21739:131;:::i;:::-;21731:139;;21458:419;;;:::o;21883:224::-;22023:34;22019:1;22011:6;22007:14;22000:58;22092:7;22087:2;22079:6;22075:15;22068:32;21883:224;:::o;22113:366::-;22255:3;22276:67;22340:2;22335:3;22276:67;:::i;:::-;22269:74;;22352:93;22441:3;22352:93;:::i;:::-;22470:2;22465:3;22461:12;22454:19;;22113:366;;;:::o;22485:419::-;22651:4;22689:2;22678:9;22674:18;22666:26;;22738:9;22732:4;22728:20;22724:1;22713:9;22709:17;22702:47;22766:131;22892:4;22766:131;:::i;:::-;22758:139;;22485:419;;;:::o;22910:222::-;23050:34;23046:1;23038:6;23034:14;23027:58;23119:5;23114:2;23106:6;23102:15;23095:30;22910:222;:::o;23138:366::-;23280:3;23301:67;23365:2;23360:3;23301:67;:::i;:::-;23294:74;;23377:93;23466:3;23377:93;:::i;:::-;23495:2;23490:3;23486:12;23479:19;;23138:366;;;:::o;23510:419::-;23676:4;23714:2;23703:9;23699:18;23691:26;;23763:9;23757:4;23753:20;23749:1;23738:9;23734:17;23727:47;23791:131;23917:4;23791:131;:::i;:::-;23783:139;;23510:419;;;:::o;23935:228::-;24075:34;24071:1;24063:6;24059:14;24052:58;24144:11;24139:2;24131:6;24127:15;24120:36;23935:228;:::o;24169:366::-;24311:3;24332:67;24396:2;24391:3;24332:67;:::i;:::-;24325:74;;24408:93;24497:3;24408:93;:::i;:::-;24526:2;24521:3;24517:12;24510:19;;24169:366;;;:::o;24541:419::-;24707:4;24745:2;24734:9;24730:18;24722:26;;24794:9;24788:4;24784:20;24780:1;24769:9;24765:17;24758:47;24822:131;24948:4;24822:131;:::i;:::-;24814:139;;24541:419;;;:::o;24966:250::-;25106:34;25102:1;25094:6;25090:14;25083:58;25175:33;25170:2;25162:6;25158:15;25151:58;24966:250;:::o;25222:366::-;25364:3;25385:67;25449:2;25444:3;25385:67;:::i;:::-;25378:74;;25461:93;25550:3;25461:93;:::i;:::-;25579:2;25574:3;25570:12;25563:19;;25222:366;;;:::o;25594:419::-;25760:4;25798:2;25787:9;25783:18;25775:26;;25847:9;25841:4;25837:20;25833:1;25822:9;25818:17;25811:47;25875:131;26001:4;25875:131;:::i;:::-;25867:139;;25594:419;;;:::o;26019:178::-;26159:30;26155:1;26147:6;26143:14;26136:54;26019:178;:::o;26203:366::-;26345:3;26366:67;26430:2;26425:3;26366:67;:::i;:::-;26359:74;;26442:93;26531:3;26442:93;:::i;:::-;26560:2;26555:3;26551:12;26544:19;;26203:366;;;:::o;26575:419::-;26741:4;26779:2;26768:9;26764:18;26756:26;;26828:9;26822:4;26818:20;26814:1;26803:9;26799:17;26792:47;26856:131;26982:4;26856:131;:::i;:::-;26848:139;;26575:419;;;:::o;27000:222::-;27140:34;27136:1;27128:6;27124:14;27117:58;27209:5;27204:2;27196:6;27192:15;27185:30;27000:222;:::o;27228:366::-;27370:3;27391:67;27455:2;27450:3;27391:67;:::i;:::-;27384:74;;27467:93;27556:3;27467:93;:::i;:::-;27585:2;27580:3;27576:12;27569:19;;27228:366;;;:::o;27600:419::-;27766:4;27804:2;27793:9;27789:18;27781:26;;27853:9;27847:4;27843:20;27839:1;27828:9;27824:17;27817:47;27881:131;28007:4;27881:131;:::i;:::-;27873:139;;27600:419;;;:::o;28025:191::-;28065:3;28084:20;28102:1;28084:20;:::i;:::-;28079:25;;28118:20;28136:1;28118:20;:::i;:::-;28113:25;;28161:1;28158;28154:9;28147:16;;28182:3;28179:1;28176:10;28173:36;;;28189:18;;:::i;:::-;28173:36;28025:191;;;;:::o;28222:222::-;28362:34;28358:1;28350:6;28346:14;28339:58;28431:5;28426:2;28418:6;28414:15;28407:30;28222:222;:::o;28450:366::-;28592:3;28613:67;28677:2;28672:3;28613:67;:::i;:::-;28606:74;;28689:93;28778:3;28689:93;:::i;:::-;28807:2;28802:3;28798:12;28791:19;;28450:366;;;:::o;28822:419::-;28988:4;29026:2;29015:9;29011:18;29003:26;;29075:9;29069:4;29065:20;29061:1;29050:9;29046:17;29039:47;29103:131;29229:4;29103:131;:::i;:::-;29095:139;;28822:419;;;:::o;29247:194::-;29287:4;29307:20;29325:1;29307:20;:::i;:::-;29302:25;;29341:20;29359:1;29341:20;:::i;:::-;29336:25;;29385:1;29382;29378:9;29370:17;;29409:1;29403:4;29400:11;29397:37;;;29414:18;;:::i;:::-;29397:37;29247:194;;;;:::o;29447:229::-;29587:34;29583:1;29575:6;29571:14;29564:58;29656:12;29651:2;29643:6;29639:15;29632:37;29447:229;:::o;29682:366::-;29824:3;29845:67;29909:2;29904:3;29845:67;:::i;:::-;29838:74;;29921:93;30010:3;29921:93;:::i;:::-;30039:2;30034:3;30030:12;30023:19;;29682:366;;;:::o;30054:419::-;30220:4;30258:2;30247:9;30243:18;30235:26;;30307:9;30301:4;30297:20;30293:1;30282:9;30278:17;30271:47;30335:131;30461:4;30335:131;:::i;:::-;30327:139;;30054:419;;;:::o;30479:180::-;30527:77;30524:1;30517:88;30624:4;30621:1;30614:15;30648:4;30645:1;30638:15;30665:143;30722:5;30753:6;30747:13;30738:22;;30769:33;30796:5;30769:33;:::i;:::-;30665:143;;;;:::o;30814:351::-;30884:6;30933:2;30921:9;30912:7;30908:23;30904:32;30901:119;;;30939:79;;:::i;:::-;30901:119;31059:1;31084:64;31140:7;31131:6;31120:9;31116:22;31084:64;:::i;:::-;31074:74;;31030:128;30814:351;;;;:::o;31171:85::-;31216:7;31245:5;31234:16;;31171:85;;;:::o;31262:158::-;31320:9;31353:61;31371:42;31380:32;31406:5;31380:32;:::i;:::-;31371:42;:::i;:::-;31353:61;:::i;:::-;31340:74;;31262:158;;;:::o;31426:147::-;31521:45;31560:5;31521:45;:::i;:::-;31516:3;31509:58;31426:147;;:::o;31579:114::-;31646:6;31680:5;31674:12;31664:22;;31579:114;;;:::o;31699:184::-;31798:11;31832:6;31827:3;31820:19;31872:4;31867:3;31863:14;31848:29;;31699:184;;;;:::o;31889:132::-;31956:4;31979:3;31971:11;;32009:4;32004:3;32000:14;31992:22;;31889:132;;;:::o;32027:108::-;32104:24;32122:5;32104:24;:::i;:::-;32099:3;32092:37;32027:108;;:::o;32141:179::-;32210:10;32231:46;32273:3;32265:6;32231:46;:::i;:::-;32309:4;32304:3;32300:14;32286:28;;32141:179;;;;:::o;32326:113::-;32396:4;32428;32423:3;32419:14;32411:22;;32326:113;;;:::o;32475:732::-;32594:3;32623:54;32671:5;32623:54;:::i;:::-;32693:86;32772:6;32767:3;32693:86;:::i;:::-;32686:93;;32803:56;32853:5;32803:56;:::i;:::-;32882:7;32913:1;32898:284;32923:6;32920:1;32917:13;32898:284;;;32999:6;32993:13;33026:63;33085:3;33070:13;33026:63;:::i;:::-;33019:70;;33112:60;33165:6;33112:60;:::i;:::-;33102:70;;32958:224;32945:1;32942;32938:9;32933:14;;32898:284;;;32902:14;33198:3;33191:10;;32599:608;;;32475:732;;;;:::o;33213:831::-;33476:4;33514:3;33503:9;33499:19;33491:27;;33528:71;33596:1;33585:9;33581:17;33572:6;33528:71;:::i;:::-;33609:80;33685:2;33674:9;33670:18;33661:6;33609:80;:::i;:::-;33736:9;33730:4;33726:20;33721:2;33710:9;33706:18;33699:48;33764:108;33867:4;33858:6;33764:108;:::i;:::-;33756:116;;33882:72;33950:2;33939:9;33935:18;33926:6;33882:72;:::i;:::-;33964:73;34032:3;34021:9;34017:19;34008:6;33964:73;:::i;:::-;33213:831;;;;;;;;:::o;34050:177::-;34190:29;34186:1;34178:6;34174:14;34167:53;34050:177;:::o;34233:366::-;34375:3;34396:67;34460:2;34455:3;34396:67;:::i;:::-;34389:74;;34472:93;34561:3;34472:93;:::i;:::-;34590:2;34585:3;34581:12;34574:19;;34233:366;;;:::o;34605:419::-;34771:4;34809:2;34798:9;34794:18;34786:26;;34858:9;34852:4;34848:20;34844:1;34833:9;34829:17;34822:47;34886:131;35012:4;34886:131;:::i;:::-;34878:139;;34605:419;;;:::o;35030:220::-;35170:34;35166:1;35158:6;35154:14;35147:58;35239:3;35234:2;35226:6;35222:15;35215:28;35030:220;:::o;35256:366::-;35398:3;35419:67;35483:2;35478:3;35419:67;:::i;:::-;35412:74;;35495:93;35584:3;35495:93;:::i;:::-;35613:2;35608:3;35604:12;35597:19;;35256:366;;;:::o;35628:419::-;35794:4;35832:2;35821:9;35817:18;35809:26;;35881:9;35875:4;35871:20;35867:1;35856:9;35852:17;35845:47;35909:131;36035:4;35909:131;:::i;:::-;35901:139;;35628:419;;;:::o

Swarm Source

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