Token POPKON

 

Overview [ERC-20]

Price
$0.01 @ 0.000006 Eth (+8.08%)
Fully Diluted Market Cap
Max Total Supply:
1,025,000,000 POPK

Holders:
530 (0.00%)

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

POPKON aims to pioneer a new platform in the era of WEB 3.0 through L2E (Livestreaming to Earn) technology, and to become a blockchain-based 'two-way live streaming platform' that connects creators and viewers.

Market

Volume (24H):$144,271.00
Market Capitalization:$0.00
Circulating Supply:0.00 POPK
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
DigiFinex
POPK-USDT$0.0081
0.0000063 Eth
$87,312.00
10,773,999.000 POPK
44.7941%
2
Bittrex
POPK-USDT$0.0081
0.0000063 Eth
$48,564.00
5,978,368.656 POPK
24.8557%
3
MEXC Global
POPK-USDT$0.0081
0.0000063 Eth
$46,791.00
5,781,073.300 POPK
24.0355%
4
Gate.io
POPK-USDT$0.0057
0.0000045 Eth
$8,581.45
1,518,830.520 POPK
6.3147%
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
POPKON

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 7 of 7: POPKON.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

import "./ERC20Lockable.sol";
import "./ERC20Burnable.sol";
import "./Pausable.sol";
import "./Freezable.sol";

contract POPKON is
    ERC20Lockable,
    ERC20Burnable,
    Freezable
{
    string constant private _name = "POPKON";
    string constant private _symbol = "POPK";
    uint8 constant private _decimals = 18;
    uint256 constant private _initial_supply = 5_000_000_000;

    constructor() Ownable() {
        _mint(msg.sender, _initial_supply * (10**uint256(_decimals)));
    }

    function transfer(address to, uint256 amount)
        override
        external
        whenNotFrozen(msg.sender)
        whenNotPaused
        checkLock(msg.sender, amount)
        returns (bool success)
    {
        require(
            to != address(0),
            "transfer : Should not send to zero address"
        );
        _transfer(msg.sender, to, amount);
        success = true;
    }

    function transferFrom(address from, address to, uint256 amount)
        override
        external
        whenNotFrozen(from)
        whenNotPaused
        checkLock(from, amount)
        returns (bool success)
    {
        require(
            to != address(0),
            "transferFrom : Should not send to zero address"
        );
        _transfer(from, to, amount);
        _approve(
            from,
            msg.sender,
            _allowances[from][msg.sender] - amount
        );
        success = true;
    }

    function approve(address spender, uint256 amount)
        override
        external
        returns (bool success)
    {
        require(
            spender != address(0),
            "approve : Should not approve zero address"
        );
        _approve(msg.sender, spender, amount);
        success = true;
    }

    function name() override external pure returns (string memory tokenName) {
        tokenName = _name;
    }

    function symbol() override external pure returns (string memory tokenSymbol) {
        tokenSymbol = _symbol;
    }

    function decimals() override external pure returns (uint8 tokenDecimals) {
        tokenDecimals = _decimals;
    }
}

File 1 of 7: ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

abstract contract ERC20 {

    uint256 private _totalSupply;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;

    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 amount
    );

    /*
   * Internal Functions for ERC20 standard logics
   */

    function _transfer(address from, address to, uint256 amount)
        internal
        returns (bool success)
    {
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount;
        emit Transfer(from, to, amount);
        success = true;
    }

    function _approve(address owner, address spender, uint256 amount)
        internal
        returns (bool success)
    {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
        success = true;
    }

    function _mint(address recipient, uint256 amount)
        internal
        returns (bool success)
    {
        _totalSupply = _totalSupply + amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(address(0), recipient, amount);
        success = true;
    }

    function _burn(address burned, uint256 amount)
        internal
        returns (bool success)
    {
        _balances[burned] = _balances[burned] - amount;
        _totalSupply = _totalSupply - amount;
        emit Transfer(burned, address(0), amount);
        success = true;
    }

    /*
   * public view functions to view common data
   */

    function totalSupply() external view returns (uint256 total) {
        total = _totalSupply;
    }
    function balanceOf(address owner) external view returns (uint256 balance) {
        balance = _balances[owner];
    }

    function allowance(address owner, address spender)
        external
        view
        returns (uint256 remaining)
    {
        remaining = _allowances[owner][spender];
    }

    /*
   * External view Function Interface to implement on final contract
   */
    function name() virtual external view returns (string memory tokenName);
    function symbol() virtual external view returns (string memory tokenSymbol);
    function decimals() virtual external view returns (uint8 tokenDecimals);

    /*
   * External Function Interface to implement on final contract
   */
    function transfer(address to, uint256 amount)
        virtual
        external
        returns (bool success);
    function transferFrom(address from, address to, uint256 amount)
        virtual
        external
        returns (bool success);
    function approve(address spender, uint256 amount)
        virtual
        external
        returns (bool success);
}

File 2 of 7: ERC20Burnable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

import "./ERC20.sol";
import "./Pausable.sol";

abstract contract ERC20Burnable is ERC20, Pausable {
    event Burn(address indexed burned, uint256 amount);

    function burn(uint256 amount)
        external
        whenNotPaused
        returns (bool success)
    {
        success = _burn(msg.sender, amount);
        emit Burn(msg.sender, amount);
        success = true;
    }

    function burnFrom(address burned, uint256 amount)
        external
        whenNotPaused
        returns (bool success)
    {
        _burn(burned, amount);
        emit Burn(burned, amount);
        success = _approve(
            burned,
            msg.sender,
            _allowances[burned][msg.sender] - amount
        );
    }
}

File 3 of 7: ERC20Lockable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

import "./ERC20.sol";
import "./Ownable.sol";

abstract contract ERC20Lockable is ERC20, Ownable {
    struct LockInfo {
        uint256 amount;
        uint256 due;
    }

    mapping(address => LockInfo[]) internal _locks;
    mapping(address => uint256) internal _totalLocked;

    event Lock(address indexed from, uint256 amount, uint256 due);
    event Unlock(address indexed from, uint256 amount);

    modifier checkLock(address from, uint256 amount) {
        require(_balances[from] >= _totalLocked[from] + amount, "ERC20Lockable/Cannot send more than unlocked amount");
        _;
    }

    function _lock(address from, uint256 amount, uint256 due)
    internal
    returns (bool success)
    {
        require(due > block.timestamp, "ERC20Lockable/lock : Cannot set due to past");
        require(
            _balances[from] >= amount + _totalLocked[from],
            "ERC20Lockable/lock : locked total should be smaller than balance"
        );
        _totalLocked[from] = _totalLocked[from] + amount;
        _locks[from].push(LockInfo(amount, due));
        emit Lock(from, amount, due);
        success = true;
    }

    function _unlock(address from, uint256 index) internal returns (bool success) {
        LockInfo storage lock = _locks[from][index];
        _totalLocked[from] = _totalLocked[from] - lock.amount;
        emit Unlock(from, lock.amount);
        _locks[from][index] = _locks[from][_locks[from].length - 1];
        _locks[from].pop();
        success = true;
    }

    function unlock(address from, uint256 idx) external returns(bool success){
        require(_locks[from][idx].due < block.timestamp,"ERC20Lockable/unlock: cannot unlock before due");
        return _unlock(from, idx);
    }

    function unlockAll(address from) external returns (bool success) {
        for(uint256 i = 0; i < _locks[from].length;){
            i++;
            if(_locks[from][i - 1].due < block.timestamp){
                if(_unlock(from, i - 1)){
                    i--;
                }
            }
        }
        success = true;
    }

    function releaseLock(address from)
    external
    onlyOwner
    returns (bool success)
    {
        for(uint256 i = 0; i < _locks[from].length;){
            i++;
            if(_unlock(from, i - 1)){
                i--;
            }
        }
        success = true;
    }

    function transferWithLockUp(address recipient, uint256 amount, uint256 due)
    external
    onlyOwner
    returns (bool success)
    {
        require(
            recipient != address(0),
            "ERC20Lockable/transferWithLockUp : Cannot send to zero address"
        );
        _transfer(msg.sender, recipient, amount);
        _lock(recipient, amount, due);
        success = true;
    }

    function lockInfo(address locked, uint256 index)
    external
    view
    returns (uint256 amount, uint256 due)
    {
        LockInfo memory lock = _locks[locked][index];
        amount = lock.amount;
        due = lock.due;
    }

    function totalLocked(address locked) external view returns(uint256 amount, uint256 length){
        amount = _totalLocked[locked];
        length = _locks[locked].length;
    }
}

File 4 of 7: Freezable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

import "./Ownable.sol";

contract Freezable is Ownable {
    mapping(address => bool) private _frozen;

    event Freeze(address indexed target);
    event Unfreeze(address indexed target);

    modifier whenNotFrozen(address target) {
        require(!_frozen[target], "Freezable : target is frozen");
        _;
    }

    function freeze(address target) external onlyOwner returns (bool success) {
        _frozen[target] = true;
        emit Freeze(target);
        success = true;
    }

    function unFreeze(address target)
        external
        onlyOwner
        returns (bool success)
    {
        _frozen[target] = false;
        emit Unfreeze(target);
        success = true;
    }

    function isFrozen(address target)
        external
        view
        returns (bool frozen)
    {
        return _frozen[target];
    }
}

File 5 of 7: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

abstract contract Ownable {
    address internal _owner;

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

    constructor() {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    modifier onlyOwner() {
        require(
            msg.sender == _owner,
            "Ownable : Function called by unauthorized user."
        );
        _;
    }

    function owner() external view returns (address ownerAddress) {
        ownerAddress = _owner;
    }

    function transferOwnership(address newOwner)
        public
        onlyOwner
        returns (bool success)
    {
        require(newOwner != address(0), "Ownable/transferOwnership : cannot transfer ownership to zero address");
        success = _transferOwnership(newOwner);
    }

    function renounceOwnership() external onlyOwner returns (bool success) {
        success = _transferOwnership(address(0));
    }

    function _transferOwnership(address newOwner) internal returns (bool success) {
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
        success = true;
    }
}

File 6 of 7: Pausable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

import "./Ownable.sol";

contract Pausable is Ownable {
    bool internal _paused;

    event Paused();
    event Unpaused();

    modifier whenPaused() {
        require(_paused, "Paused : This function can only be called when paused");
        _;
    }

    modifier whenNotPaused() {
        require(!_paused, "Paused : This function can only be called when not paused");
        _;
    }

    function pause() external onlyOwner whenNotPaused returns (bool success) {
        _paused = true;
        emit Paused();
        success = true;
    }

    function unPause() external onlyOwner whenPaused returns (bool success) {
        _paused = false;
        emit Unpaused();
        success = true;
    }

    function paused() external view returns (bool) {
        return _paused;
    }
}

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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burned","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"due","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"currentOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","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":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"burned","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"freeze","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"isFrozen","outputs":[{"internalType":"bool","name":"frozen","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"lockInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"due","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"ownerAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"releaseLock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"}],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"due","type":"uint256"}],"name":"transferWithLockUp","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"unFreeze","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unPause","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"unlockAll","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620000e433601260ff16600a620000c69190620002eb565b64012a05f200620000d8919062000428565b620000eb60201b60201c565b50620004cf565b600081600054620000fd919062000233565b60008190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000150919062000233565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051620001f3919062000216565b60405180910390a36001905092915050565b620002108162000489565b82525050565b60006020820190506200022d600083018462000205565b92915050565b6000620002408262000489565b91506200024d8362000489565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000285576200028462000493565b5b828201905092915050565b6000808291508390505b6001851115620002e257808604811115620002ba57620002b962000493565b5b6001851615620002ca5780820291505b8081029050620002da85620004c2565b94506200029a565b94509492505050565b6000620002f88262000489565b9150620003058362000489565b9250620003347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200033c565b905092915050565b6000826200034e576001905062000421565b816200035e576000905062000421565b81600181146200037757600281146200038257620003b8565b600191505062000421565b60ff84111562000397576200039662000493565b5b8360020a915084821115620003b157620003b062000493565b5b5062000421565b5060208310610133831016604e8410600b8410161715620003f25782820a905083811115620003ec57620003eb62000493565b5b62000421565b62000401848484600162000290565b925090508184048111156200041b576200041a62000493565b5b81810290505b9392505050565b6000620004358262000489565b9150620004428362000489565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200047e576200047d62000493565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6131b680620004df6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638456cb59116100de578063c4f3a85311610097578063dd62ed3e11610071578063dd62ed3e14610525578063e583983614610555578063f2fde38b14610585578063f7b188a5146105b55761018e565b8063c4f3a85314610494578063d1c46916146104c4578063d8fb9337146104f45761018e565b80638456cb59146103a95780638d1fdf2f146103c75780638da5cb5b146103f757806395d89b4114610415578063a9059cbb14610433578063b2520a7c146104635761018e565b806342966c681161014b578063715018a611610125578063715018a6146102fb57806379cc6790146103195780637eee288d1461034957806383cfab42146103795761018e565b806342966c681461027d5780635c975abb146102ad57806370a08231146102cb5761018e565b806306fdde0314610193578063095ea7b3146101b157806318160ddd146101e157806323b872dd146101ff578063313ce5671461022f57806338b820921461024d575b600080fd5b61019b6105d3565b6040516101a89190612d50565b60405180910390f35b6101cb60048036038101906101c691906126c3565b610610565b6040516101d89190612d35565b60405180910390f35b6101e9610697565b6040516101f69190612f12565b60405180910390f35b61021960048036038101906102149190612674565b6106a0565b6040516102269190612d35565b60405180910390f35b61023761096b565b6040516102449190612f56565b60405180910390f35b610267600480360381019061026291906126ff565b610974565b6040516102749190612d35565b60405180910390f35b6102976004803603810190610292919061274e565b610a99565b6040516102a49190612d35565b60405180910390f35b6102b5610b4e565b6040516102c29190612d35565b60405180910390f35b6102e560048036038101906102e0919061260f565b610b65565b6040516102f29190612f12565b60405180910390f35b610303610bae565b6040516103109190612d35565b60405180910390f35b610333600480360381019061032e91906126c3565b610c4f565b6040516103409190612d35565b60405180910390f35b610363600480360381019061035e91906126c3565b610d94565b6040516103709190612d35565b60405180910390f35b610393600480360381019061038e919061260f565b610e72565b6040516103a09190612d35565b60405180910390f35b6103b1610fa8565b6040516103be9190612d35565b60405180910390f35b6103e160048036038101906103dc919061260f565b6110d8565b6040516103ee9190612d35565b60405180910390f35b6103ff61120e565b60405161040c9190612d1a565b60405180910390f35b61041d611238565b60405161042a9190612d50565b60405180910390f35b61044d600480360381019061044891906126c3565b611275565b60405161045a9190612d35565b60405180910390f35b61047d600480360381019061047891906126c3565b6114ac565b60405161048b929190612f2d565b60405180910390f35b6104ae60048036038101906104a9919061260f565b61156d565b6040516104bb9190612d35565b60405180910390f35b6104de60048036038101906104d9919061260f565b6116a3565b6040516104eb9190612d35565b60405180910390f35b61050e6004803603810190610509919061260f565b6117c9565b60405161051c929190612f2d565b60405180910390f35b61053f600480360381019061053a9190612638565b611858565b60405161054c9190612f12565b60405180910390f35b61056f600480360381019061056a919061260f565b6118df565b60405161057c9190612d35565b60405180910390f35b61059f600480360381019061059a919061260f565b611935565b6040516105ac9190612d35565b60405180910390f35b6105bd611a47565b6040516105ca9190612d35565b60405180910390f35b60606040518060400160405280600681526020017f504f504b4f4e0000000000000000000000000000000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067890612d92565b60405180910390fd5b61068c338484611b76565b506001905092915050565b60008054905090565b600083600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072790612eb2565b60405180910390fd5b600660009054906101000a900460ff1615610780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077790612e32565b60405180910390fd5b848380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107cd9190612f8d565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590612e92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590612e12565b60405180910390fd5b6108c9878787611c69565b5061095c873387600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109579190612fe3565b611b76565b50600193505050509392505050565b60006012905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd90612e52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6d90612d72565b60405180910390fd5b610a81338585611c69565b50610a8d848484611df7565b50600190509392505050565b6000600660009054906101000a900460ff1615610aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae290612e32565b60405180910390fd5b610af53383612083565b90503373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610b3d9190612f12565b60405180910390a260019050919050565b6000600660009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3790612e52565b60405180910390fd5b610c4a6000612197565b905090565b6000600660009054906101000a900460ff1615610ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9890612e32565b60405180910390fd5b610cab8383612083565b508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca583604051610cf29190612f12565b60405180910390a2610d8c833384600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d879190612fe3565b611b76565b905092915050565b600042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110610e0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410610e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5790612df2565b60405180910390fd5b610e6a838361225f565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb90612e52565b60405180910390fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190612e52565b60405180910390fd5b600660009054906101000a900460ff161561108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612e32565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055507f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75260405160405180910390a16001905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190612e52565b60405180910390fd5b6001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f504f504b00000000000000000000000000000000000000000000000000000000815250905090565b600033600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc90612eb2565b60405180910390fd5b600660009054906101000a900460ff1615611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612e32565b60405180910390fd5b338380600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113a29190612f8d565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90612e72565b60405180910390fd5b61149e338787611c69565b506001935050505092915050565b6000806000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611528577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b600080600090505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156116995780806115ca906130c9565b91505042600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018361161a9190612fe3565b81548110611651577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015410156116945761167f8360018361167a9190612fe3565b61225f565b1561169357808061168f9061309f565b9150505b5b611575565b5060019050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90612e52565b60405180910390fd5b60005b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156117bf57808061178d906130c9565b9150506117a6836001836117a19190612fe3565b61225f565b156117ba5780806117b69061309f565b9150505b611738565b5060019050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119be90612e52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e90612ef2565b60405180910390fd5b611a4082612197565b9050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad090612e52565b60405180910390fd5b600660009054906101000a900460ff16611b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1f90612ed2565b60405180910390fd5b6000600660006101000a81548160ff0219169083151502179055507fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693360405160405180910390a16001905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611c569190612f12565b60405180910390a3600190509392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb69190612fe3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d449190612f8d565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de49190612f12565b60405180910390a3600190509392505050565b6000428211611e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3290612dd2565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611e869190612f8d565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe90612db2565b60405180910390fd5b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f529190612f8d565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280858152602001848152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051612070929190612f2d565b60405180910390a2600190509392505050565b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d09190612fe3565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000546121219190612fe3565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121859190612f12565b60405180910390a36001905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106122d9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020190508060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123389190612fe3565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f182600001546040516123c59190612f12565b60405180910390a2600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061245b9190612fe3565b81548110612492577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110612517577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016000820154816000015560018201548160010155905050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806125b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b6000813590506125f481613152565b92915050565b60008135905061260981613169565b92915050565b60006020828403121561262157600080fd5b600061262f848285016125e5565b91505092915050565b6000806040838503121561264b57600080fd5b6000612659858286016125e5565b925050602061266a858286016125e5565b9150509250929050565b60008060006060848603121561268957600080fd5b6000612697868287016125e5565b93505060206126a8868287016125e5565b92505060406126b9868287016125fa565b9150509250925092565b600080604083850312156126d657600080fd5b60006126e4858286016125e5565b92505060206126f5858286016125fa565b9150509250929050565b60008060006060848603121561271457600080fd5b6000612722868287016125e5565b9350506020612733868287016125fa565b9250506040612744868287016125fa565b9150509250925092565b60006020828403121561276057600080fd5b600061276e848285016125fa565b91505092915050565b61278081613017565b82525050565b61278f81613029565b82525050565b60006127a082612f71565b6127aa8185612f7c565b93506127ba81856020860161306c565b6127c381613141565b840191505092915050565b60006127db603e83612f7c565b91507f45524332304c6f636b61626c652f7472616e73666572576974684c6f636b557060008301527f203a2043616e6e6f742073656e6420746f207a65726f206164647265737300006020830152604082019050919050565b6000612841602983612f7c565b91507f617070726f7665203a2053686f756c64206e6f7420617070726f7665207a657260008301527f6f206164647265737300000000000000000000000000000000000000000000006020830152604082019050919050565b60006128a7604083612f7c565b91507f45524332304c6f636b61626c652f6c6f636b203a206c6f636b656420746f746160008301527f6c2073686f756c6420626520736d616c6c6572207468616e2062616c616e63656020830152604082019050919050565b600061290d602b83612f7c565b91507f45524332304c6f636b61626c652f6c6f636b203a2043616e6e6f74207365742060008301527f64756520746f20706173740000000000000000000000000000000000000000006020830152604082019050919050565b6000612973602e83612f7c565b91507f45524332304c6f636b61626c652f756e6c6f636b3a2063616e6e6f7420756e6c60008301527f6f636b206265666f7265206475650000000000000000000000000000000000006020830152604082019050919050565b60006129d9602e83612f7c565b91507f7472616e7366657246726f6d203a2053686f756c64206e6f742073656e64207460008301527f6f207a65726f20616464726573730000000000000000000000000000000000006020830152604082019050919050565b6000612a3f603983612f7c565b91507f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008301527f62652063616c6c6564207768656e206e6f7420706175736564000000000000006020830152604082019050919050565b6000612aa5602f83612f7c565b91507f4f776e61626c65203a2046756e6374696f6e2063616c6c656420627920756e6160008301527f7574686f72697a656420757365722e00000000000000000000000000000000006020830152604082019050919050565b6000612b0b602a83612f7c565b91507f7472616e73666572203a2053686f756c64206e6f742073656e6420746f207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b71603383612f7c565b91507f45524332304c6f636b61626c652f43616e6e6f742073656e64206d6f7265207460008301527f68616e20756e6c6f636b656420616d6f756e74000000000000000000000000006020830152604082019050919050565b6000612bd7601c83612f7c565b91507f467265657a61626c65203a207461726765742069732066726f7a656e000000006000830152602082019050919050565b6000612c17603583612f7c565b91507f506175736564203a20546869732066756e6374696f6e2063616e206f6e6c792060008301527f62652063616c6c6564207768656e2070617573656400000000000000000000006020830152604082019050919050565b6000612c7d604583612f7c565b91507f4f776e61626c652f7472616e736665724f776e657273686970203a2063616e6e60008301527f6f74207472616e73666572206f776e65727368697020746f207a65726f20616460208301527f64726573730000000000000000000000000000000000000000000000000000006040830152606082019050919050565b612d0581613055565b82525050565b612d148161305f565b82525050565b6000602082019050612d2f6000830184612777565b92915050565b6000602082019050612d4a6000830184612786565b92915050565b60006020820190508181036000830152612d6a8184612795565b905092915050565b60006020820190508181036000830152612d8b816127ce565b9050919050565b60006020820190508181036000830152612dab81612834565b9050919050565b60006020820190508181036000830152612dcb8161289a565b9050919050565b60006020820190508181036000830152612deb81612900565b9050919050565b60006020820190508181036000830152612e0b81612966565b9050919050565b60006020820190508181036000830152612e2b816129cc565b9050919050565b60006020820190508181036000830152612e4b81612a32565b9050919050565b60006020820190508181036000830152612e6b81612a98565b9050919050565b60006020820190508181036000830152612e8b81612afe565b9050919050565b60006020820190508181036000830152612eab81612b64565b9050919050565b60006020820190508181036000830152612ecb81612bca565b9050919050565b60006020820190508181036000830152612eeb81612c0a565b9050919050565b60006020820190508181036000830152612f0b81612c70565b9050919050565b6000602082019050612f276000830184612cfc565b92915050565b6000604082019050612f426000830185612cfc565b612f4f6020830184612cfc565b9392505050565b6000602082019050612f6b6000830184612d0b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612f9882613055565b9150612fa383613055565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fd857612fd7613112565b5b828201905092915050565b6000612fee82613055565b9150612ff983613055565b92508282101561300c5761300b613112565b5b828203905092915050565b600061302282613035565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561308a57808201518184015260208101905061306f565b83811115613099576000848401525b50505050565b60006130aa82613055565b915060008214156130be576130bd613112565b5b600182039050919050565b60006130d482613055565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561310757613106613112565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b61315b81613017565b811461316657600080fd5b50565b61317281613055565b811461317d57600080fd5b5056fea2646970667358221220285a950c1a1bda2013402dba5cb593007c53d14fa4b103041e2364632b9d731a64736f6c63430008000033

Deployed ByteCode Sourcemap

178:2065:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1881:109;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1546:327;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1760:100:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;995:543:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2123:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2498:408:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;229:227:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;804:80:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1866:119:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;946:130:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;464:345:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1614:225:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;577:207:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;476:155:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;399:170:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;539:102:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1998:117:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;575:412;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2914:240:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1847:345;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2200:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3162:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1993:183:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;792:143:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;649:289:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;639:157:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1881:109:5;1929:23;1977:5;;;;;;;;;;;;;;;;;1965:17;;1881:109;:::o;1546:327::-;1650:12;1721:1;1702:21;;:7;:21;;;;1680:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;1803:37;1812:10;1824:7;1833:6;1803:8;:37::i;:::-;;1861:4;1851:14;;1546:327;;;;:::o;1760:100:0:-;1806:13;1840:12;;1832:20;;1760:100;:::o;995:543:5:-;1198:12;1118:4;323:7:3;:15;331:6;323:15;;;;;;;;;;;;;;;;;;;;;;;;;322:16;314:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;379:7:6::1;;;;;;;;;;;378:8;370:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;1166:4:5::2;1172:6;593::2;572:12;:18;585:4;572:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;553:9;:15;563:4;553:15;;;;;;;;;;;;;;;;:46;;545:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;1264:1:5::3;1250:16;;:2;:16;;;;1228:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;1351:27;1361:4;1367:2;1371:6;1351:9;:27::i;:::-;;1389:116;1412:4;1431:10;1488:6;1456:11;:17;1468:4;1456:17;;;;;;;;;;;;;;;:29;1474:10;1456:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;1389:8;:116::i;:::-;;1526:4;1516:14;;459:1:6::2;;995:543:5::0;;;;;;:::o;2123:117::-;2175:19;389:2;2207:25;;2123:117;:::o;2498:408:2:-;2617:12;430:6:4;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;2690:1:2::1;2669:23;;:9;:23;;;;2647:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;2793:40;2803:10;2815:9;2826:6;2793:9;:40::i;:::-;;2844:29;2850:9;2861:6;2869:3;2844:5;:29::i;:::-;;2894:4;2884:14;;2498:408:::0;;;;;:::o;229:227:1:-;318:12;379:7:6;;;;;;;;;;;378:8;370:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;358:25:1::1;364:10;376:6;358:5;:25::i;:::-;348:35;;404:10;399:24;;;416:6;399:24;;;;;;:::i;:::-;;;;;;;;444:4;434:14;;229:227:::0;;;:::o;804:80:6:-;845:4;869:7;;;;;;;;;;;862:14;;804:80;:::o;1866:119:0:-;1923:15;1961:9;:16;1971:5;1961:16;;;;;;;;;;;;;;;;1951:26;;1866:119;;;:::o;946:130:4:-;1003:12;430:6;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;1038:30:::1;1065:1;1038:18;:30::i;:::-;1028:40;;946:130:::0;:::o;464:345:1:-;573:12;379:7:6;;;;;;;;;;;378:8;370:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;603:21:1::1;609:6;617;603:5;:21::i;:::-;;645:6;640:20;;;653:6;640:20;;;;;;:::i;:::-;;;;;;;;681:120;704:6;725:10;784:6;750:11;:19;762:6;750:19;;;;;;;;;;;;;;;:31;770:10;750:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;681:8;:120::i;:::-;671:130;;464:345:::0;;;;:::o;1614:225:2:-;1674:12;1730:15;1706:6;:12;1713:4;1706:12;;;;;;;;;;;;;;;1719:3;1706:17;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;:39;1698:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;1813:18;1821:4;1827:3;1813:7;:18::i;:::-;1806:25;;1614:225;;;;:::o;577:207:3:-;666:12;430:6:4;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;714:5:3::1;696:7;:15;704:6;696:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;744:6;735:16;;;;;;;;;;;;772:4;762:14;;577:207:::0;;;:::o;476:155:6:-;535:12;430:6:4;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;379:7:6::1;;;;;;;;;;;378:8;370:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;570:4:::2;560:7;;:14;;;;;;;;;;;;;;;;;;590:8;;;;;;;;;;619:4;609:14;;476:155:::0;:::o;399:170:3:-;459:12;430:6:4;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;502:4:3::1;484:7;:15;492:6;484:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;529:6;522:14;;;;;;;;;;;;557:4;547:14;;399:170:::0;;;:::o;539:102:4:-;579:20;627:6;;;;;;;;;;;612:21;;539:102;:::o;1998:117:5:-;2048:25;2100:7;;;;;;;;;;;;;;;;;2086:21;;1998:117;:::o;575:412::-;772:12;680:10;323:7:3;:15;331:6;323:15;;;;;;;;;;;;;;;;;;;;;;;;;322:16;314:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;379:7:6::1;;;;;;;;;;;378:8;370:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;734:10:5::2;746:6;593::2;572:12;:18;585:4;572:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;553:9;:15;563:4;553:15;;;;;;;;;;;;;;;;:46;;545:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;838:1:5::3;824:16;;:2;:16;;;;802:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;921:33;931:10;943:2;947:6;921:9;:33::i;:::-;;975:4;965:14;;459:1:6::2;;575:412:5::0;;;;;:::o;2914:240:2:-;3001:14;3017:11;3046:20;3069:6;:14;3076:6;3069:14;;;;;;;;;;;;;;;3084:5;3069:21;;;;;;;;;;;;;;;;;;;;;;;;;;3046:44;;;;;;;;;;;;;;;;;;;;;;;;;;;3110:4;:11;;;3101:20;;3138:4;:8;;;3132:14;;2914:240;;;;;;:::o;1847:345::-;1898:12;1927:9;1939:1;1927:13;;1923:237;1946:6;:12;1953:4;1946:12;;;;;;;;;;;;;;;:19;;;;1942:1;:23;1923:237;;;1982:3;;;;;:::i;:::-;;;;2029:15;2003:6;:12;2010:4;2003:12;;;;;;;;;;;;;;;2020:1;2016;:5;;;;:::i;:::-;2003:19;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;:41;2000:149;;;2067:20;2075:4;2085:1;2081;:5;;;;:::i;:::-;2067:7;:20::i;:::-;2064:70;;;2111:3;;;;;:::i;:::-;;;;2064:70;2000:149;1923:237;;;;2180:4;2170:14;;1847:345;;;:::o;2200:290::-;2278:12;430:6:4;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;2312:9:2::1;2308:150;2331:6;:12;2338:4;2331:12;;;;;;;;;;;;;;;:19;;;;2327:1;:23;2308:150;;;2367:3;;;;;:::i;:::-;;;;2388:20;2396:4;2406:1;2402;:5;;;;:::i;:::-;2388:7;:20::i;:::-;2385:62;;;2428:3;;;;;:::i;:::-;;;;2385:62;2308:150;;;;2478:4;2468:14;;2200:290:::0;;;:::o;3162:179::-;3221:14;3237;3272:12;:20;3285:6;3272:20;;;;;;;;;;;;;;;;3263:29;;3312:6;:14;3319:6;3312:14;;;;;;;;;;;;;;;:21;;;;3303:30;;3162:179;;;:::o;1993:183:0:-;2094:17;2141:11;:18;2153:5;2141:18;;;;;;;;;;;;;;;:27;2160:7;2141:27;;;;;;;;;;;;;;;;2129:39;;1993:183;;;;:::o;792:143:3:-;876:11;912:7;:15;920:6;912:15;;;;;;;;;;;;;;;;;;;;;;;;;905:22;;792:143;;;:::o;649:289:4:-;747:12;430:6;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;805:1:::1;785:22;;:8;:22;;;;777:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;902:28;921:8;902:18;:28::i;:::-;892:38;;649:289:::0;;;:::o;639:157:6:-;697:12;430:6:4;;;;;;;;;;;416:20;;:10;:20;;;394:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;241:7:6::1;;;;;;;;;;;233:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;732:5:::2;722:7;;:15;;;;;;;;;;;;;;;;;;753:10;;;;;;;;;;784:4;774:14;;639:157:::0;:::o;828:249:0:-;930:12;990:6;960:11;:18;972:5;960:18;;;;;;;;;;;;;;;:27;979:7;960:27;;;;;;;;;;;;;;;:36;;;;1028:7;1012:32;;1021:5;1012:32;;;1037:6;1012:32;;;;;;:::i;:::-;;;;;;;;1065:4;1055:14;;828:249;;;;;:::o;527:293::-;624:12;690:6;672:9;:15;682:4;672:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;654:9;:15;664:4;654:15;;;;;;;;;;;;;;;:42;;;;739:6;723:9;:13;733:2;723:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;707:9;:13;717:2;707:13;;;;;;;;;;;;;;;:38;;;;776:2;761:26;;770:4;761:26;;;780:6;761:26;;;;;;:::i;:::-;;;;;;;;808:4;798:14;;527:293;;;;;:::o;683:546:2:-;769:12;813:15;807:3;:21;799:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;937:12;:18;950:4;937:18;;;;;;;;;;;;;;;;928:6;:27;;;;:::i;:::-;909:9;:15;919:4;909:15;;;;;;;;;;;;;;;;:46;;887:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;1100:6;1079:12;:18;1092:4;1079:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;1058:12;:18;1071:4;1058:18;;;;;;;;;;;;;;;:48;;;;1117:6;:12;1124:4;1117:12;;;;;;;;;;;;;;;1135:21;;;;;;;;1144:6;1135:21;;;;1152:3;1135:21;;;1117:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1178:4;1173:23;;;1184:6;1192:3;1173:23;;;;;;;:::i;:::-;;;;;;;;1217:4;1207:14;;683:546;;;;;:::o;1396:291:0:-;1479:12;1549:6;1529:9;:17;1539:6;1529:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;1509:9;:17;1519:6;1509:17;;;;;;;;;;;;;;;:46;;;;1596:6;1581:12;;:21;;;;:::i;:::-;1566:12;:36;;;;1643:1;1618:36;;1627:6;1618:36;;;1647:6;1618:36;;;;;;:::i;:::-;;;;;;;;1675:4;1665:14;;1396:291;;;;:::o;1084:193:4:-;1148:12;1207:8;1178:38;;1199:6;;;;;;;;;;;1178:38;;;;;;;;;;;;1236:8;1227:6;;:17;;;;;;;;;;;;;;;;;;1265:4;1255:14;;1084:193;;;:::o;1237:369:2:-;1301:12;1326:21;1350:6;:12;1357:4;1350:12;;;;;;;;;;;;;;;1363:5;1350:19;;;;;;;;;;;;;;;;;;;;;;;;;;1326:43;;1422:4;:11;;;1401:12;:18;1414:4;1401:18;;;;;;;;;;;;;;;;:32;;;;:::i;:::-;1380:12;:18;1393:4;1380:18;;;;;;;;;;;;;;;:53;;;;1456:4;1449:25;;;1462:4;:11;;;1449:25;;;;;;:::i;:::-;;;;;;;;1507:6;:12;1514:4;1507:12;;;;;;;;;;;;;;;1542:1;1520:6;:12;1527:4;1520:12;;;;;;;;;;;;;;;:19;;;;:23;;;;:::i;:::-;1507:37;;;;;;;;;;;;;;;;;;;;;;;;;;1485:6;:12;1492:4;1485:12;;;;;;;;;;;;;;;1498:5;1485:19;;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;1555:6;:12;1562:4;1555:12;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:4;1584:14;;1237:369;;;;;:::o;7:139:7:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:552::-;;;;2091:2;2079:9;2070:7;2066:23;2062:32;2059:2;;;2107:1;2104;2097:12;2059:2;2150:1;2175:53;2220:7;2211:6;2200:9;2196:22;2175:53;:::i;:::-;2165:63;;2121:117;2277:2;2303:53;2348:7;2339:6;2328:9;2324:22;2303:53;:::i;:::-;2293:63;;2248:118;2405:2;2431:53;2476:7;2467:6;2456:9;2452:22;2431:53;:::i;:::-;2421:63;;2376:118;2049:452;;;;;:::o;2507:262::-;;2615:2;2603:9;2594:7;2590:23;2586:32;2583:2;;;2631:1;2628;2621:12;2583:2;2674:1;2699:53;2744:7;2735:6;2724:9;2720:22;2699:53;:::i;:::-;2689:63;;2645:117;2573:196;;;;:::o;2775:118::-;2862:24;2880:5;2862:24;:::i;:::-;2857:3;2850:37;2840:53;;:::o;2899:109::-;2980:21;2995:5;2980:21;:::i;:::-;2975:3;2968:34;2958:50;;:::o;3014:364::-;;3130:39;3163:5;3130:39;:::i;:::-;3185:71;3249:6;3244:3;3185:71;:::i;:::-;3178:78;;3265:52;3310:6;3305:3;3298:4;3291:5;3287:16;3265:52;:::i;:::-;3342:29;3364:6;3342:29;:::i;:::-;3337:3;3333:39;3326:46;;3106:272;;;;;:::o;3384:394::-;;3547:67;3611:2;3606:3;3547:67;:::i;:::-;3540:74;;3644:34;3640:1;3635:3;3631:11;3624:55;3710:32;3705:2;3700:3;3696:12;3689:54;3769:2;3764:3;3760:12;3753:19;;3530:248;;;:::o;3784:373::-;;3947:67;4011:2;4006:3;3947:67;:::i;:::-;3940:74;;4044:34;4040:1;4035:3;4031:11;4024:55;4110:11;4105:2;4100:3;4096:12;4089:33;4148:2;4143:3;4139:12;4132:19;;3930:227;;;:::o;4163:396::-;;4326:67;4390:2;4385:3;4326:67;:::i;:::-;4319:74;;4423:34;4419:1;4414:3;4410:11;4403:55;4489:34;4484:2;4479:3;4475:12;4468:56;4550:2;4545:3;4541:12;4534:19;;4309:250;;;:::o;4565:375::-;;4728:67;4792:2;4787:3;4728:67;:::i;:::-;4721:74;;4825:34;4821:1;4816:3;4812:11;4805:55;4891:13;4886:2;4881:3;4877:12;4870:35;4931:2;4926:3;4922:12;4915:19;;4711:229;;;:::o;4946:378::-;;5109:67;5173:2;5168:3;5109:67;:::i;:::-;5102:74;;5206:34;5202:1;5197:3;5193:11;5186:55;5272:16;5267:2;5262:3;5258:12;5251:38;5315:2;5310:3;5306:12;5299:19;;5092:232;;;:::o;5330:378::-;;5493:67;5557:2;5552:3;5493:67;:::i;:::-;5486:74;;5590:34;5586:1;5581:3;5577:11;5570:55;5656:16;5651:2;5646:3;5642:12;5635:38;5699:2;5694:3;5690:12;5683:19;;5476:232;;;:::o;5714:389::-;;5877:67;5941:2;5936:3;5877:67;:::i;:::-;5870:74;;5974:34;5970:1;5965:3;5961:11;5954:55;6040:27;6035:2;6030:3;6026:12;6019:49;6094:2;6089:3;6085:12;6078:19;;5860:243;;;:::o;6109:379::-;;6272:67;6336:2;6331:3;6272:67;:::i;:::-;6265:74;;6369:34;6365:1;6360:3;6356:11;6349:55;6435:17;6430:2;6425:3;6421:12;6414:39;6479:2;6474:3;6470:12;6463:19;;6255:233;;;:::o;6494:374::-;;6657:67;6721:2;6716:3;6657:67;:::i;:::-;6650:74;;6754:34;6750:1;6745:3;6741:11;6734:55;6820:12;6815:2;6810:3;6806:12;6799:34;6859:2;6854:3;6850:12;6843:19;;6640:228;;;:::o;6874:383::-;;7037:67;7101:2;7096:3;7037:67;:::i;:::-;7030:74;;7134:34;7130:1;7125:3;7121:11;7114:55;7200:21;7195:2;7190:3;7186:12;7179:43;7248:2;7243:3;7239:12;7232:19;;7020:237;;;:::o;7263:326::-;;7426:67;7490:2;7485:3;7426:67;:::i;:::-;7419:74;;7523:30;7519:1;7514:3;7510:11;7503:51;7580:2;7575:3;7571:12;7564:19;;7409:180;;;:::o;7595:385::-;;7758:67;7822:2;7817:3;7758:67;:::i;:::-;7751:74;;7855:34;7851:1;7846:3;7842:11;7835:55;7921:23;7916:2;7911:3;7907:12;7900:45;7971:2;7966:3;7962:12;7955:19;;7741:239;;;:::o;7986:435::-;;8149:67;8213:2;8208:3;8149:67;:::i;:::-;8142:74;;8246:34;8242:1;8237:3;8233:11;8226:55;8312:34;8307:2;8302:3;8298:12;8291:56;8378:7;8373:2;8368:3;8364:12;8357:29;8412:2;8407:3;8403:12;8396:19;;8132:289;;;:::o;8427:118::-;8514:24;8532:5;8514:24;:::i;:::-;8509:3;8502:37;8492:53;;:::o;8551:112::-;8634:22;8650:5;8634:22;:::i;:::-;8629:3;8622:35;8612:51;;:::o;8669:222::-;;8800:2;8789:9;8785:18;8777:26;;8813:71;8881:1;8870:9;8866:17;8857:6;8813:71;:::i;:::-;8767:124;;;;:::o;8897:210::-;;9022:2;9011:9;9007:18;8999:26;;9035:65;9097:1;9086:9;9082:17;9073:6;9035:65;:::i;:::-;8989:118;;;;:::o;9113:313::-;;9264:2;9253:9;9249:18;9241:26;;9313:9;9307:4;9303:20;9299:1;9288:9;9284:17;9277:47;9341:78;9414:4;9405:6;9341:78;:::i;:::-;9333:86;;9231:195;;;;:::o;9432:419::-;;9636:2;9625:9;9621:18;9613:26;;9685:9;9679:4;9675:20;9671:1;9660:9;9656:17;9649:47;9713:131;9839:4;9713:131;:::i;:::-;9705:139;;9603:248;;;:::o;9857:419::-;;10061:2;10050:9;10046:18;10038:26;;10110:9;10104:4;10100:20;10096:1;10085:9;10081:17;10074:47;10138:131;10264:4;10138:131;:::i;:::-;10130:139;;10028:248;;;:::o;10282:419::-;;10486:2;10475:9;10471:18;10463:26;;10535:9;10529:4;10525:20;10521:1;10510:9;10506:17;10499:47;10563:131;10689:4;10563:131;:::i;:::-;10555:139;;10453:248;;;:::o;10707:419::-;;10911:2;10900:9;10896:18;10888:26;;10960:9;10954:4;10950:20;10946:1;10935:9;10931:17;10924:47;10988:131;11114:4;10988:131;:::i;:::-;10980:139;;10878:248;;;:::o;11132:419::-;;11336:2;11325:9;11321:18;11313:26;;11385:9;11379:4;11375:20;11371:1;11360:9;11356:17;11349:47;11413:131;11539:4;11413:131;:::i;:::-;11405:139;;11303:248;;;:::o;11557:419::-;;11761:2;11750:9;11746:18;11738:26;;11810:9;11804:4;11800:20;11796:1;11785:9;11781:17;11774:47;11838:131;11964:4;11838:131;:::i;:::-;11830:139;;11728:248;;;:::o;11982:419::-;;12186:2;12175:9;12171:18;12163:26;;12235:9;12229:4;12225:20;12221:1;12210:9;12206:17;12199:47;12263:131;12389:4;12263:131;:::i;:::-;12255:139;;12153:248;;;:::o;12407:419::-;;12611:2;12600:9;12596:18;12588:26;;12660:9;12654:4;12650:20;12646:1;12635:9;12631:17;12624:47;12688:131;12814:4;12688:131;:::i;:::-;12680:139;;12578:248;;;:::o;12832:419::-;;13036:2;13025:9;13021:18;13013:26;;13085:9;13079:4;13075:20;13071:1;13060:9;13056:17;13049:47;13113:131;13239:4;13113:131;:::i;:::-;13105:139;;13003:248;;;:::o;13257:419::-;;13461:2;13450:9;13446:18;13438:26;;13510:9;13504:4;13500:20;13496:1;13485:9;13481:17;13474:47;13538:131;13664:4;13538:131;:::i;:::-;13530:139;;13428:248;;;:::o;13682:419::-;;13886:2;13875:9;13871:18;13863:26;;13935:9;13929:4;13925:20;13921:1;13910:9;13906:17;13899:47;13963:131;14089:4;13963:131;:::i;:::-;13955:139;;13853:248;;;:::o;14107:419::-;;14311:2;14300:9;14296:18;14288:26;;14360:9;14354:4;14350:20;14346:1;14335:9;14331:17;14324:47;14388:131;14514:4;14388:131;:::i;:::-;14380:139;;14278:248;;;:::o;14532:419::-;;14736:2;14725:9;14721:18;14713:26;;14785:9;14779:4;14775:20;14771:1;14760:9;14756:17;14749:47;14813:131;14939:4;14813:131;:::i;:::-;14805:139;;14703:248;;;:::o;14957:222::-;;15088:2;15077:9;15073:18;15065:26;;15101:71;15169:1;15158:9;15154:17;15145:6;15101:71;:::i;:::-;15055:124;;;;:::o;15185:332::-;;15344:2;15333:9;15329:18;15321:26;;15357:71;15425:1;15414:9;15410:17;15401:6;15357:71;:::i;:::-;15438:72;15506:2;15495:9;15491:18;15482:6;15438:72;:::i;:::-;15311:206;;;;;:::o;15523:214::-;;15650:2;15639:9;15635:18;15627:26;;15663:67;15727:1;15716:9;15712:17;15703:6;15663:67;:::i;:::-;15617:120;;;;:::o;15743:99::-;;15829:5;15823:12;15813:22;;15802:40;;;:::o;15848:169::-;;15966:6;15961:3;15954:19;16006:4;16001:3;15997:14;15982:29;;15944:73;;;;:::o;16023:305::-;;16082:20;16100:1;16082:20;:::i;:::-;16077:25;;16116:20;16134:1;16116:20;:::i;:::-;16111:25;;16270:1;16202:66;16198:74;16195:1;16192:81;16189:2;;;16276:18;;:::i;:::-;16189:2;16320:1;16317;16313:9;16306:16;;16067:261;;;;:::o;16334:191::-;;16394:20;16412:1;16394:20;:::i;:::-;16389:25;;16428:20;16446:1;16428:20;:::i;:::-;16423:25;;16467:1;16464;16461:8;16458:2;;;16472:18;;:::i;:::-;16458:2;16517:1;16514;16510:9;16502:17;;16379:146;;;;:::o;16531:96::-;;16597:24;16615:5;16597:24;:::i;:::-;16586:35;;16576:51;;;:::o;16633:90::-;;16710:5;16703:13;16696:21;16685:32;;16675:48;;;:::o;16729:126::-;;16806:42;16799:5;16795:54;16784:65;;16774:81;;;:::o;16861:77::-;;16927:5;16916:16;;16906:32;;;:::o;16944:86::-;;17019:4;17012:5;17008:16;16997:27;;16987:43;;;:::o;17036:307::-;17104:1;17114:113;17128:6;17125:1;17122:13;17114:113;;;17213:1;17208:3;17204:11;17198:18;17194:1;17189:3;17185:11;17178:39;17150:2;17147:1;17143:10;17138:15;;17114:113;;;17245:6;17242:1;17239:13;17236:2;;;17325:1;17316:6;17311:3;17307:16;17300:27;17236:2;17085:258;;;;:::o;17349:171::-;;17411:24;17429:5;17411:24;:::i;:::-;17402:33;;17457:4;17450:5;17447:15;17444:2;;;17465:18;;:::i;:::-;17444:2;17512:1;17505:5;17501:13;17494:20;;17392:128;;;:::o;17526:233::-;;17588:24;17606:5;17588:24;:::i;:::-;17579:33;;17634:66;17627:5;17624:77;17621:2;;;17704:18;;:::i;:::-;17621:2;17751:1;17744:5;17740:13;17733:20;;17569:190;;;:::o;17765:180::-;17813:77;17810:1;17803:88;17910:4;17907:1;17900:15;17934:4;17931:1;17924:15;17951:102;;18043:2;18039:7;18034:2;18027:5;18023:14;18019:28;18009:38;;17999:54;;;:::o;18059:122::-;18132:24;18150:5;18132:24;:::i;:::-;18125:5;18122:35;18112:2;;18171:1;18168;18161:12;18112:2;18102:79;:::o;18187:122::-;18260:24;18278:5;18260:24;:::i;:::-;18253:5;18250:35;18240:2;;18299:1;18296;18289:12;18240:2;18230:79;:::o

Swarm Source

ipfs://285a950c1a1bda2013402dba5cb593007c53d14fa4b103041e2364632b9d731a

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.