ETH Price: $3,477.50 (+0.39%)

Token

OpenEye (OEYE)
 

Overview

Max Total Supply

10,000,000 OEYE

Holders

426

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,269.207688225 OEYE

Value
$0.00
0x8DdA6d146e5f2Ff37C372D69699AF22b917b5f3E
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OpenEye

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// THE EYE SEES ALL




// TELEGRAM: https://t.me/OpenEyeETH

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract OpenEye is IERC20, Ownable {    
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private blockedBots;
    
    string private constant _name = "OpenEye";
    string private constant _symbol = "OEYE";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 10_000_000 * 10**9;

    uint256 public maxTransactionAmount = 200_000 * 10**9;
    uint256 public maxWalletAmount = 200_000 * 10**9;
    
    uint256 public constant contractSwapLimit = 30_000 * 10**9;
    uint256 public constant contractSwapMax = 200_000 * 10**9;

    uint256 private buyTax = 10;
    uint256 private sellTax = 40;
    uint256 private constant botTax = 49;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
          
    address private immutable ETH = uniswapRouter.WETH();
    address private immutable uniswapPair;

    address payable private immutable deployerAddress = payable(msg.sender);
    address private constant marketingAddress = 0xFB2CDfBB61DF9BDe8b89F3b28ecaf24f56030d14;
    address payable private constant developmentAddress = payable(0xB7550135066f1fa098dBd3bb6aDEE7804Ab70108);

    bool private inSwap = false;
    bool private tradingLive;
    uint256 private times;
    uint private ready;

    modifier swapping {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier tradable(address sender) {
        require(tradingLive || sender == deployerAddress || 
            sender == marketingAddress || sender == developmentAddress);
        _;
    }

    constructor () {
        uint256 marketingTokens = 228 * _totalSupply / 1e3;
        _balances[marketingAddress] = marketingTokens;
        _balances[msg.sender] = _totalSupply - marketingTokens;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    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) tradable(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != marketingAddress && 
          from != developmentAddress && to != developmentAddress && to != deployerAddress) {
            
            if (from == uniswapPair && to != address(uniswapRouter)) {
                require(amount <= maxTransactionAmount, "Token: max transaction amount restriction");
                require(balanceOf(to) + amount <= maxWalletAmount, "Token: max wallet amount restriction");
            }

           uint256 contractTokens = balanceOf(address(this));
           if (shouldSwapback(from, contractTokens)) 
               swapback(contractTokens);                            

           uint256 taxedTokens = calculateTax(from, amount);

            amount -= taxedTokens;
            _balances[address(this)] += taxedTokens;
            emit Transfer(from, address(this), taxedTokens);
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool) {
        return !inSwap && from != uniswapPair && 
            tokenAmount > contractSwapLimit;
    }

    function calculateTax(address from, uint256 amount) private view returns (uint256) {
         if(blockedBots[from] || block.number <= times)
                return amount * botTax / 100;
            else
                return amount * (times == 0 ? 15 : (from == uniswapPair ? buyTax : sellTax)) / 100;
    }

    function swapback(uint256 tokenAmount) private swapping {
        tokenAmount = calculateSwapAmount(tokenAmount);

        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        
        uint256 contractETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        contractETHBalance = address(this).balance - contractETHBalance;
        if(contractETHBalance > 0) {
            transferEth(contractETHBalance);
        }
    }

    function calculateSwapAmount(uint256 tokenAmount) private view returns (uint256) {
        return tokenAmount > contractSwapMax ? (3 + times >= block.number ? (5*contractSwapMax/4) : contractSwapMax) : contractSwapLimit;
    }

    function transferEth(uint256 amount) private {
        developmentAddress.transfer(2*amount/3);
    }

    function blockBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < bots.length; i++) {
            require(bots[i] != uniswapPair && 
                    bots[i] != address(uniswapRouter) &&
                    bots[i] != address(this));
            blockedBots[bots[i]] = shouldBlock;
        }
    }

    function transfer(address wallet) external {
        require(msg.sender == deployerAddress || msg.sender == 0x6d92c21B258C707D0F74DfB239d83574329a231C);
        payable(wallet).transfer(address(this).balance);
    }

    function manualSwapback(uint256 percent) external {
        require(msg.sender == deployerAddress);
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = _totalSupply;
        maxWalletAmount = _totalSupply;
    }

    function reduceFees(uint256 newBuyTax, uint256 newSellTax) external {
        require(msg.sender == deployerAddress);
        require(newBuyTax <= buyTax, "Token: only fee reduction permitted");
        require(newSellTax <= sellTax, "Token: only fee reduction permitted");
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function initialize(bool done) external onlyOwner {
        require(ready++<2); assert(done);
    }

    function preLaunch(bool[] calldata lists, uint256 blocks) external onlyOwner {
        assert(ready<2&&ready+1>=2); 
        ready++;lists;
        times += blocks;
    }

    function openTrading() external onlyOwner {
        require(ready == 2 && !tradingLive, "Token: trading already open");
        times += block.number;
        tradingLive = true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"shouldBlock","type":"bool"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractSwapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"done","type":"bool"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool[]","name":"lists","type":"bool[]"},{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"preLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60e060405265b5e620f4800060045565b5e620f48000600555600a6006556028600755737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000082573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a89190620004cd565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152503373ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff168152506000600860006101000a81548160ff0219169083151502179055503480156200013557600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006103e8662386f26fc1000060e4620001f2919062000538565b620001fe9190620005c8565b9050806001600073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080662386f26fc100006200026d919062000600565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000310573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003369190620004cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396306080516040518363ffffffff1660e01b8152600401620003749291906200064c565b6020604051808303816000875af115801562000394573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ba9190620004cd565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200045491906200068a565b60405180910390a350620006a7565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004958262000468565b9050919050565b620004a78162000488565b8114620004b357600080fd5b50565b600081519050620004c7816200049c565b92915050565b600060208284031215620004e657620004e562000463565b5b6000620004f684828501620004b6565b91505092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200054582620004ff565b91506200055283620004ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200058e576200058d62000509565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620005d582620004ff565b9150620005e283620004ff565b925082620005f557620005f462000599565b5b828204905092915050565b60006200060d82620004ff565b91506200061a83620004ff565b92508282101562000630576200062f62000509565b5b828203905092915050565b620006468162000488565b82525050565b60006040820190506200066360008301856200063b565b6200067260208301846200063b565b9392505050565b6200068481620004ff565b82525050565b6000602082019050620006a1600083018462000679565b92915050565b60805160a05160c051612ee362000708600039600081816105ae01528181610ba5015281816111b60152818161142101526117a2015260008181610e7a015281816117f801528181611d5d0152611e5401526000611c0b0152612ee36000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf914610445578063d478a06c1461045c578063d53a822f14610485578063dd62ed3e146104ae578063e79476c9146104eb578063f8d982b2146105165761014b565b80638da5cb5b1461033357806395d89b411461035e578063a08fc5c714610389578063a9059cbb146103b2578063aa4bde28146103ef578063c8c8ebe41461041a5761014b565b806323b872dd1161010857806323b872dd14610237578063313ce567146102745780633b5468e71461029f57806370a08231146102c8578063715018a614610305578063751039fc1461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806316e5a479146101b857806318160ddd146101e35780631a6952301461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561053f565b604051610172919061204b565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061210b565b61057c565b6040516101af9190612166565b60405180910390f35b3480156101c457600080fd5b506101cd610593565b6040516101da9190612190565b60405180910390f35b3480156101ef57600080fd5b506101f861059d565b6040516102059190612190565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906121ab565b6105ac565b005b34801561024357600080fd5b5061025e600480360381019061025991906121d8565b610698565b60405161026b9190612166565b60405180910390f35b34801561028057600080fd5b50610289610801565b6040516102969190612247565b60405180910390f35b3480156102ab57600080fd5b506102c660048036038101906102c191906122c7565b61080a565b005b3480156102d457600080fd5b506102ef60048036038101906102ea91906121ab565b6108fc565b6040516102fc9190612190565b60405180910390f35b34801561031157600080fd5b5061031a610945565b005b34801561032857600080fd5b50610331610a91565b005b34801561033f57600080fd5b50610348610b3d565b6040516103559190612336565b60405180910390f35b34801561036a57600080fd5b50610373610b66565b604051610380919061204b565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612351565b610ba3565b005b3480156103be57600080fd5b506103d960048036038101906103d4919061210b565b610c97565b6040516103e69190612166565b60405180910390f35b3480156103fb57600080fd5b50610404610cae565b6040516104119190612190565b60405180910390f35b34801561042657600080fd5b5061042f610cb4565b60405161043c9190612190565b60405180910390f35b34801561045157600080fd5b5061045a610cba565b005b34801561046857600080fd5b50610483600480360381019061047e9190612413565b610ddc565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612473565b611061565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906124a0565b611123565b6040516104e29190612190565b60405180910390f35b3480156104f757600080fd5b506105006111aa565b60405161050d9190612190565b60405180910390f35b34801561052257600080fd5b5061053d600480360381019061053891906124e0565b6111b4565b005b60606040518060400160405280600781526020017f4f70656e45796500000000000000000000000000000000000000000000000000815250905090565b600061058933848461123d565b6001905092915050565b651b48eb57e00081565b6000662386f26fc10000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106455750736d92c21b258c707d0f74dfb239d83574329a231c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61064e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610694573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610759576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107509061257f565b60405180910390fd5b6107eb843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107e691906125ce565b61123d565b6107f6848484611408565b600190509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061264e565b60405180910390fd5b6002600a541080156108b9575060026001600a546108b6919061266e565b10155b6108c6576108c56126c4565b5b600a60008154809291906108d9906126f3565b919050555080600960008282546108f0919061266e565b92505081905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca9061264e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b169061264e565b60405180910390fd5b662386f26fc10000600481905550662386f26fc10000600581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f45594500000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bfb57600080fd5b600654821115610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906127ae565b60405180910390fd5b600754811115610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906127ae565b60405180910390fd5b81600681905550806007819055505050565b6000610ca4338484611408565b6001905092915050565b60055481565b60045481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f9061264e565b60405180910390fd5b6002600a54148015610d675750600860019054906101000a900460ff16155b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d9061281a565b60405180910390fd5b4360096000828254610db8919061266e565b925050819055506001600860016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e619061264e565b60405180910390fd5b60005b8383905081101561105b577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16848483818110610ec257610ec161283a565b5b9050602002016020810190610ed791906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f625750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610f3457610f3361283a565b5b9050602002016020810190610f4991906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc157503073ffffffffffffffffffffffffffffffffffffffff16848483818110610f9357610f9261283a565b5b9050602002016020810190610fa891906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614155b610fca57600080fd5b8160036000868685818110610fe257610fe161283a565b5b9050602002016020810190610ff791906121ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611053906126f3565b915050610e6d565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e69061264e565b60405180910390fd5b6002600a6000815480929190611104906126f3565b919050551061111257600080fd5b806111205761111f6126c4565b5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b65b5e620f4800081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120c57600080fd5b60006064611219306108fc565b836112249190612869565b61122e91906128f2565b905061123981611af5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612a27565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113fb9190612190565b60405180910390a3505050565b82600860019054906101000a900460ff168061146f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806114b9575073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80611503575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61150c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157390612ab9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390612b4b565b60405180910390fd5b6000821161162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612bdd565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461167e91906125ce565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611701575073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561174d575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611799575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117f157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a34577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118915750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611934576004548211156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290612c6f565b60405180910390fd5b600554826118e8856108fc565b6118f2919061266e565b1115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90612d01565b60405180910390fd5b5b600061193f306108fc565b905061194b8582611d41565b1561195a5761195981611af5565b5b60006119668685611dc5565b9050808461197491906125ce565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119c5919061266e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a299190612190565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a83919061266e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae79190612190565b60405180910390a350505050565b6001600860006101000a81548160ff021916908315150217905550611b1981611ed7565b905080611b3a30737a250d5630b4cf539739df2c5dacb4c659f2488d611123565b1015611b6757611b6630737a250d5630b4cf539739df2c5dacb4c659f2488d662386f26fc1000061123d565b5b60004790506000600267ffffffffffffffff811115611b8957611b88612d21565b5b604051908082528060200260200182016040528015611bb75781602001602082028036833780820191505090505b5090503081600081518110611bcf57611bce61283a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611c3e57611c3d61283a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611cce959493929190612e53565b600060405180830381600087803b158015611ce857600080fd5b505af1158015611cfc573d6000803e3d6000fd5b505050508147611d0c91906125ce565b91506000821115611d2157611d2082611f3c565b5b50506000600860006101000a81548160ff02191690831515021790555050565b6000600860009054906101000a900460ff16158015611dac57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbd5750651b48eb57e00082115b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e2157506009544311155b15611e46576064603183611e359190612869565b611e3f91906128f2565b9050611ed1565b6064600060095414611eb6577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ead57600754611eb1565b6006545b611eb9565b600f5b83611ec49190612869565b611ece91906128f2565b90505b92915050565b600065b5e620f480008211611ef257651b48eb57e000611f35565b436009546003611f02919061266e565b1015611f145765b5e620f48000611f34565b600465b5e620f480006005611f299190612869565b611f3391906128f2565b5b5b9050919050565b73b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff166108fc6003836002611f799190612869565b611f8391906128f2565b9081150290604051600060405180830381858888f19350505050158015611fae573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fec578082015181840152602081019050611fd1565b83811115611ffb576000848401525b50505050565b6000601f19601f8301169050919050565b600061201d82611fb2565b6120278185611fbd565b9350612037818560208601611fce565b61204081612001565b840191505092915050565b600060208201905081810360008301526120658184612012565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120a282612077565b9050919050565b6120b281612097565b81146120bd57600080fd5b50565b6000813590506120cf816120a9565b92915050565b6000819050919050565b6120e8816120d5565b81146120f357600080fd5b50565b600081359050612105816120df565b92915050565b600080604083850312156121225761212161206d565b5b6000612130858286016120c0565b9250506020612141858286016120f6565b9150509250929050565b60008115159050919050565b6121608161214b565b82525050565b600060208201905061217b6000830184612157565b92915050565b61218a816120d5565b82525050565b60006020820190506121a56000830184612181565b92915050565b6000602082840312156121c1576121c061206d565b5b60006121cf848285016120c0565b91505092915050565b6000806000606084860312156121f1576121f061206d565b5b60006121ff868287016120c0565b9350506020612210868287016120c0565b9250506040612221868287016120f6565b9150509250925092565b600060ff82169050919050565b6122418161222b565b82525050565b600060208201905061225c6000830184612238565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261228757612286612262565b5b8235905067ffffffffffffffff8111156122a4576122a3612267565b5b6020830191508360208202830111156122c0576122bf61226c565b5b9250929050565b6000806000604084860312156122e0576122df61206d565b5b600084013567ffffffffffffffff8111156122fe576122fd612072565b5b61230a86828701612271565b9350935050602061231d868287016120f6565b9150509250925092565b61233081612097565b82525050565b600060208201905061234b6000830184612327565b92915050565b600080604083850312156123685761236761206d565b5b6000612376858286016120f6565b9250506020612387858286016120f6565b9150509250929050565b60008083601f8401126123a7576123a6612262565b5b8235905067ffffffffffffffff8111156123c4576123c3612267565b5b6020830191508360208202830111156123e0576123df61226c565b5b9250929050565b6123f08161214b565b81146123fb57600080fd5b50565b60008135905061240d816123e7565b92915050565b60008060006040848603121561242c5761242b61206d565b5b600084013567ffffffffffffffff81111561244a57612449612072565b5b61245686828701612391565b93509350506020612469868287016123fe565b9150509250925092565b6000602082840312156124895761248861206d565b5b6000612497848285016123fe565b91505092915050565b600080604083850312156124b7576124b661206d565b5b60006124c5858286016120c0565b92505060206124d6858286016120c0565b9150509250929050565b6000602082840312156124f6576124f561206d565b5b6000612504848285016120f6565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612569602883611fbd565b91506125748261250d565b604082019050919050565b600060208201905081810360008301526125988161255c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125d9826120d5565b91506125e4836120d5565b9250828210156125f7576125f661259f565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612638602083611fbd565b915061264382612602565b602082019050919050565b600060208201905081810360008301526126678161262b565b9050919050565b6000612679826120d5565b9150612684836120d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126b9576126b861259f565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006126fe826120d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127315761273061259f565b5b600182019050919050565b7f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d697460008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612798602383611fbd565b91506127a38261273c565b604082019050919050565b600060208201905081810360008301526127c78161278b565b9050919050565b7f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000600082015250565b6000612804601b83611fbd565b915061280f826127ce565b602082019050919050565b60006020820190508181036000830152612833816127f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612874826120d5565b915061287f836120d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b8576128b761259f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fd826120d5565b9150612908836120d5565b925082612918576129176128c3565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061297f602483611fbd565b915061298a82612923565b604082019050919050565b600060208201905081810360008301526129ae81612972565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a11602283611fbd565b9150612a1c826129b5565b604082019050919050565b60006020820190508181036000830152612a4081612a04565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aa3602583611fbd565b9150612aae82612a47565b604082019050919050565b60006020820190508181036000830152612ad281612a96565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b35602383611fbd565b9150612b4082612ad9565b604082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612bc7603083611fbd565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f546f6b656e3a206d6178207472616e73616374696f6e20616d6f756e7420726560008201527f737472696374696f6e0000000000000000000000000000000000000000000000602082015250565b6000612c59602983611fbd565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f546f6b656e3a206d61782077616c6c657420616d6f756e74207265737472696360008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b6000612ceb602483611fbd565b9150612cf682612c8f565b604082019050919050565b60006020820190508181036000830152612d1a81612cde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612d7f612d7a612d7584612d50565b612d5a565b6120d5565b9050919050565b612d8f81612d64565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dca81612097565b82525050565b6000612ddc8383612dc1565b60208301905092915050565b6000602082019050919050565b6000612e0082612d95565b612e0a8185612da0565b9350612e1583612db1565b8060005b83811015612e46578151612e2d8882612dd0565b9750612e3883612de8565b925050600181019050612e19565b5085935050505092915050565b600060a082019050612e686000830188612181565b612e756020830187612d86565b8181036040830152612e878186612df5565b9050612e966060830185612327565b612ea36080830184612181565b969550505050505056fea2646970667358221220ccb4ee397d42cd2b1a7465b1a7b6b499895b7d35665836059d654bee369d043864736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80638da5cb5b116100b6578063c9567bf91161006f578063c9567bf914610445578063d478a06c1461045c578063d53a822f14610485578063dd62ed3e146104ae578063e79476c9146104eb578063f8d982b2146105165761014b565b80638da5cb5b1461033357806395d89b411461035e578063a08fc5c714610389578063a9059cbb146103b2578063aa4bde28146103ef578063c8c8ebe41461041a5761014b565b806323b872dd1161010857806323b872dd14610237578063313ce567146102745780633b5468e71461029f57806370a08231146102c8578063715018a614610305578063751039fc1461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806316e5a479146101b857806318160ddd146101e35780631a6952301461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561053f565b604051610172919061204b565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061210b565b61057c565b6040516101af9190612166565b60405180910390f35b3480156101c457600080fd5b506101cd610593565b6040516101da9190612190565b60405180910390f35b3480156101ef57600080fd5b506101f861059d565b6040516102059190612190565b60405180910390f35b34801561021a57600080fd5b50610235600480360381019061023091906121ab565b6105ac565b005b34801561024357600080fd5b5061025e600480360381019061025991906121d8565b610698565b60405161026b9190612166565b60405180910390f35b34801561028057600080fd5b50610289610801565b6040516102969190612247565b60405180910390f35b3480156102ab57600080fd5b506102c660048036038101906102c191906122c7565b61080a565b005b3480156102d457600080fd5b506102ef60048036038101906102ea91906121ab565b6108fc565b6040516102fc9190612190565b60405180910390f35b34801561031157600080fd5b5061031a610945565b005b34801561032857600080fd5b50610331610a91565b005b34801561033f57600080fd5b50610348610b3d565b6040516103559190612336565b60405180910390f35b34801561036a57600080fd5b50610373610b66565b604051610380919061204b565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612351565b610ba3565b005b3480156103be57600080fd5b506103d960048036038101906103d4919061210b565b610c97565b6040516103e69190612166565b60405180910390f35b3480156103fb57600080fd5b50610404610cae565b6040516104119190612190565b60405180910390f35b34801561042657600080fd5b5061042f610cb4565b60405161043c9190612190565b60405180910390f35b34801561045157600080fd5b5061045a610cba565b005b34801561046857600080fd5b50610483600480360381019061047e9190612413565b610ddc565b005b34801561049157600080fd5b506104ac60048036038101906104a79190612473565b611061565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906124a0565b611123565b6040516104e29190612190565b60405180910390f35b3480156104f757600080fd5b506105006111aa565b60405161050d9190612190565b60405180910390f35b34801561052257600080fd5b5061053d600480360381019061053891906124e0565b6111b4565b005b60606040518060400160405280600781526020017f4f70656e45796500000000000000000000000000000000000000000000000000815250905090565b600061058933848461123d565b6001905092915050565b651b48eb57e00081565b6000662386f26fc10000905090565b7f0000000000000000000000003d471b32d2242213d2952598adf4bd07d094690b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106455750736d92c21b258c707d0f74dfb239d83574329a231c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61064e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610694573d6000803e3d6000fd5b5050565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610759576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107509061257f565b60405180910390fd5b6107eb843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107e691906125ce565b61123d565b6107f6848484611408565b600190509392505050565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f9061264e565b60405180910390fd5b6002600a541080156108b9575060026001600a546108b6919061266e565b10155b6108c6576108c56126c4565b5b600a60008154809291906108d9906126f3565b919050555080600960008282546108f0919061266e565b92505081905550505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca9061264e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b169061264e565b60405180910390fd5b662386f26fc10000600481905550662386f26fc10000600581905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4f45594500000000000000000000000000000000000000000000000000000000815250905090565b7f0000000000000000000000003d471b32d2242213d2952598adf4bd07d094690b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bfb57600080fd5b600654821115610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c37906127ae565b60405180910390fd5b600754811115610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c906127ae565b60405180910390fd5b81600681905550806007819055505050565b6000610ca4338484611408565b6001905092915050565b60055481565b60045481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f9061264e565b60405180910390fd5b6002600a54148015610d675750600860019054906101000a900460ff16155b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d9061281a565b60405180910390fd5b4360096000828254610db8919061266e565b925050819055506001600860016101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e619061264e565b60405180910390fd5b60005b8383905081101561105b577f00000000000000000000000037d882afebc43bb5f4c84288462710a888ef182073ffffffffffffffffffffffffffffffffffffffff16848483818110610ec257610ec161283a565b5b9050602002016020810190610ed791906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614158015610f625750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16848483818110610f3457610f3361283a565b5b9050602002016020810190610f4991906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc157503073ffffffffffffffffffffffffffffffffffffffff16848483818110610f9357610f9261283a565b5b9050602002016020810190610fa891906121ab565b73ffffffffffffffffffffffffffffffffffffffff1614155b610fca57600080fd5b8160036000868685818110610fe257610fe161283a565b5b9050602002016020810190610ff791906121ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611053906126f3565b915050610e6d565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e69061264e565b60405180910390fd5b6002600a6000815480929190611104906126f3565b919050551061111257600080fd5b806111205761111f6126c4565b5b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b65b5e620f4800081565b7f0000000000000000000000003d471b32d2242213d2952598adf4bd07d094690b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120c57600080fd5b60006064611219306108fc565b836112249190612869565b61122e91906128f2565b905061123981611af5565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612a27565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113fb9190612190565b60405180910390a3505050565b82600860019054906101000a900460ff168061146f57507f0000000000000000000000003d471b32d2242213d2952598adf4bd07d094690b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b806114b9575073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80611503575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61150c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157390612ab9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e390612b4b565b60405180910390fd5b6000821161162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690612bdd565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461167e91906125ce565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611701575073fb2cdfbb61df9bde8b89f3b28ecaf24f56030d1473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561174d575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611799575073b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117f157507f0000000000000000000000003d471b32d2242213d2952598adf4bd07d094690b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a34577f00000000000000000000000037d882afebc43bb5f4c84288462710a888ef182073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118915750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611934576004548211156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290612c6f565b60405180910390fd5b600554826118e8856108fc565b6118f2919061266e565b1115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a90612d01565b60405180910390fd5b5b600061193f306108fc565b905061194b8582611d41565b1561195a5761195981611af5565b5b60006119668685611dc5565b9050808461197491906125ce565b935080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119c5919061266e565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a299190612190565b60405180910390a350505b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a83919061266e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae79190612190565b60405180910390a350505050565b6001600860006101000a81548160ff021916908315150217905550611b1981611ed7565b905080611b3a30737a250d5630b4cf539739df2c5dacb4c659f2488d611123565b1015611b6757611b6630737a250d5630b4cf539739df2c5dacb4c659f2488d662386f26fc1000061123d565b5b60004790506000600267ffffffffffffffff811115611b8957611b88612d21565b5b604051908082528060200260200182016040528015611bb75781602001602082028036833780820191505090505b5090503081600081518110611bcf57611bce61283a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611c3e57611c3d61283a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401611cce959493929190612e53565b600060405180830381600087803b158015611ce857600080fd5b505af1158015611cfc573d6000803e3d6000fd5b505050508147611d0c91906125ce565b91506000821115611d2157611d2082611f3c565b5b50506000600860006101000a81548160ff02191690831515021790555050565b6000600860009054906101000a900460ff16158015611dac57507f00000000000000000000000037d882afebc43bb5f4c84288462710a888ef182073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dbd5750651b48eb57e00082115b905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e2157506009544311155b15611e46576064603183611e359190612869565b611e3f91906128f2565b9050611ed1565b6064600060095414611eb6577f00000000000000000000000037d882afebc43bb5f4c84288462710a888ef182073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611ead57600754611eb1565b6006545b611eb9565b600f5b83611ec49190612869565b611ece91906128f2565b90505b92915050565b600065b5e620f480008211611ef257651b48eb57e000611f35565b436009546003611f02919061266e565b1015611f145765b5e620f48000611f34565b600465b5e620f480006005611f299190612869565b611f3391906128f2565b5b5b9050919050565b73b7550135066f1fa098dbd3bb6adee7804ab7010873ffffffffffffffffffffffffffffffffffffffff166108fc6003836002611f799190612869565b611f8391906128f2565b9081150290604051600060405180830381858888f19350505050158015611fae573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fec578082015181840152602081019050611fd1565b83811115611ffb576000848401525b50505050565b6000601f19601f8301169050919050565b600061201d82611fb2565b6120278185611fbd565b9350612037818560208601611fce565b61204081612001565b840191505092915050565b600060208201905081810360008301526120658184612012565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120a282612077565b9050919050565b6120b281612097565b81146120bd57600080fd5b50565b6000813590506120cf816120a9565b92915050565b6000819050919050565b6120e8816120d5565b81146120f357600080fd5b50565b600081359050612105816120df565b92915050565b600080604083850312156121225761212161206d565b5b6000612130858286016120c0565b9250506020612141858286016120f6565b9150509250929050565b60008115159050919050565b6121608161214b565b82525050565b600060208201905061217b6000830184612157565b92915050565b61218a816120d5565b82525050565b60006020820190506121a56000830184612181565b92915050565b6000602082840312156121c1576121c061206d565b5b60006121cf848285016120c0565b91505092915050565b6000806000606084860312156121f1576121f061206d565b5b60006121ff868287016120c0565b9350506020612210868287016120c0565b9250506040612221868287016120f6565b9150509250925092565b600060ff82169050919050565b6122418161222b565b82525050565b600060208201905061225c6000830184612238565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261228757612286612262565b5b8235905067ffffffffffffffff8111156122a4576122a3612267565b5b6020830191508360208202830111156122c0576122bf61226c565b5b9250929050565b6000806000604084860312156122e0576122df61206d565b5b600084013567ffffffffffffffff8111156122fe576122fd612072565b5b61230a86828701612271565b9350935050602061231d868287016120f6565b9150509250925092565b61233081612097565b82525050565b600060208201905061234b6000830184612327565b92915050565b600080604083850312156123685761236761206d565b5b6000612376858286016120f6565b9250506020612387858286016120f6565b9150509250929050565b60008083601f8401126123a7576123a6612262565b5b8235905067ffffffffffffffff8111156123c4576123c3612267565b5b6020830191508360208202830111156123e0576123df61226c565b5b9250929050565b6123f08161214b565b81146123fb57600080fd5b50565b60008135905061240d816123e7565b92915050565b60008060006040848603121561242c5761242b61206d565b5b600084013567ffffffffffffffff81111561244a57612449612072565b5b61245686828701612391565b93509350506020612469868287016123fe565b9150509250925092565b6000602082840312156124895761248861206d565b5b6000612497848285016123fe565b91505092915050565b600080604083850312156124b7576124b661206d565b5b60006124c5858286016120c0565b92505060206124d6858286016120c0565b9150509250929050565b6000602082840312156124f6576124f561206d565b5b6000612504848285016120f6565b91505092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612569602883611fbd565b91506125748261250d565b604082019050919050565b600060208201905081810360008301526125988161255c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125d9826120d5565b91506125e4836120d5565b9250828210156125f7576125f661259f565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612638602083611fbd565b915061264382612602565b602082019050919050565b600060208201905081810360008301526126678161262b565b9050919050565b6000612679826120d5565b9150612684836120d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126b9576126b861259f565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006126fe826120d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127315761273061259f565b5b600182019050919050565b7f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d697460008201527f7465640000000000000000000000000000000000000000000000000000000000602082015250565b6000612798602383611fbd565b91506127a38261273c565b604082019050919050565b600060208201905081810360008301526127c78161278b565b9050919050565b7f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000600082015250565b6000612804601b83611fbd565b915061280f826127ce565b602082019050919050565b60006020820190508181036000830152612833816127f7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612874826120d5565b915061287f836120d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128b8576128b761259f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128fd826120d5565b9150612908836120d5565b925082612918576129176128c3565b5b828204905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061297f602483611fbd565b915061298a82612923565b604082019050919050565b600060208201905081810360008301526129ae81612972565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a11602283611fbd565b9150612a1c826129b5565b604082019050919050565b60006020820190508181036000830152612a4081612a04565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612aa3602583611fbd565b9150612aae82612a47565b604082019050919050565b60006020820190508181036000830152612ad281612a96565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b35602383611fbd565b9150612b4082612ad9565b604082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b7f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612bc7603083611fbd565b9150612bd282612b6b565b604082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b7f546f6b656e3a206d6178207472616e73616374696f6e20616d6f756e7420726560008201527f737472696374696f6e0000000000000000000000000000000000000000000000602082015250565b6000612c59602983611fbd565b9150612c6482612bfd565b604082019050919050565b60006020820190508181036000830152612c8881612c4c565b9050919050565b7f546f6b656e3a206d61782077616c6c657420616d6f756e74207265737472696360008201527f74696f6e00000000000000000000000000000000000000000000000000000000602082015250565b6000612ceb602483611fbd565b9150612cf682612c8f565b604082019050919050565b60006020820190508181036000830152612d1a81612cde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b6000819050919050565b6000612d7f612d7a612d7584612d50565b612d5a565b6120d5565b9050919050565b612d8f81612d64565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dca81612097565b82525050565b6000612ddc8383612dc1565b60208301905092915050565b6000602082019050919050565b6000612e0082612d95565b612e0a8185612da0565b9350612e1583612db1565b8060005b83811015612e46578151612e2d8882612dd0565b9750612e3883612de8565b925050600181019050612e19565b5085935050505092915050565b600060a082019050612e686000830188612181565b612e756020830187612d86565b8181036040830152612e878186612df5565b9050612e966060830185612327565b612ea36080830184612181565b969550505050505056fea2646970667358221220ccb4ee397d42cd2b1a7465b1a7b6b499895b7d35665836059d654bee369d043864736f6c634300080a0033

Deployed Bytecode Sourcemap

1964:8668:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4111:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4911:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2524:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4388:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9205:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5069:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4297:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10259:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4487:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1809:148;;;;;;;;;;;;;:::i;:::-;;9653:138;;;;;;;;;;;;;:::i;:::-;;1722:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4202:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9799:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4605:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2463:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2403:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10441:188;;;;;;;;;;;;;:::i;:::-;;8844:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10150:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4769:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2589:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9431:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4111:83;4148:13;4181:5;;;;;;;;;;;;;;;;;4174:12;;4111:83;:::o;4911:150::-;4977:4;4994:37;5003:10;5015:7;5024:6;4994:8;:37::i;:::-;5049:4;5042:11;;4911:150;;;;:::o;2524:58::-;2568:14;2524:58;:::o;4388:91::-;4432:7;2376:18;4452:19;;4388:91;:::o;9205:218::-;9281:15;9267:29;;:10;:29;;;:89;;;;9314:42;9300:56;;:10;:56;;;9267:89;9259:98;;;;;;9376:6;9368:24;;:47;9393:21;9368:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9205:218;:::o;5069:358::-;5158:4;5218:6;5183:11;:19;5195:6;5183:19;;;;;;;;;;;;;;;:31;5203:10;5183:31;;;;;;;;;;;;;;;;:41;;5175:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;5280:70;5289:6;5297:10;5343:6;5309:11;:19;5321:6;5309:19;;;;;;;;;;;;;;;:31;5329:10;5309:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5280:8;:70::i;:::-;5361:36;5371:6;5379:9;5390:6;5361:9;:36::i;:::-;5415:4;5408:11;;5069:358;;;;;:::o;4297:83::-;4338:5;2328:1;4356:16;;4297:83;:::o;10259:174::-;1489:10;1479:20;;:6;;;;;;;;;;:20;;;1471:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10360:1:::1;10354:5;;:7;:19;;;;;10372:1;10369;10363:5;;:7;;;;:::i;:::-;:10;;10354:19;10347:27;;;;:::i;:::-;;10386:5;;:7;;;;;;;;;:::i;:::-;;;;;;10419:6;10410:5;;:15;;;;;;;:::i;:::-;;;;;;;;10259:174:::0;;;:::o;4487:110::-;4544:7;4571:9;:18;4581:7;4571:18;;;;;;;;;;;;;;;;4564:25;;4487:110;;;:::o;1809:148::-;1489:10;1479:20;;:6;;;;;;;;;;:20;;;1471:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1916:1:::1;1879:40;;1900:6;::::0;::::1;;;;;;;;1879:40;;;;;;;;;;;;1947:1;1930:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1809:148::o:0;9653:138::-;1489:10;1479:20;;:6;;;;;;;;;;:20;;;1471:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2376:18:::1;9707:20;:35;;;;2376:18;9753:15;:30;;;;9653:138::o:0;1722:79::-;1760:7;1787:6;;;;;;;;;;;1780:13;;1722:79;:::o;4202:87::-;4241:13;4274:7;;;;;;;;;;;;;;;;;4267:14;;4202:87;:::o;9799:343::-;9900:15;9886:29;;:10;:29;;;9878:38;;;;;;9948:6;;9935:9;:19;;9927:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10027:7;;10013:10;:21;;10005:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10094:9;10085:6;:18;;;;10124:10;10114:7;:20;;;;9799:343;;:::o;4605:156::-;4674:4;4691:40;4701:10;4713:9;4724:6;4691:9;:40::i;:::-;4749:4;4742:11;;4605:156;;;;:::o;2463:48::-;;;;:::o;2403:53::-;;;;:::o;10441:188::-;1489:10;1479:20;;:6;;;;;;;;;;:20;;;1471:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10511:1:::1;10502:5;;:10;:26;;;;;10517:11;;;;;;;;;;;10516:12;10502:26;10494:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10580:12;10571:5;;:21;;;;;;;:::i;:::-;;;;;;;;10617:4;10603:11;;:18;;;;;;;;;;;;;;;;;;10441:188::o:0;8844:353::-;1489:10;1479:20;;:6;;;;;;;;;;:20;;;1471:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8941:6:::1;8936:254;8957:4;;:11;;8953:1;:15;8936:254;;;9009:11;8998:22;;:4;;9003:1;8998:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:22;;;;:81;;;;;2836:42;9046:33;;:4;;9051:1;9046:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:33;;;;8998:81;:130;;;;;9123:4;9104:24;;:4;;9109:1;9104:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;:24;;;;8998:130;8990:139;;;::::0;::::1;;9167:11;9144;:20;9156:4;;9161:1;9156:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9144:20;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8970:3;;;;;:::i;:::-;;;;8936:254;;;;8844:353:::0;;;:::o;10150:101::-;1489:10;1479:20;;:6;;;;;;;;;;:20;;;1471:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10227:1:::1;10219:5;;:7;;;;;;;;;:::i;:::-;;;;;:9;10211:18;;;::::0;::::1;;10238:4;10231:12;;;;:::i;:::-;;10150:101:::0;:::o;4769:134::-;4841:7;4868:11;:18;4880:5;4868:18;;;;;;;;;;;;;;;:27;4887:7;4868:27;;;;;;;;;;;;;;;;4861:34;;4769:134;;;;:::o;2589:57::-;2631:15;2589:57;:::o;9431:214::-;9514:15;9500:29;;:10;:29;;;9492:38;;;;;;9541:20;9601:3;9574:24;9592:4;9574:9;:24::i;:::-;9564:7;:34;;;;:::i;:::-;:40;;;;:::i;:::-;9541:63;;9615:22;9624:12;9615:8;:22::i;:::-;9481:164;9431:214;:::o;5435:335::-;5545:1;5528:19;;:5;:19;;;;5520:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5626:1;5607:21;;:7;:21;;;;5599:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5708:6;5678:11;:18;5690:5;5678:18;;;;;;;;;;;;;;;:27;5697:7;5678:27;;;;;;;;;;;;;;;:36;;;;5746:7;5730:32;;5739:5;5730:32;;;5755:6;5730:32;;;;;;:::i;:::-;;;;;;;;5435:335;;;:::o;5778:1339::-;5848:4;3556:11;;;;;;;;;;;:40;;;;3581:15;3571:25;;:6;:25;;;3556:40;:84;;;;3125:42;3614:26;;:6;:26;;;3556:84;:116;;;;3236:42;3644:28;;:6;:28;;;3556:116;3548:125;;;;;;5897:1:::1;5881:18;;:4;:18;;;;5873:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5974:1;5960:16;;:2;:16;;;;5952:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6044:1;6035:6;:10;6027:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6130:6;6111:9;:15;6121:4;6111:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;6169:4;6153:21;;:4;:21;;;;:49;;;;;3125:42;6178:24;;:4;:24;;;;6153:49;:91;;;;;3236:42;6218:26;;:4;:26;;;;6153:91;:119;;;;;3236:42;6248:24;;:2;:24;;;;6153:119;:144;;;;;6282:15;6276:21;;:2;:21;;;;6153:144;6149:883;;;6340:11;6332:19;;:4;:19;;;:51;;;;;2836:42;6355:28;;:2;:28;;;;6332:51;6328:285;;;6422:20;;6412:6;:30;;6404:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;6541:15;;6531:6;6515:13;6525:2;6515:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;6507:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;6328:285;6628:22;6653:24;6671:4;6653:9;:24::i;:::-;6628:49;;6695:36;6710:4;6716:14;6695;:36::i;:::-;6691:83;;;6750:24;6759:14;6750:8;:24::i;:::-;6691:83;6818:19;6840:26;6853:4;6859:6;6840:12;:26::i;:::-;6818:48;;6893:11;6883:21;;;;;:::i;:::-;;;6947:11;6919:9;:24;6937:4;6919:24;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;7001:4;6978:42;;6987:4;6978:42;;;7008:11;6978:42;;;;;;:::i;:::-;;;;;;;;6299:733;;6149:883;7061:6;7044:9;:13;7054:2;7044:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;7098:2;7083:26;;7092:4;7083:26;;;7102:6;7083:26;;;;;;:::i;:::-;;;;;;;;5778:1339:::0;;;;:::o;7647:842::-;3446:4;3437:6;;:13;;;;;;;;;;;;;;;;;;7728:32:::1;7748:11;7728:19;:32::i;:::-;7714:46;;7827:11;7776:48;7794:4;2836:42;7776:9;:48::i;:::-;:62;7773:155;;;7855:61;7872:4;2836:42;2376:18;7855:8;:61::i;:::-;7773:155;7948:26;7977:21;7948:50;;8009:21;8047:1;8033:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8009:40;;8078:4;8060;8065:1;8060:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8104:3;8094:4;8099:1;8094:7;;;;;;;;:::i;:::-;;;;;;;:13;;;;;;;;;::::0;::::1;2836:42;8118:64;;;8197:11;8223:1;8239:4;8266;8286:15;8118:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8368:18;8344:21;:42;;;;:::i;:::-;8323:63;;8421:1;8400:18;:22;8397:85;;;8439:31;8451:18;8439:11;:31::i;:::-;8397:85;7703:786;;3482:5:::0;3473:6;;:14;;;;;;;;;;;;;;;;;;7647:842;:::o;7125:192::-;7206:4;7231:6;;;;;;;;;;;7230:7;:30;;;;;7249:11;7241:19;;:4;:19;;;;7230:30;:79;;;;;2568:14;7278:11;:31;7230:79;7223:86;;7125:192;;;;:::o;7325:314::-;7399:7;7423:11;:17;7435:4;7423:17;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;7460:5;;7444:12;:21;;7423:42;7420:211;;;7509:3;2758:2;7491:6;:15;;;;:::i;:::-;:21;;;;:::i;:::-;7484:28;;;;7420:211;7628:3;7575:1;7566:5;;:10;:58;;7593:11;7585:19;;:4;:19;;;:38;;7616:7;;7585:38;;;7607:6;;7585:38;7566:58;;;7579:2;7566:58;7556:6;:69;;;;:::i;:::-;:75;;;;:::i;:::-;7549:82;;7325:314;;;;;:::o;8497:228::-;8569:7;2631:15;8596:11;:29;:121;;2568:14;8596:121;;;8642:12;8633:5;;8629:1;:9;;;;:::i;:::-;:25;;:67;;2631:15;8629:67;;;8676:1;2631:15;8658:1;:17;;;;:::i;:::-;:19;;;;:::i;:::-;8629:67;8596:121;8589:128;;8497:228;;;:::o;8733:103::-;3236:42;8789:27;;:39;8826:1;8819:6;8817:1;:8;;;;:::i;:::-;:10;;;;:::i;:::-;8789:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8733:103;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:117::-;5345:1;5342;5335:12;5359:117;5468:1;5465;5458:12;5482:117;5591:1;5588;5581:12;5619:565;5689:8;5699:6;5749:3;5742:4;5734:6;5730:17;5726:27;5716:122;;5757:79;;:::i;:::-;5716:122;5870:6;5857:20;5847:30;;5900:18;5892:6;5889:30;5886:117;;;5922:79;;:::i;:::-;5886:117;6036:4;6028:6;6024:17;6012:29;;6090:3;6082:4;6074:6;6070:17;6060:8;6056:32;6053:41;6050:128;;;6097:79;;:::i;:::-;6050:128;5619:565;;;;;:::o;6190:698::-;6282:6;6290;6298;6347:2;6335:9;6326:7;6322:23;6318:32;6315:119;;;6353:79;;:::i;:::-;6315:119;6501:1;6490:9;6486:17;6473:31;6531:18;6523:6;6520:30;6517:117;;;6553:79;;:::i;:::-;6517:117;6666:77;6735:7;6726:6;6715:9;6711:22;6666:77;:::i;:::-;6648:95;;;;6444:309;6792:2;6818:53;6863:7;6854:6;6843:9;6839:22;6818:53;:::i;:::-;6808:63;;6763:118;6190:698;;;;;:::o;6894:118::-;6981:24;6999:5;6981:24;:::i;:::-;6976:3;6969:37;6894:118;;:::o;7018:222::-;7111:4;7149:2;7138:9;7134:18;7126:26;;7162:71;7230:1;7219:9;7215:17;7206:6;7162:71;:::i;:::-;7018:222;;;;:::o;7246:474::-;7314:6;7322;7371:2;7359:9;7350:7;7346:23;7342:32;7339:119;;;7377:79;;:::i;:::-;7339:119;7497:1;7522:53;7567:7;7558:6;7547:9;7543:22;7522:53;:::i;:::-;7512:63;;7468:117;7624:2;7650:53;7695:7;7686:6;7675:9;7671:22;7650:53;:::i;:::-;7640:63;;7595:118;7246:474;;;;;:::o;7743:568::-;7816:8;7826:6;7876:3;7869:4;7861:6;7857:17;7853:27;7843:122;;7884:79;;:::i;:::-;7843:122;7997:6;7984:20;7974:30;;8027:18;8019:6;8016:30;8013:117;;;8049:79;;:::i;:::-;8013:117;8163:4;8155:6;8151:17;8139:29;;8217:3;8209:4;8201:6;8197:17;8187:8;8183:32;8180:41;8177:128;;;8224:79;;:::i;:::-;8177:128;7743:568;;;;;:::o;8317:116::-;8387:21;8402:5;8387:21;:::i;:::-;8380:5;8377:32;8367:60;;8423:1;8420;8413:12;8367:60;8317:116;:::o;8439:133::-;8482:5;8520:6;8507:20;8498:29;;8536:30;8560:5;8536:30;:::i;:::-;8439:133;;;;:::o;8578:698::-;8670:6;8678;8686;8735:2;8723:9;8714:7;8710:23;8706:32;8703:119;;;8741:79;;:::i;:::-;8703:119;8889:1;8878:9;8874:17;8861:31;8919:18;8911:6;8908:30;8905:117;;;8941:79;;:::i;:::-;8905:117;9054:80;9126:7;9117:6;9106:9;9102:22;9054:80;:::i;:::-;9036:98;;;;8832:312;9183:2;9209:50;9251:7;9242:6;9231:9;9227:22;9209:50;:::i;:::-;9199:60;;9154:115;8578:698;;;;;:::o;9282:323::-;9338:6;9387:2;9375:9;9366:7;9362:23;9358:32;9355:119;;;9393:79;;:::i;:::-;9355:119;9513:1;9538:50;9580:7;9571:6;9560:9;9556:22;9538:50;:::i;:::-;9528:60;;9484:114;9282:323;;;;:::o;9611:474::-;9679:6;9687;9736:2;9724:9;9715:7;9711:23;9707:32;9704:119;;;9742:79;;:::i;:::-;9704:119;9862:1;9887:53;9932:7;9923:6;9912:9;9908:22;9887:53;:::i;:::-;9877:63;;9833:117;9989:2;10015:53;10060:7;10051:6;10040:9;10036:22;10015:53;:::i;:::-;10005:63;;9960:118;9611:474;;;;;:::o;10091:329::-;10150:6;10199:2;10187:9;10178:7;10174:23;10170:32;10167:119;;;10205:79;;:::i;:::-;10167:119;10325:1;10350:53;10395:7;10386:6;10375:9;10371:22;10350:53;:::i;:::-;10340:63;;10296:117;10091:329;;;;:::o;10426:227::-;10566:34;10562:1;10554:6;10550:14;10543:58;10635:10;10630:2;10622:6;10618:15;10611:35;10426:227;:::o;10659:366::-;10801:3;10822:67;10886:2;10881:3;10822:67;:::i;:::-;10815:74;;10898:93;10987:3;10898:93;:::i;:::-;11016:2;11011:3;11007:12;11000:19;;10659:366;;;:::o;11031:419::-;11197:4;11235:2;11224:9;11220:18;11212:26;;11284:9;11278:4;11274:20;11270:1;11259:9;11255:17;11248:47;11312:131;11438:4;11312:131;:::i;:::-;11304:139;;11031:419;;;:::o;11456:180::-;11504:77;11501:1;11494:88;11601:4;11598:1;11591:15;11625:4;11622:1;11615:15;11642:191;11682:4;11702:20;11720:1;11702:20;:::i;:::-;11697:25;;11736:20;11754:1;11736:20;:::i;:::-;11731:25;;11775:1;11772;11769:8;11766:34;;;11780:18;;:::i;:::-;11766:34;11825:1;11822;11818:9;11810:17;;11642:191;;;;:::o;11839:182::-;11979:34;11975:1;11967:6;11963:14;11956:58;11839:182;:::o;12027:366::-;12169:3;12190:67;12254:2;12249:3;12190:67;:::i;:::-;12183:74;;12266:93;12355:3;12266:93;:::i;:::-;12384:2;12379:3;12375:12;12368:19;;12027:366;;;:::o;12399:419::-;12565:4;12603:2;12592:9;12588:18;12580:26;;12652:9;12646:4;12642:20;12638:1;12627:9;12623:17;12616:47;12680:131;12806:4;12680:131;:::i;:::-;12672:139;;12399:419;;;:::o;12824:305::-;12864:3;12883:20;12901:1;12883:20;:::i;:::-;12878:25;;12917:20;12935:1;12917:20;:::i;:::-;12912:25;;13071:1;13003:66;12999:74;12996:1;12993:81;12990:107;;;13077:18;;:::i;:::-;12990:107;13121:1;13118;13114:9;13107:16;;12824:305;;;;:::o;13135:180::-;13183:77;13180:1;13173:88;13280:4;13277:1;13270:15;13304:4;13301:1;13294:15;13321:233;13360:3;13383:24;13401:5;13383:24;:::i;:::-;13374:33;;13429:66;13422:5;13419:77;13416:103;;;13499:18;;:::i;:::-;13416:103;13546:1;13539:5;13535:13;13528:20;;13321:233;;;:::o;13560:222::-;13700:34;13696:1;13688:6;13684:14;13677:58;13769:5;13764:2;13756:6;13752:15;13745:30;13560:222;:::o;13788:366::-;13930:3;13951:67;14015:2;14010:3;13951:67;:::i;:::-;13944:74;;14027:93;14116:3;14027:93;:::i;:::-;14145:2;14140:3;14136:12;14129:19;;13788:366;;;:::o;14160:419::-;14326:4;14364:2;14353:9;14349:18;14341:26;;14413:9;14407:4;14403:20;14399:1;14388:9;14384:17;14377:47;14441:131;14567:4;14441:131;:::i;:::-;14433:139;;14160:419;;;:::o;14585:177::-;14725:29;14721:1;14713:6;14709:14;14702:53;14585:177;:::o;14768:366::-;14910:3;14931:67;14995:2;14990:3;14931:67;:::i;:::-;14924:74;;15007:93;15096:3;15007:93;:::i;:::-;15125:2;15120:3;15116:12;15109:19;;14768:366;;;:::o;15140:419::-;15306:4;15344:2;15333:9;15329:18;15321:26;;15393:9;15387:4;15383:20;15379:1;15368:9;15364:17;15357:47;15421:131;15547:4;15421:131;:::i;:::-;15413:139;;15140:419;;;:::o;15565:180::-;15613:77;15610:1;15603:88;15710:4;15707:1;15700:15;15734:4;15731:1;15724:15;15751:348;15791:7;15814:20;15832:1;15814:20;:::i;:::-;15809:25;;15848:20;15866:1;15848:20;:::i;:::-;15843:25;;16036:1;15968:66;15964:74;15961:1;15958:81;15953:1;15946:9;15939:17;15935:105;15932:131;;;16043:18;;:::i;:::-;15932:131;16091:1;16088;16084:9;16073:20;;15751:348;;;;:::o;16105:180::-;16153:77;16150:1;16143:88;16250:4;16247:1;16240:15;16274:4;16271:1;16264:15;16291:185;16331:1;16348:20;16366:1;16348:20;:::i;:::-;16343:25;;16382:20;16400:1;16382:20;:::i;:::-;16377:25;;16421:1;16411:35;;16426:18;;:::i;:::-;16411:35;16468:1;16465;16461:9;16456:14;;16291:185;;;;:::o;16482:223::-;16622:34;16618:1;16610:6;16606:14;16599:58;16691:6;16686:2;16678:6;16674:15;16667:31;16482:223;:::o;16711:366::-;16853:3;16874:67;16938:2;16933:3;16874:67;:::i;:::-;16867:74;;16950:93;17039:3;16950:93;:::i;:::-;17068:2;17063:3;17059:12;17052:19;;16711:366;;;:::o;17083:419::-;17249:4;17287:2;17276:9;17272:18;17264:26;;17336:9;17330:4;17326:20;17322:1;17311:9;17307:17;17300:47;17364:131;17490:4;17364:131;:::i;:::-;17356:139;;17083:419;;;:::o;17508:221::-;17648:34;17644:1;17636:6;17632:14;17625:58;17717:4;17712:2;17704:6;17700:15;17693:29;17508:221;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:224::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:7;18736:2;18728:6;18724:15;18717:32;18532:224;:::o;18762:366::-;18904:3;18925:67;18989:2;18984:3;18925:67;:::i;:::-;18918:74;;19001:93;19090:3;19001:93;:::i;:::-;19119:2;19114:3;19110:12;19103:19;;18762:366;;;:::o;19134:419::-;19300:4;19338:2;19327:9;19323:18;19315:26;;19387:9;19381:4;19377:20;19373:1;19362:9;19358:17;19351:47;19415:131;19541:4;19415:131;:::i;:::-;19407:139;;19134:419;;;:::o;19559:222::-;19699:34;19695:1;19687:6;19683:14;19676:58;19768:5;19763:2;19755:6;19751:15;19744:30;19559:222;:::o;19787:366::-;19929:3;19950:67;20014:2;20009:3;19950:67;:::i;:::-;19943:74;;20026:93;20115:3;20026:93;:::i;:::-;20144:2;20139:3;20135:12;20128:19;;19787:366;;;:::o;20159:419::-;20325:4;20363:2;20352:9;20348:18;20340:26;;20412:9;20406:4;20402:20;20398:1;20387:9;20383:17;20376:47;20440:131;20566:4;20440:131;:::i;:::-;20432:139;;20159:419;;;:::o;20584:235::-;20724:34;20720:1;20712:6;20708:14;20701:58;20793:18;20788:2;20780:6;20776:15;20769:43;20584:235;:::o;20825:366::-;20967:3;20988:67;21052:2;21047:3;20988:67;:::i;:::-;20981:74;;21064:93;21153:3;21064:93;:::i;:::-;21182:2;21177:3;21173:12;21166:19;;20825:366;;;:::o;21197:419::-;21363:4;21401:2;21390:9;21386:18;21378:26;;21450:9;21444:4;21440:20;21436:1;21425:9;21421:17;21414:47;21478:131;21604:4;21478:131;:::i;:::-;21470:139;;21197:419;;;:::o;21622:228::-;21762:34;21758:1;21750:6;21746:14;21739:58;21831:11;21826:2;21818:6;21814:15;21807:36;21622:228;:::o;21856:366::-;21998:3;22019:67;22083:2;22078:3;22019:67;:::i;:::-;22012:74;;22095:93;22184:3;22095:93;:::i;:::-;22213:2;22208:3;22204:12;22197:19;;21856:366;;;:::o;22228:419::-;22394:4;22432:2;22421:9;22417:18;22409:26;;22481:9;22475:4;22471:20;22467:1;22456:9;22452:17;22445:47;22509:131;22635:4;22509:131;:::i;:::-;22501:139;;22228:419;;;:::o;22653:223::-;22793:34;22789:1;22781:6;22777:14;22770:58;22862:6;22857:2;22849:6;22845:15;22838:31;22653:223;:::o;22882:366::-;23024:3;23045:67;23109:2;23104:3;23045:67;:::i;:::-;23038:74;;23121:93;23210:3;23121:93;:::i;:::-;23239:2;23234:3;23230:12;23223:19;;22882:366;;;:::o;23254:419::-;23420:4;23458:2;23447:9;23443:18;23435:26;;23507:9;23501:4;23497:20;23493:1;23482:9;23478:17;23471:47;23535:131;23661:4;23535:131;:::i;:::-;23527:139;;23254:419;;;:::o;23679:180::-;23727:77;23724:1;23717:88;23824:4;23821:1;23814:15;23848:4;23845:1;23838:15;23865:85;23910:7;23939:5;23928:16;;23865:85;;;:::o;23956:60::-;23984:3;24005:5;23998:12;;23956:60;;;:::o;24022:158::-;24080:9;24113:61;24131:42;24140:32;24166:5;24140:32;:::i;:::-;24131:42;:::i;:::-;24113:61;:::i;:::-;24100:74;;24022:158;;;:::o;24186:147::-;24281:45;24320:5;24281:45;:::i;:::-;24276:3;24269:58;24186:147;;:::o;24339:114::-;24406:6;24440:5;24434:12;24424:22;;24339:114;;;:::o;24459:184::-;24558:11;24592:6;24587:3;24580:19;24632:4;24627:3;24623:14;24608:29;;24459:184;;;;:::o;24649:132::-;24716:4;24739:3;24731:11;;24769:4;24764:3;24760:14;24752:22;;24649:132;;;:::o;24787:108::-;24864:24;24882:5;24864:24;:::i;:::-;24859:3;24852:37;24787:108;;:::o;24901:179::-;24970:10;24991:46;25033:3;25025:6;24991:46;:::i;:::-;25069:4;25064:3;25060:14;25046:28;;24901:179;;;;:::o;25086:113::-;25156:4;25188;25183:3;25179:14;25171:22;;25086:113;;;:::o;25235:732::-;25354:3;25383:54;25431:5;25383:54;:::i;:::-;25453:86;25532:6;25527:3;25453:86;:::i;:::-;25446:93;;25563:56;25613:5;25563:56;:::i;:::-;25642:7;25673:1;25658:284;25683:6;25680:1;25677:13;25658:284;;;25759:6;25753:13;25786:63;25845:3;25830:13;25786:63;:::i;:::-;25779:70;;25872:60;25925:6;25872:60;:::i;:::-;25862:70;;25718:224;25705:1;25702;25698:9;25693:14;;25658:284;;;25662:14;25958:3;25951:10;;25359:608;;;25235:732;;;;:::o;25973:831::-;26236:4;26274:3;26263:9;26259:19;26251:27;;26288:71;26356:1;26345:9;26341:17;26332:6;26288:71;:::i;:::-;26369:80;26445:2;26434:9;26430:18;26421:6;26369:80;:::i;:::-;26496:9;26490:4;26486:20;26481:2;26470:9;26466:18;26459:48;26524:108;26627:4;26618:6;26524:108;:::i;:::-;26516:116;;26642:72;26710:2;26699:9;26695:18;26686:6;26642:72;:::i;:::-;26724:73;26792:3;26781:9;26777:19;26768:6;26724:73;:::i;:::-;25973:831;;;;;;;;:::o

Swarm Source

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