ETH Price: $3,063.54 (-1.29%)

Token

(0x9b0a29e23d4f1c0fa692c5fc73e05debe60579d2)
 

Overview

Max Total Supply

5,539

Holders

736

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0x51E7B44506BE6698a3Ca7060fE50e999BB302e7C
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:
ShinobiClub

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*


[̲̅忍̲̅]  [̲̅S̲̅][̲̅h̲̅][̲̅i̲̅][̲̅n̲̅][̲̅o̲̅][̲̅b̲̅][̲̅i̲̅]


Web Site - https://shinobiclub.online
Twitter - https://twitter.com/ShinobiClubNFT

*/

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

library Strings {
    bytes16 private constant alphabet = "0123456789abcdef";

    function toString(uint256 value) internal pure returns (string memory) {
      
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = alphabet[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "#43");
        return string(buffer);
    }

}

interface IERC165 {

    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}


interface IERC1155 is IERC165 {

    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

 
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

 
    event URI(string value, uint256 indexed id);


    function balanceOf(address account, uint256 id) external view returns (uint256);


    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
        external
        view
        returns (uint256[] memory);

    function setApprovalForAll(address operator, bool approved) external;

    function isApprovedForAll(address account, address operator) external view returns (bool);

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) external;

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

interface IERC1155Receiver is IERC165 {

    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}

interface IERC1155MetadataURI is IERC1155 {

    function uri(uint256 id) external view returns (string memory);
}

abstract contract ERC165 is IERC165 {

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {

        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _owner;

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


    constructor() {
        _transferOwnership(_msgSender());
    }


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


    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }


    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI, Ownable {
    using Address for address;
     using Strings for uint256;
    // Mapping from token ID to account balances
    mapping(uint256 => mapping(address => uint256)) private _balances;

    // Mapping from account to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
    string public _uri;

    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC1155).interfaceId ||
            interfaceId == type(IERC1155MetadataURI).interfaceId ||
            super.supportsInterface(interfaceId);
    }


    function uri(uint256 tokenId) public view virtual override returns (string memory) {
        string memory baseURI = _uri;
        return bytes(baseURI).length > 0
            ? string(abi.encodePacked(baseURI, tokenId.toString()))
            : 'uri not set';
    }
  

    function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
        require(account != address(0), "ERC1155: balance query for the zero address");
        return _balances[id][account];
    }


    function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
        public
        view
        virtual
        override
        returns (uint256[] memory)
    {
        require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");

        uint256[] memory batchBalances = new uint256[](accounts.length);

        for (uint256 i = 0; i < accounts.length; ++i) {
            batchBalances[i] = balanceOf(accounts[i], ids[i]);
        }

        return batchBalances;
    }


    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_msgSender(), operator, approved);
    }

    function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[account][operator];
    }


    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );
        _safeTransferFrom(from, to, id, amount, data);
    }

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: transfer caller is not owner nor approved"
        );
        _safeBatchTransferFrom(from, to, ids, amounts, data);
    }


    function _safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data);

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }
        _balances[id][to] += amount;

        emit TransferSingle(operator, from, to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
    }

    function _safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; ++i) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
            _balances[id][to] += amount;
        }

        emit TransferBatch(operator, from, to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
    }

    function _setURI(string memory newuri) internal virtual {
        _uri = newuri;
    }

    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, _asSingletonArray(id), _asSingletonArray(amount), data);

        _balances[id][to] += amount;
        emit TransferSingle(operator, address(0), to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
    }

    function _mintBatch(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; i++) {
            _balances[ids[i]][to] += amounts[i];
        }

        emit TransferBatch(operator, address(0), to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
    }

    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), _asSingletonArray(id), _asSingletonArray(amount), "");

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }

        emit TransferSingle(operator, from, address(0), id, amount);
    }


    function _burnBatch(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");

        for (uint256 i = 0; i < ids.length; i++) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
        }

        emit TransferBatch(operator, from, address(0), ids, amounts);
    }

    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC1155: setting approval status for self");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }


    function _beforeTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {}

    function _doSafeTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
                if (response != IERC1155Receiver.onERC1155Received.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _doSafeBatchTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (
                bytes4 response
            ) {
                if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;

        return array;
    }


    address payable internal  dev = payable(0x7A187dF18acb2155403ea15905981c23e1fd1154);
    address payable internal  promo = payable(0xFa513E01822D6252f6470D976087A71C49a453B6);
   
    function  _withdrawAll() internal virtual {
       uint256 balanceDev = address(this).balance*30/100;
       uint256 balancePromo = address(this).balance*15/100;
       uint256 balanceOwner = address(this).balance-balanceDev-balancePromo;
       payable(dev).transfer(balanceDev);
       payable(promo).transfer(balancePromo);
       payable(_msgSender()).transfer(balanceOwner);

    }

}

contract ShinobiClub is ERC1155 {
    string public name;
    string public symbol;
    uint public  MAX_TOKEN = 10000;
    uint public  MAX_WL_TOKEN = 2000;
    uint public  basePrice = 50*10**15; // ETH
    uint public  basePriceWl = 50*10**15; // ETH
	//string public _baseTokenURI;
	bool public saleEnable = false;
    bool public saleEnableWl = false;
    uint256 private _totalSupply;
    mapping(address => bool) private _whitelist;

    constructor (string memory name_, string memory symbol_, string memory uri_) {
        name = name_;
        symbol = symbol_;
        _uri = uri_;
    }
 
    function setsaleEnable(bool  _saleEnable) public onlyOwner {
         saleEnable = _saleEnable;
    }
    function setMaxToken(uint  _MAX_TOKEN) public onlyOwner {
         MAX_TOKEN = _MAX_TOKEN;
    }
    function setBasePrice(uint  _basePrice) public onlyOwner {
         basePrice = _basePrice;
    }
    function mint(address _to, uint _count) public payable {
        require(msg.sender == owner() || saleEnable, "Sale not enable");
        require(totalSupply() +_count <= MAX_TOKEN, "Exceeds limit");
        require(_count <= 50, "Exceeds 50");
        require(msg.value >= basePrice * _count || msg.sender == owner() , "Value below price");

        for(uint i = 0; i < _count; i++){
            _mint(_to, totalSupply(), 1, '');
            _totalSupply = _totalSupply + 1;
            }
    }

    function WLmint(address _to, uint _count) public payable {
        require(msg.sender == owner() || saleEnable, "Sale not enable");
        require(totalSupply() +_count <= MAX_TOKEN, "Exceeds limit");
        require(_count <= 50, "Exceeds 50");
        require(msg.value >= basePrice * _count || msg.sender == owner() , "Value below price");

        for(uint i = 0; i < _count; i++){
            _mint(_to, totalSupply(), 1, '');
            _totalSupply = _totalSupply + 1;
            }
    }

    function setsaleEnableWl(bool  _saleEnableWl) public onlyOwner {
         saleEnableWl = _saleEnableWl;
    }
    function setMaxTokenWL(uint  _MAX_WL_TOKEN) public onlyOwner {
         MAX_WL_TOKEN = _MAX_WL_TOKEN;
    }
    function setBasePriceWl(uint  _basePriceWl) public onlyOwner {
         basePriceWl = _basePriceWl;
    }
    function mintWhitelist(address _to, uint _count) public payable { 
        require(msg.sender == owner() || saleEnableWl, "Sale not enable");
        require(msg.sender == owner() || _whitelist[msg.sender] != true, "No whitelist");
        require(totalSupply() +_count <= MAX_WL_TOKEN, "Exceeds limit");
        require(_count <= 50, "Exceeds 50");
        require(msg.value >= basePriceWl * _count || msg.sender == owner() , "Value below price");

        for(uint i = 0; i < _count; i++){
            _mint(_to, totalSupply(), 1, '');
            _totalSupply = _totalSupply + 1;
            }
        _whitelist[msg.sender] = true;
    }

    function setBaseURI(string memory baseURI) public onlyOwner {
        _uri = baseURI;
    }
    function withdrawAll() public payable onlyOwner {
        _withdrawAll();
    }
    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"uri_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[],"name":"MAX_TOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_WL_TOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"WLmint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"_uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basePriceWl","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"mintWhitelist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"saleEnableWl","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_basePrice","type":"uint256"}],"name":"setBasePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_basePriceWl","type":"uint256"}],"name":"setBasePriceWl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MAX_TOKEN","type":"uint256"}],"name":"setMaxToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_MAX_WL_TOKEN","type":"uint256"}],"name":"setMaxTokenWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_saleEnable","type":"bool"}],"name":"setsaleEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_saleEnableWl","type":"bool"}],"name":"setsaleEnableWl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"payable","type":"function"}]

6080604052737a187df18acb2155403ea15905981c23e1fd1154600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fa513e01822d6252f6470d976087a71c49a453b6600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127106008556107d060095566b1a2bc2ec50000600a5566b1a2bc2ec50000600b556000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff0219169083151502179055503480156200011357600080fd5b5060405162004c9638038062004c968339818101604052810190620001399190620003a7565b620001596200014d620001ad60201b60201c565b620001b560201b60201c565b82600690805190602001906200017192919062000279565b5081600790805190602001906200018a92919062000279565b508060039080519060200190620001a392919062000279565b50505050620005e4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200028790620004f5565b90600052602060002090601f016020900481019282620002ab5760008555620002f7565b82601f10620002c657805160ff1916838001178555620002f7565b82800160010185558215620002f7579182015b82811115620002f6578251825591602001919060010190620002d9565b5b5090506200030691906200030a565b5090565b5b80821115620003255760008160009055506001016200030b565b5090565b6000620003406200033a8462000489565b62000460565b9050828152602081018484840111156200035f576200035e620005c4565b5b6200036c848285620004bf565b509392505050565b600082601f8301126200038c576200038b620005bf565b5b81516200039e84826020860162000329565b91505092915050565b600080600060608486031215620003c357620003c2620005ce565b5b600084015167ffffffffffffffff811115620003e457620003e3620005c9565b5b620003f28682870162000374565b935050602084015167ffffffffffffffff811115620004165762000415620005c9565b5b620004248682870162000374565b925050604084015167ffffffffffffffff811115620004485762000447620005c9565b5b620004568682870162000374565b9150509250925092565b60006200046c6200047f565b90506200047a82826200052b565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a757620004a662000590565b5b620004b282620005d3565b9050602081019050919050565b60005b83811015620004df578082015181840152602081019050620004c2565b83811115620004ef576000848401525b50505050565b600060028204905060018216806200050e57607f821691505b6020821081141562000525576200052462000561565b5b50919050565b6200053682620005d3565b810181811067ffffffffffffffff8211171562000558576200055762000590565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6146a280620005f46000396000f3fe6080604052600436106101d75760003560e01c80636e1bd32311610102578063df3df83f11610095578063f242432a11610064578063f242432a1461065f578063f2fde38b14610688578063fe4ca847146106b1578063ff7e8ea3146106dc576101d7565b8063df3df83f146105b2578063e03abf54146105ce578063e985e9c5146105f7578063eaae157614610634576101d7565b8063a22cb465116100d1578063a22cb4651461050c578063b02636fd14610535578063c7876ea41461055e578063de4b326214610589576101d7565b80636e1bd32314610481578063853828b6146104ac5780638da5cb5b146104b657806395d89b41146104e1576101d7565b806310751fc21161017a5780633b3bfd5a116101495780633b3bfd5a146103d657806340c10f19146103ff5780634e1273f41461041b57806355f804b314610458576101d7565b806310751fc21461032e57806318160ddd146103595780632e6f0d33146103845780632eb2c2d6146103ad576101d7565b806309acc2cb116101b657806309acc2cb146102815780630cf101af146102aa5780630dccc9ad146102c65780630e89341c146102f1576101d7565b8062fdd58e146101dc57806301ffc9a71461021957806306fdde0314610256575b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe91906131ee565b610707565b6040516102109190613b45565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906132d3565b6107d1565b60405161024d91906138c8565b60405180910390f35b34801561026257600080fd5b5061026b6108b3565b60405161027891906138e3565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190613376565b610941565b005b6102c460048036038101906102bf91906131ee565b6109c7565b005b3480156102d257600080fd5b506102db610bd6565b6040516102e891906138e3565b60405180910390f35b3480156102fd57600080fd5b5061031860048036038101906103139190613376565b610c64565b60405161032591906138e3565b60405180910390f35b34801561033a57600080fd5b50610343610d6c565b6040516103509190613b45565b60405180910390f35b34801561036557600080fd5b5061036e610d72565b60405161037b9190613b45565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a69190613376565b610d7c565b005b3480156103b957600080fd5b506103d460048036038101906103cf9190613048565b610e02565b005b3480156103e257600080fd5b506103fd60048036038101906103f89190613376565b610ea3565b005b610419600480360381019061041491906131ee565b610f29565b005b34801561042757600080fd5b50610442600480360381019061043d919061322e565b611138565b60405161044f919061386f565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a919061332d565b611251565b005b34801561048d57600080fd5b506104966112e7565b6040516104a39190613b45565b60405180910390f35b6104b46112ed565b005b3480156104c257600080fd5b506104cb611373565b6040516104d89190613792565b60405180910390f35b3480156104ed57600080fd5b506104f661139c565b60405161050391906138e3565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e91906131ae565b61142a565b005b34801561054157600080fd5b5061055c600480360381019061055791906132a6565b611440565b005b34801561056a57600080fd5b506105736114d9565b6040516105809190613b45565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190613376565b6114df565b005b6105cc60048036038101906105c791906131ee565b611565565b005b3480156105da57600080fd5b506105f560048036038101906105f091906132a6565b61189d565b005b34801561060357600080fd5b5061061e60048036038101906106199190613008565b611936565b60405161062b91906138c8565b60405180910390f35b34801561064057600080fd5b506106496119ca565b60405161065691906138c8565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190613117565b6119dd565b005b34801561069457600080fd5b506106af60048036038101906106aa9190612fdb565b611a7e565b005b3480156106bd57600080fd5b506106c6611b76565b6040516106d391906138c8565b60405180910390f35b3480156106e857600080fd5b506106f1611b89565b6040516106fe9190613b45565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076f90613945565b60405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061089c57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108ac57506108ab82611b8f565b5b9050919050565b600680546108c090613eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546108ec90613eaf565b80156109395780601f1061090e57610100808354040283529160200191610939565b820191906000526020600020905b81548152906001019060200180831161091c57829003601f168201915b505050505081565b610949611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610967611373565b73ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490613a85565b60405180910390fd5b8060088190555050565b6109cf611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a145750600c60009054906101000a900460ff165b610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90613985565b60405180910390fd5b60085481610a5f610d72565b610a699190613ce4565b1115610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190613a45565b60405180910390fd5b6032811115610aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae590613a65565b60405180910390fd5b80600a54610afc9190613d6b565b34101580610b3c5750610b0d611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7290613aa5565b60405180910390fd5b60005b81811015610bd157610ba983610b92610d72565b600160405180602001604052806000815250611c01565b6001600d54610bb89190613ce4565b600d819055508080610bc990613f12565b915050610b7e565b505050565b60038054610be390613eaf565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0f90613eaf565b8015610c5c5780601f10610c3157610100808354040283529160200191610c5c565b820191906000526020600020905b815481529060010190602001808311610c3f57829003601f168201915b505050505081565b6060600060038054610c7590613eaf565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca190613eaf565b8015610cee5780601f10610cc357610100808354040283529160200191610cee565b820191906000526020600020905b815481529060010190602001808311610cd157829003601f168201915b505050505090506000815111610d39576040518060400160405280600b81526020017f757269206e6f7420736574000000000000000000000000000000000000000000815250610d64565b80610d4384611d98565b604051602001610d5492919061376e565b6040516020818303038152906040525b915050919050565b600b5481565b6000600d54905090565b610d84611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610da2611373565b73ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def90613a85565b60405180910390fd5b8060098190555050565b610e0a611bf9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610e505750610e4f85610e4a611bf9565b611936565b5b610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690613a05565b60405180910390fd5b610e9c8585858585611ef9565b5050505050565b610eab611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610ec9611373565b73ffffffffffffffffffffffffffffffffffffffff1614610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690613a85565b60405180910390fd5b80600b8190555050565b610f31611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f765750600c60009054906101000a900460ff165b610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613985565b60405180910390fd5b60085481610fc1610d72565b610fcb9190613ce4565b111561100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390613a45565b60405180910390fd5b6032811115611050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104790613a65565b60405180910390fd5b80600a5461105e9190613d6b565b3410158061109e575061106f611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490613aa5565b60405180910390fd5b60005b818110156111335761110b836110f4610d72565b600160405180602001604052806000815250611c01565b6001600d5461111a9190613ce4565b600d81905550808061112b90613f12565b9150506110e0565b505050565b6060815183511461117e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117590613ae5565b60405180910390fd5b6000835167ffffffffffffffff81111561119b5761119a614048565b5b6040519080825280602002602001820160405280156111c95781602001602082028036833780820191505090505b50905060005b8451811015611246576112168582815181106111ee576111ed614019565b5b602002602001015185838151811061120957611208614019565b5b6020026020010151610707565b82828151811061122957611228614019565b5b6020026020010181815250508061123f90613f12565b90506111cf565b508091505092915050565b611259611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611277611373565b73ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613a85565b60405180910390fd5b80600390805190602001906112e3929190612cb3565b5050565b60085481565b6112f5611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611313611373565b73ffffffffffffffffffffffffffffffffffffffff1614611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090613a85565b60405180910390fd5b611371612210565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600780546113a990613eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546113d590613eaf565b80156114225780601f106113f757610100808354040283529160200191611422565b820191906000526020600020905b81548152906001019060200180831161140557829003601f168201915b505050505081565b61143c611435611bf9565b838361238a565b5050565b611448611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611466611373565b73ffffffffffffffffffffffffffffffffffffffff16146114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390613a85565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b600a5481565b6114e7611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611505611373565b73ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290613a85565b60405180910390fd5b80600a8190555050565b61156d611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115b25750600c60019054906101000a900460ff165b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890613985565b60405180910390fd5b6115f9611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611683575060011515600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b6116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906139c5565b60405180910390fd5b600954816116ce610d72565b6116d89190613ce4565b1115611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090613a45565b60405180910390fd5b603281111561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490613a65565b60405180910390fd5b80600b5461176b9190613d6b565b341015806117ab575061177c611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190613aa5565b60405180910390fd5b60005b818110156118405761181883611801610d72565b600160405180602001604052806000815250611c01565b6001600d546118279190613ce4565b600d81905550808061183890613f12565b9150506117ed565b506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118a5611bf9565b73ffffffffffffffffffffffffffffffffffffffff166118c3611373565b73ffffffffffffffffffffffffffffffffffffffff1614611919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191090613a85565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60019054906101000a900460ff1681565b6119e5611bf9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611a2b5750611a2a85611a25611bf9565b611936565b5b611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a61906139a5565b60405180910390fd5b611a7785858585856124f7565b5050505050565b611a86611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611aa4611373565b73ffffffffffffffffffffffffffffffffffffffff1614611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af190613a85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613965565b60405180910390fd5b611b738161277c565b50565b600c60009054906101000a900460ff1681565b60095481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613b25565b60405180910390fd5b6000611c7b611bf9565b9050611c9c81600087611c8d88612840565b611c9688612840565b876128ba565b826001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cfc9190613ce4565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611d7a929190613b60565b60405180910390a4611d91816000878787876128c2565b5050505050565b60606000821415611de0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ef4565b600082905060005b60008214611e12578080611dfb90613f12565b915050600a82611e0b9190613d3a565b9150611de8565b60008167ffffffffffffffff811115611e2e57611e2d614048565b5b6040519080825280601f01601f191660200182016040528015611e605781602001600182028036833780820191505090505b5090505b60008514611eed57600182611e799190613dc5565b9150600a85611e889190613f5b565b6030611e949190613ce4565b60f81b818381518110611eaa57611ea9614019565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ee69190613d3a565b9450611e64565b8093505050505b919050565b8151835114611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490613b05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa4906139e5565b60405180910390fd5b6000611fb7611bf9565b9050611fc78187878787876128ba565b60005b845181101561217b576000858281518110611fe857611fe7614019565b5b60200260200101519050600085838151811061200757612006614019565b5b6020026020010151905060006001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a090613a25565b60405180910390fd5b8181036001600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190613ce4565b925050819055505050508061217490613f12565b9050611fca565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516121f2929190613891565b60405180910390a4612208818787878787612aa9565b505050505050565b60006064601e476122219190613d6b565b61222b9190613d3a565b905060006064600f4761223e9190613d6b565b6122489190613d3a565b905060008183476122599190613dc5565b6122639190613dc5565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156122cd573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612336573d6000803e3d6000fd5b5061233f611bf9565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612384573d6000803e3d6000fd5b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090613ac5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516124ea91906138c8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e906139e5565b60405180910390fd5b6000612571611bf9565b905061259181878761258288612840565b61258b88612840565b876128ba565b60006001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262090613a25565b60405180910390fd5b8381036001600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126e09190613ce4565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161275d929190613b60565b60405180910390a46127738288888888886128c2565b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60606000600167ffffffffffffffff81111561285f5761285e614048565b5b60405190808252806020026020018201604052801561288d5781602001602082028036833780820191505090505b50905082816000815181106128a5576128a4614019565b5b60200260200101818152505080915050919050565b505050505050565b6128e18473ffffffffffffffffffffffffffffffffffffffff16612c90565b15612aa1578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612927959493929190613815565b602060405180830381600087803b15801561294157600080fd5b505af192505050801561297257506040513d601f19601f8201168201806040525081019061296f9190613300565b60015b612a185761297e614077565b806308c379a014156129db575061299361457a565b8061299e57506129dd565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d291906138e3565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f90613905565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9690613925565b60405180910390fd5b505b505050505050565b612ac88473ffffffffffffffffffffffffffffffffffffffff16612c90565b15612c88578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612b0e9594939291906137ad565b602060405180830381600087803b158015612b2857600080fd5b505af1925050508015612b5957506040513d601f19601f82011682018060405250810190612b569190613300565b60015b612bff57612b65614077565b806308c379a01415612bc25750612b7a61457a565b80612b855750612bc4565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb991906138e3565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf690613905565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d90613925565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612cbf90613eaf565b90600052602060002090601f016020900481019282612ce15760008555612d28565b82601f10612cfa57805160ff1916838001178555612d28565b82800160010185558215612d28579182015b82811115612d27578251825591602001919060010190612d0c565b5b509050612d359190612d39565b5090565b5b80821115612d52576000816000905550600101612d3a565b5090565b6000612d69612d6484613bae565b613b89565b90508083825260208201905082856020860282011115612d8c57612d8b61409e565b5b60005b85811015612dbc5781612da28882612eba565b845260208401935060208301925050600181019050612d8f565b5050509392505050565b6000612dd9612dd484613bda565b613b89565b90508083825260208201905082856020860282011115612dfc57612dfb61409e565b5b60005b85811015612e2c5781612e128882612fc6565b845260208401935060208301925050600181019050612dff565b5050509392505050565b6000612e49612e4484613c06565b613b89565b905082815260208101848484011115612e6557612e646140a3565b5b612e70848285613e6d565b509392505050565b6000612e8b612e8684613c37565b613b89565b905082815260208101848484011115612ea757612ea66140a3565b5b612eb2848285613e6d565b509392505050565b600081359050612ec981614610565b92915050565b600082601f830112612ee457612ee3614099565b5b8135612ef4848260208601612d56565b91505092915050565b600082601f830112612f1257612f11614099565b5b8135612f22848260208601612dc6565b91505092915050565b600081359050612f3a81614627565b92915050565b600081359050612f4f8161463e565b92915050565b600081519050612f648161463e565b92915050565b600082601f830112612f7f57612f7e614099565b5b8135612f8f848260208601612e36565b91505092915050565b600082601f830112612fad57612fac614099565b5b8135612fbd848260208601612e78565b91505092915050565b600081359050612fd581614655565b92915050565b600060208284031215612ff157612ff06140ad565b5b6000612fff84828501612eba565b91505092915050565b6000806040838503121561301f5761301e6140ad565b5b600061302d85828601612eba565b925050602061303e85828601612eba565b9150509250929050565b600080600080600060a08688031215613064576130636140ad565b5b600061307288828901612eba565b955050602061308388828901612eba565b945050604086013567ffffffffffffffff8111156130a4576130a36140a8565b5b6130b088828901612efd565b935050606086013567ffffffffffffffff8111156130d1576130d06140a8565b5b6130dd88828901612efd565b925050608086013567ffffffffffffffff8111156130fe576130fd6140a8565b5b61310a88828901612f6a565b9150509295509295909350565b600080600080600060a08688031215613133576131326140ad565b5b600061314188828901612eba565b955050602061315288828901612eba565b945050604061316388828901612fc6565b935050606061317488828901612fc6565b925050608086013567ffffffffffffffff811115613195576131946140a8565b5b6131a188828901612f6a565b9150509295509295909350565b600080604083850312156131c5576131c46140ad565b5b60006131d385828601612eba565b92505060206131e485828601612f2b565b9150509250929050565b60008060408385031215613205576132046140ad565b5b600061321385828601612eba565b925050602061322485828601612fc6565b9150509250929050565b60008060408385031215613245576132446140ad565b5b600083013567ffffffffffffffff811115613263576132626140a8565b5b61326f85828601612ecf565b925050602083013567ffffffffffffffff8111156132905761328f6140a8565b5b61329c85828601612efd565b9150509250929050565b6000602082840312156132bc576132bb6140ad565b5b60006132ca84828501612f2b565b91505092915050565b6000602082840312156132e9576132e86140ad565b5b60006132f784828501612f40565b91505092915050565b600060208284031215613316576133156140ad565b5b600061332484828501612f55565b91505092915050565b600060208284031215613343576133426140ad565b5b600082013567ffffffffffffffff811115613361576133606140a8565b5b61336d84828501612f98565b91505092915050565b60006020828403121561338c5761338b6140ad565b5b600061339a84828501612fc6565b91505092915050565b60006133af8383613750565b60208301905092915050565b6133c481613df9565b82525050565b60006133d582613c78565b6133df8185613ca6565b93506133ea83613c68565b8060005b8381101561341b57815161340288826133a3565b975061340d83613c99565b9250506001810190506133ee565b5085935050505092915050565b61343181613e0b565b82525050565b600061344282613c83565b61344c8185613cb7565b935061345c818560208601613e7c565b613465816140b2565b840191505092915050565b600061347b82613c8e565b6134858185613cc8565b9350613495818560208601613e7c565b61349e816140b2565b840191505092915050565b60006134b482613c8e565b6134be8185613cd9565b93506134ce818560208601613e7c565b80840191505092915050565b60006134e7603483613cc8565b91506134f2826140d0565b604082019050919050565b600061350a602883613cc8565b91506135158261411f565b604082019050919050565b600061352d602b83613cc8565b91506135388261416e565b604082019050919050565b6000613550602683613cc8565b915061355b826141bd565b604082019050919050565b6000613573600f83613cc8565b915061357e8261420c565b602082019050919050565b6000613596602983613cc8565b91506135a182614235565b604082019050919050565b60006135b9600c83613cc8565b91506135c482614284565b602082019050919050565b60006135dc602583613cc8565b91506135e7826142ad565b604082019050919050565b60006135ff603283613cc8565b915061360a826142fc565b604082019050919050565b6000613622602a83613cc8565b915061362d8261434b565b604082019050919050565b6000613645600d83613cc8565b91506136508261439a565b602082019050919050565b6000613668600a83613cc8565b9150613673826143c3565b602082019050919050565b600061368b602083613cc8565b9150613696826143ec565b602082019050919050565b60006136ae601183613cc8565b91506136b982614415565b602082019050919050565b60006136d1602983613cc8565b91506136dc8261443e565b604082019050919050565b60006136f4602983613cc8565b91506136ff8261448d565b604082019050919050565b6000613717602883613cc8565b9150613722826144dc565b604082019050919050565b600061373a602183613cc8565b91506137458261452b565b604082019050919050565b61375981613e63565b82525050565b61376881613e63565b82525050565b600061377a82856134a9565b915061378682846134a9565b91508190509392505050565b60006020820190506137a760008301846133bb565b92915050565b600060a0820190506137c260008301886133bb565b6137cf60208301876133bb565b81810360408301526137e181866133ca565b905081810360608301526137f581856133ca565b905081810360808301526138098184613437565b90509695505050505050565b600060a08201905061382a60008301886133bb565b61383760208301876133bb565b613844604083018661375f565b613851606083018561375f565b81810360808301526138638184613437565b90509695505050505050565b6000602082019050818103600083015261388981846133ca565b905092915050565b600060408201905081810360008301526138ab81856133ca565b905081810360208301526138bf81846133ca565b90509392505050565b60006020820190506138dd6000830184613428565b92915050565b600060208201905081810360008301526138fd8184613470565b905092915050565b6000602082019050818103600083015261391e816134da565b9050919050565b6000602082019050818103600083015261393e816134fd565b9050919050565b6000602082019050818103600083015261395e81613520565b9050919050565b6000602082019050818103600083015261397e81613543565b9050919050565b6000602082019050818103600083015261399e81613566565b9050919050565b600060208201905081810360008301526139be81613589565b9050919050565b600060208201905081810360008301526139de816135ac565b9050919050565b600060208201905081810360008301526139fe816135cf565b9050919050565b60006020820190508181036000830152613a1e816135f2565b9050919050565b60006020820190508181036000830152613a3e81613615565b9050919050565b60006020820190508181036000830152613a5e81613638565b9050919050565b60006020820190508181036000830152613a7e8161365b565b9050919050565b60006020820190508181036000830152613a9e8161367e565b9050919050565b60006020820190508181036000830152613abe816136a1565b9050919050565b60006020820190508181036000830152613ade816136c4565b9050919050565b60006020820190508181036000830152613afe816136e7565b9050919050565b60006020820190508181036000830152613b1e8161370a565b9050919050565b60006020820190508181036000830152613b3e8161372d565b9050919050565b6000602082019050613b5a600083018461375f565b92915050565b6000604082019050613b75600083018561375f565b613b82602083018461375f565b9392505050565b6000613b93613ba4565b9050613b9f8282613ee1565b919050565b6000604051905090565b600067ffffffffffffffff821115613bc957613bc8614048565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613bf557613bf4614048565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613c2157613c20614048565b5b613c2a826140b2565b9050602081019050919050565b600067ffffffffffffffff821115613c5257613c51614048565b5b613c5b826140b2565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613cef82613e63565b9150613cfa83613e63565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d2f57613d2e613f8c565b5b828201905092915050565b6000613d4582613e63565b9150613d5083613e63565b925082613d6057613d5f613fbb565b5b828204905092915050565b6000613d7682613e63565b9150613d8183613e63565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dba57613db9613f8c565b5b828202905092915050565b6000613dd082613e63565b9150613ddb83613e63565b925082821015613dee57613ded613f8c565b5b828203905092915050565b6000613e0482613e43565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613e9a578082015181840152602081019050613e7f565b83811115613ea9576000848401525b50505050565b60006002820490506001821680613ec757607f821691505b60208210811415613edb57613eda613fea565b5b50919050565b613eea826140b2565b810181811067ffffffffffffffff82111715613f0957613f08614048565b5b80604052505050565b6000613f1d82613e63565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f5057613f4f613f8c565b5b600182019050919050565b6000613f6682613e63565b9150613f7183613e63565b925082613f8157613f80613fbb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156140965760046000803e6140936000516140c3565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f53616c65206e6f7420656e61626c650000000000000000000000000000000000600082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f4e6f2077686974656c6973740000000000000000000000000000000000000000600082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f45786365656473206c696d697400000000000000000000000000000000000000600082015250565b7f4578636565647320353000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f56616c75652062656c6f77207072696365000000000000000000000000000000600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d101561458a5761460d565b614592613ba4565b60043d036004823e80513d602482011167ffffffffffffffff821117156145ba57505061460d565b808201805167ffffffffffffffff8111156145d8575050505061460d565b80602083010160043d0385018111156145f557505050505061460d565b61460482602001850186613ee1565b82955050505050505b90565b61461981613df9565b811461462457600080fd5b50565b61463081613e0b565b811461463b57600080fd5b50565b61464781613e17565b811461465257600080fd5b50565b61465e81613e63565b811461466957600080fd5b5056fea26469706673582212206731ce87224c60b65d9805e9a579b4fe36836410d610a96bdffd8cb3b44ac5fd64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000b5368696e6f6269436c7562000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000253430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101d75760003560e01c80636e1bd32311610102578063df3df83f11610095578063f242432a11610064578063f242432a1461065f578063f2fde38b14610688578063fe4ca847146106b1578063ff7e8ea3146106dc576101d7565b8063df3df83f146105b2578063e03abf54146105ce578063e985e9c5146105f7578063eaae157614610634576101d7565b8063a22cb465116100d1578063a22cb4651461050c578063b02636fd14610535578063c7876ea41461055e578063de4b326214610589576101d7565b80636e1bd32314610481578063853828b6146104ac5780638da5cb5b146104b657806395d89b41146104e1576101d7565b806310751fc21161017a5780633b3bfd5a116101495780633b3bfd5a146103d657806340c10f19146103ff5780634e1273f41461041b57806355f804b314610458576101d7565b806310751fc21461032e57806318160ddd146103595780632e6f0d33146103845780632eb2c2d6146103ad576101d7565b806309acc2cb116101b657806309acc2cb146102815780630cf101af146102aa5780630dccc9ad146102c65780630e89341c146102f1576101d7565b8062fdd58e146101dc57806301ffc9a71461021957806306fdde0314610256575b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe91906131ee565b610707565b6040516102109190613b45565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b91906132d3565b6107d1565b60405161024d91906138c8565b60405180910390f35b34801561026257600080fd5b5061026b6108b3565b60405161027891906138e3565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a39190613376565b610941565b005b6102c460048036038101906102bf91906131ee565b6109c7565b005b3480156102d257600080fd5b506102db610bd6565b6040516102e891906138e3565b60405180910390f35b3480156102fd57600080fd5b5061031860048036038101906103139190613376565b610c64565b60405161032591906138e3565b60405180910390f35b34801561033a57600080fd5b50610343610d6c565b6040516103509190613b45565b60405180910390f35b34801561036557600080fd5b5061036e610d72565b60405161037b9190613b45565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a69190613376565b610d7c565b005b3480156103b957600080fd5b506103d460048036038101906103cf9190613048565b610e02565b005b3480156103e257600080fd5b506103fd60048036038101906103f89190613376565b610ea3565b005b610419600480360381019061041491906131ee565b610f29565b005b34801561042757600080fd5b50610442600480360381019061043d919061322e565b611138565b60405161044f919061386f565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a919061332d565b611251565b005b34801561048d57600080fd5b506104966112e7565b6040516104a39190613b45565b60405180910390f35b6104b46112ed565b005b3480156104c257600080fd5b506104cb611373565b6040516104d89190613792565b60405180910390f35b3480156104ed57600080fd5b506104f661139c565b60405161050391906138e3565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e91906131ae565b61142a565b005b34801561054157600080fd5b5061055c600480360381019061055791906132a6565b611440565b005b34801561056a57600080fd5b506105736114d9565b6040516105809190613b45565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab9190613376565b6114df565b005b6105cc60048036038101906105c791906131ee565b611565565b005b3480156105da57600080fd5b506105f560048036038101906105f091906132a6565b61189d565b005b34801561060357600080fd5b5061061e60048036038101906106199190613008565b611936565b60405161062b91906138c8565b60405180910390f35b34801561064057600080fd5b506106496119ca565b60405161065691906138c8565b60405180910390f35b34801561066b57600080fd5b5061068660048036038101906106819190613117565b6119dd565b005b34801561069457600080fd5b506106af60048036038101906106aa9190612fdb565b611a7e565b005b3480156106bd57600080fd5b506106c6611b76565b6040516106d391906138c8565b60405180910390f35b3480156106e857600080fd5b506106f1611b89565b6040516106fe9190613b45565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076f90613945565b60405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061089c57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108ac57506108ab82611b8f565b5b9050919050565b600680546108c090613eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546108ec90613eaf565b80156109395780601f1061090e57610100808354040283529160200191610939565b820191906000526020600020905b81548152906001019060200180831161091c57829003601f168201915b505050505081565b610949611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610967611373565b73ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490613a85565b60405180910390fd5b8060088190555050565b6109cf611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a145750600c60009054906101000a900460ff165b610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a90613985565b60405180910390fd5b60085481610a5f610d72565b610a699190613ce4565b1115610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190613a45565b60405180910390fd5b6032811115610aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae590613a65565b60405180910390fd5b80600a54610afc9190613d6b565b34101580610b3c5750610b0d611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7290613aa5565b60405180910390fd5b60005b81811015610bd157610ba983610b92610d72565b600160405180602001604052806000815250611c01565b6001600d54610bb89190613ce4565b600d819055508080610bc990613f12565b915050610b7e565b505050565b60038054610be390613eaf565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0f90613eaf565b8015610c5c5780601f10610c3157610100808354040283529160200191610c5c565b820191906000526020600020905b815481529060010190602001808311610c3f57829003601f168201915b505050505081565b6060600060038054610c7590613eaf565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca190613eaf565b8015610cee5780601f10610cc357610100808354040283529160200191610cee565b820191906000526020600020905b815481529060010190602001808311610cd157829003601f168201915b505050505090506000815111610d39576040518060400160405280600b81526020017f757269206e6f7420736574000000000000000000000000000000000000000000815250610d64565b80610d4384611d98565b604051602001610d5492919061376e565b6040516020818303038152906040525b915050919050565b600b5481565b6000600d54905090565b610d84611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610da2611373565b73ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def90613a85565b60405180910390fd5b8060098190555050565b610e0a611bf9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610e505750610e4f85610e4a611bf9565b611936565b5b610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690613a05565b60405180910390fd5b610e9c8585858585611ef9565b5050505050565b610eab611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610ec9611373565b73ffffffffffffffffffffffffffffffffffffffff1614610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690613a85565b60405180910390fd5b80600b8190555050565b610f31611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610f765750600c60009054906101000a900460ff165b610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613985565b60405180910390fd5b60085481610fc1610d72565b610fcb9190613ce4565b111561100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390613a45565b60405180910390fd5b6032811115611050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104790613a65565b60405180910390fd5b80600a5461105e9190613d6b565b3410158061109e575061106f611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490613aa5565b60405180910390fd5b60005b818110156111335761110b836110f4610d72565b600160405180602001604052806000815250611c01565b6001600d5461111a9190613ce4565b600d81905550808061112b90613f12565b9150506110e0565b505050565b6060815183511461117e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117590613ae5565b60405180910390fd5b6000835167ffffffffffffffff81111561119b5761119a614048565b5b6040519080825280602002602001820160405280156111c95781602001602082028036833780820191505090505b50905060005b8451811015611246576112168582815181106111ee576111ed614019565b5b602002602001015185838151811061120957611208614019565b5b6020026020010151610707565b82828151811061122957611228614019565b5b6020026020010181815250508061123f90613f12565b90506111cf565b508091505092915050565b611259611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611277611373565b73ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613a85565b60405180910390fd5b80600390805190602001906112e3929190612cb3565b5050565b60085481565b6112f5611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611313611373565b73ffffffffffffffffffffffffffffffffffffffff1614611369576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136090613a85565b60405180910390fd5b611371612210565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600780546113a990613eaf565b80601f01602080910402602001604051908101604052809291908181526020018280546113d590613eaf565b80156114225780601f106113f757610100808354040283529160200191611422565b820191906000526020600020905b81548152906001019060200180831161140557829003601f168201915b505050505081565b61143c611435611bf9565b838361238a565b5050565b611448611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611466611373565b73ffffffffffffffffffffffffffffffffffffffff16146114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390613a85565b60405180910390fd5b80600c60006101000a81548160ff02191690831515021790555050565b600a5481565b6114e7611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611505611373565b73ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290613a85565b60405180910390fd5b80600a8190555050565b61156d611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115b25750600c60019054906101000a900460ff165b6115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890613985565b60405180910390fd5b6115f9611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611683575060011515600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b6116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906139c5565b60405180910390fd5b600954816116ce610d72565b6116d89190613ce4565b1115611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090613a45565b60405180910390fd5b603281111561175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490613a65565b60405180910390fd5b80600b5461176b9190613d6b565b341015806117ab575061177c611373565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e190613aa5565b60405180910390fd5b60005b818110156118405761181883611801610d72565b600160405180602001604052806000815250611c01565b6001600d546118279190613ce4565b600d81905550808061183890613f12565b9150506117ed565b506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118a5611bf9565b73ffffffffffffffffffffffffffffffffffffffff166118c3611373565b73ffffffffffffffffffffffffffffffffffffffff1614611919576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191090613a85565b60405180910390fd5b80600c60016101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60019054906101000a900460ff1681565b6119e5611bf9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611a2b5750611a2a85611a25611bf9565b611936565b5b611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a61906139a5565b60405180910390fd5b611a7785858585856124f7565b5050505050565b611a86611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611aa4611373565b73ffffffffffffffffffffffffffffffffffffffff1614611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af190613a85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613965565b60405180910390fd5b611b738161277c565b50565b600c60009054906101000a900460ff1681565b60095481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613b25565b60405180910390fd5b6000611c7b611bf9565b9050611c9c81600087611c8d88612840565b611c9688612840565b876128ba565b826001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cfc9190613ce4565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051611d7a929190613b60565b60405180910390a4611d91816000878787876128c2565b5050505050565b60606000821415611de0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611ef4565b600082905060005b60008214611e12578080611dfb90613f12565b915050600a82611e0b9190613d3a565b9150611de8565b60008167ffffffffffffffff811115611e2e57611e2d614048565b5b6040519080825280601f01601f191660200182016040528015611e605781602001600182028036833780820191505090505b5090505b60008514611eed57600182611e799190613dc5565b9150600a85611e889190613f5b565b6030611e949190613ce4565b60f81b818381518110611eaa57611ea9614019565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ee69190613d3a565b9450611e64565b8093505050505b919050565b8151835114611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490613b05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa4906139e5565b60405180910390fd5b6000611fb7611bf9565b9050611fc78187878787876128ba565b60005b845181101561217b576000858281518110611fe857611fe7614019565b5b60200260200101519050600085838151811061200757612006614019565b5b6020026020010151905060006001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a090613a25565b60405180910390fd5b8181036001600085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121609190613ce4565b925050819055505050508061217490613f12565b9050611fca565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516121f2929190613891565b60405180910390a4612208818787878787612aa9565b505050505050565b60006064601e476122219190613d6b565b61222b9190613d3a565b905060006064600f4761223e9190613d6b565b6122489190613d3a565b905060008183476122599190613dc5565b6122639190613dc5565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156122cd573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612336573d6000803e3d6000fd5b5061233f611bf9565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612384573d6000803e3d6000fd5b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090613ac5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516124ea91906138c8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e906139e5565b60405180910390fd5b6000612571611bf9565b905061259181878761258288612840565b61258b88612840565b876128ba565b60006001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262090613a25565b60405180910390fd5b8381036001600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126e09190613ce4565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62888860405161275d929190613b60565b60405180910390a46127738288888888886128c2565b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60606000600167ffffffffffffffff81111561285f5761285e614048565b5b60405190808252806020026020018201604052801561288d5781602001602082028036833780820191505090505b50905082816000815181106128a5576128a4614019565b5b60200260200101818152505080915050919050565b505050505050565b6128e18473ffffffffffffffffffffffffffffffffffffffff16612c90565b15612aa1578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612927959493929190613815565b602060405180830381600087803b15801561294157600080fd5b505af192505050801561297257506040513d601f19601f8201168201806040525081019061296f9190613300565b60015b612a185761297e614077565b806308c379a014156129db575061299361457a565b8061299e57506129dd565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d291906138e3565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0f90613905565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9690613925565b60405180910390fd5b505b505050505050565b612ac88473ffffffffffffffffffffffffffffffffffffffff16612c90565b15612c88578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612b0e9594939291906137ad565b602060405180830381600087803b158015612b2857600080fd5b505af1925050508015612b5957506040513d601f19601f82011682018060405250810190612b569190613300565b60015b612bff57612b65614077565b806308c379a01415612bc25750612b7a61457a565b80612b855750612bc4565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb991906138e3565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf690613905565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d90613925565b60405180910390fd5b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612cbf90613eaf565b90600052602060002090601f016020900481019282612ce15760008555612d28565b82601f10612cfa57805160ff1916838001178555612d28565b82800160010185558215612d28579182015b82811115612d27578251825591602001919060010190612d0c565b5b509050612d359190612d39565b5090565b5b80821115612d52576000816000905550600101612d3a565b5090565b6000612d69612d6484613bae565b613b89565b90508083825260208201905082856020860282011115612d8c57612d8b61409e565b5b60005b85811015612dbc5781612da28882612eba565b845260208401935060208301925050600181019050612d8f565b5050509392505050565b6000612dd9612dd484613bda565b613b89565b90508083825260208201905082856020860282011115612dfc57612dfb61409e565b5b60005b85811015612e2c5781612e128882612fc6565b845260208401935060208301925050600181019050612dff565b5050509392505050565b6000612e49612e4484613c06565b613b89565b905082815260208101848484011115612e6557612e646140a3565b5b612e70848285613e6d565b509392505050565b6000612e8b612e8684613c37565b613b89565b905082815260208101848484011115612ea757612ea66140a3565b5b612eb2848285613e6d565b509392505050565b600081359050612ec981614610565b92915050565b600082601f830112612ee457612ee3614099565b5b8135612ef4848260208601612d56565b91505092915050565b600082601f830112612f1257612f11614099565b5b8135612f22848260208601612dc6565b91505092915050565b600081359050612f3a81614627565b92915050565b600081359050612f4f8161463e565b92915050565b600081519050612f648161463e565b92915050565b600082601f830112612f7f57612f7e614099565b5b8135612f8f848260208601612e36565b91505092915050565b600082601f830112612fad57612fac614099565b5b8135612fbd848260208601612e78565b91505092915050565b600081359050612fd581614655565b92915050565b600060208284031215612ff157612ff06140ad565b5b6000612fff84828501612eba565b91505092915050565b6000806040838503121561301f5761301e6140ad565b5b600061302d85828601612eba565b925050602061303e85828601612eba565b9150509250929050565b600080600080600060a08688031215613064576130636140ad565b5b600061307288828901612eba565b955050602061308388828901612eba565b945050604086013567ffffffffffffffff8111156130a4576130a36140a8565b5b6130b088828901612efd565b935050606086013567ffffffffffffffff8111156130d1576130d06140a8565b5b6130dd88828901612efd565b925050608086013567ffffffffffffffff8111156130fe576130fd6140a8565b5b61310a88828901612f6a565b9150509295509295909350565b600080600080600060a08688031215613133576131326140ad565b5b600061314188828901612eba565b955050602061315288828901612eba565b945050604061316388828901612fc6565b935050606061317488828901612fc6565b925050608086013567ffffffffffffffff811115613195576131946140a8565b5b6131a188828901612f6a565b9150509295509295909350565b600080604083850312156131c5576131c46140ad565b5b60006131d385828601612eba565b92505060206131e485828601612f2b565b9150509250929050565b60008060408385031215613205576132046140ad565b5b600061321385828601612eba565b925050602061322485828601612fc6565b9150509250929050565b60008060408385031215613245576132446140ad565b5b600083013567ffffffffffffffff811115613263576132626140a8565b5b61326f85828601612ecf565b925050602083013567ffffffffffffffff8111156132905761328f6140a8565b5b61329c85828601612efd565b9150509250929050565b6000602082840312156132bc576132bb6140ad565b5b60006132ca84828501612f2b565b91505092915050565b6000602082840312156132e9576132e86140ad565b5b60006132f784828501612f40565b91505092915050565b600060208284031215613316576133156140ad565b5b600061332484828501612f55565b91505092915050565b600060208284031215613343576133426140ad565b5b600082013567ffffffffffffffff811115613361576133606140a8565b5b61336d84828501612f98565b91505092915050565b60006020828403121561338c5761338b6140ad565b5b600061339a84828501612fc6565b91505092915050565b60006133af8383613750565b60208301905092915050565b6133c481613df9565b82525050565b60006133d582613c78565b6133df8185613ca6565b93506133ea83613c68565b8060005b8381101561341b57815161340288826133a3565b975061340d83613c99565b9250506001810190506133ee565b5085935050505092915050565b61343181613e0b565b82525050565b600061344282613c83565b61344c8185613cb7565b935061345c818560208601613e7c565b613465816140b2565b840191505092915050565b600061347b82613c8e565b6134858185613cc8565b9350613495818560208601613e7c565b61349e816140b2565b840191505092915050565b60006134b482613c8e565b6134be8185613cd9565b93506134ce818560208601613e7c565b80840191505092915050565b60006134e7603483613cc8565b91506134f2826140d0565b604082019050919050565b600061350a602883613cc8565b91506135158261411f565b604082019050919050565b600061352d602b83613cc8565b91506135388261416e565b604082019050919050565b6000613550602683613cc8565b915061355b826141bd565b604082019050919050565b6000613573600f83613cc8565b915061357e8261420c565b602082019050919050565b6000613596602983613cc8565b91506135a182614235565b604082019050919050565b60006135b9600c83613cc8565b91506135c482614284565b602082019050919050565b60006135dc602583613cc8565b91506135e7826142ad565b604082019050919050565b60006135ff603283613cc8565b915061360a826142fc565b604082019050919050565b6000613622602a83613cc8565b915061362d8261434b565b604082019050919050565b6000613645600d83613cc8565b91506136508261439a565b602082019050919050565b6000613668600a83613cc8565b9150613673826143c3565b602082019050919050565b600061368b602083613cc8565b9150613696826143ec565b602082019050919050565b60006136ae601183613cc8565b91506136b982614415565b602082019050919050565b60006136d1602983613cc8565b91506136dc8261443e565b604082019050919050565b60006136f4602983613cc8565b91506136ff8261448d565b604082019050919050565b6000613717602883613cc8565b9150613722826144dc565b604082019050919050565b600061373a602183613cc8565b91506137458261452b565b604082019050919050565b61375981613e63565b82525050565b61376881613e63565b82525050565b600061377a82856134a9565b915061378682846134a9565b91508190509392505050565b60006020820190506137a760008301846133bb565b92915050565b600060a0820190506137c260008301886133bb565b6137cf60208301876133bb565b81810360408301526137e181866133ca565b905081810360608301526137f581856133ca565b905081810360808301526138098184613437565b90509695505050505050565b600060a08201905061382a60008301886133bb565b61383760208301876133bb565b613844604083018661375f565b613851606083018561375f565b81810360808301526138638184613437565b90509695505050505050565b6000602082019050818103600083015261388981846133ca565b905092915050565b600060408201905081810360008301526138ab81856133ca565b905081810360208301526138bf81846133ca565b90509392505050565b60006020820190506138dd6000830184613428565b92915050565b600060208201905081810360008301526138fd8184613470565b905092915050565b6000602082019050818103600083015261391e816134da565b9050919050565b6000602082019050818103600083015261393e816134fd565b9050919050565b6000602082019050818103600083015261395e81613520565b9050919050565b6000602082019050818103600083015261397e81613543565b9050919050565b6000602082019050818103600083015261399e81613566565b9050919050565b600060208201905081810360008301526139be81613589565b9050919050565b600060208201905081810360008301526139de816135ac565b9050919050565b600060208201905081810360008301526139fe816135cf565b9050919050565b60006020820190508181036000830152613a1e816135f2565b9050919050565b60006020820190508181036000830152613a3e81613615565b9050919050565b60006020820190508181036000830152613a5e81613638565b9050919050565b60006020820190508181036000830152613a7e8161365b565b9050919050565b60006020820190508181036000830152613a9e8161367e565b9050919050565b60006020820190508181036000830152613abe816136a1565b9050919050565b60006020820190508181036000830152613ade816136c4565b9050919050565b60006020820190508181036000830152613afe816136e7565b9050919050565b60006020820190508181036000830152613b1e8161370a565b9050919050565b60006020820190508181036000830152613b3e8161372d565b9050919050565b6000602082019050613b5a600083018461375f565b92915050565b6000604082019050613b75600083018561375f565b613b82602083018461375f565b9392505050565b6000613b93613ba4565b9050613b9f8282613ee1565b919050565b6000604051905090565b600067ffffffffffffffff821115613bc957613bc8614048565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613bf557613bf4614048565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613c2157613c20614048565b5b613c2a826140b2565b9050602081019050919050565b600067ffffffffffffffff821115613c5257613c51614048565b5b613c5b826140b2565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613cef82613e63565b9150613cfa83613e63565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d2f57613d2e613f8c565b5b828201905092915050565b6000613d4582613e63565b9150613d5083613e63565b925082613d6057613d5f613fbb565b5b828204905092915050565b6000613d7682613e63565b9150613d8183613e63565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dba57613db9613f8c565b5b828202905092915050565b6000613dd082613e63565b9150613ddb83613e63565b925082821015613dee57613ded613f8c565b5b828203905092915050565b6000613e0482613e43565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613e9a578082015181840152602081019050613e7f565b83811115613ea9576000848401525b50505050565b60006002820490506001821680613ec757607f821691505b60208210811415613edb57613eda613fea565b5b50919050565b613eea826140b2565b810181811067ffffffffffffffff82111715613f0957613f08614048565b5b80604052505050565b6000613f1d82613e63565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f5057613f4f613f8c565b5b600182019050919050565b6000613f6682613e63565b9150613f7183613e63565b925082613f8157613f80613fbb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d11156140965760046000803e6140936000516140c3565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f53616c65206e6f7420656e61626c650000000000000000000000000000000000600082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f4e6f2077686974656c6973740000000000000000000000000000000000000000600082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f45786365656473206c696d697400000000000000000000000000000000000000600082015250565b7f4578636565647320353000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f56616c75652062656c6f77207072696365000000000000000000000000000000600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600060443d101561458a5761460d565b614592613ba4565b60043d036004823e80513d602482011167ffffffffffffffff821117156145ba57505061460d565b808201805167ffffffffffffffff8111156145d8575050505061460d565b80602083010160043d0385018111156145f557505050505061460d565b61460482602001850186613ee1565b82955050505050505b90565b61461981613df9565b811461462457600080fd5b50565b61463081613e0b565b811461463b57600080fd5b50565b61464781613e17565b811461465257600080fd5b50565b61465e81613e63565b811461466957600080fd5b5056fea26469706673582212206731ce87224c60b65d9805e9a579b4fe36836410d610a96bdffd8cb3b44ac5fd64736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000b5368696e6f6269436c7562000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000253430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): ShinobiClub
Arg [1] : symbol_ (string): SC
Arg [2] : uri_ (string):

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [4] : 5368696e6f6269436c7562000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [6] : 5343000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

19614:3266:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9813:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9210:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19653:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20347:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21069:507;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9183:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9530:271;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19829:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22776:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21701:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11338:442;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21816:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20556:505;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10054:524;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22590:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19705:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22689:81;;;:::i;:::-;;8029:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19678:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10588:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20238:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19781:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20451:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21929:653;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21584:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10751:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19946:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10929:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8256:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19909:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19742:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9813:231;9899:7;9946:1;9927:21;;:7;:21;;;;9919:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;10014:9;:13;10024:2;10014:13;;;;;;;;;;;:22;10028:7;10014:22;;;;;;;;;;;;;;;;10007:29;;9813:231;;;;:::o;9210:310::-;9312:4;9364:26;9349:41;;;:11;:41;;;;:110;;;;9422:37;9407:52;;;:11;:52;;;;9349:110;:163;;;;9476:36;9500:11;9476:23;:36::i;:::-;9349:163;9329:183;;9210:310;;;:::o;19653:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20347:98::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20427:10:::1;20415:9;:22;;;;20347:98:::0;:::o;21069:507::-;21159:7;:5;:7::i;:::-;21145:21;;:10;:21;;;:35;;;;21170:10;;;;;;;;;;;21145:35;21137:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21244:9;;21234:6;21219:13;:11;:13::i;:::-;:21;;;;:::i;:::-;:34;;21211:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;21300:2;21290:6;:12;;21282:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;21361:6;21349:9;;:18;;;;:::i;:::-;21336:9;:31;;:56;;;;21385:7;:5;:7::i;:::-;21371:21;;:10;:21;;;21336:56;21328:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;21432:6;21428:141;21448:6;21444:1;:10;21428:141;;;21475:32;21481:3;21486:13;:11;:13::i;:::-;21501:1;21475:32;;;;;;;;;;;;:5;:32::i;:::-;21552:1;21537:12;;:16;;;;:::i;:::-;21522:12;:31;;;;21456:3;;;;;:::i;:::-;;;;21428:141;;;;21069:507;;:::o;9183:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9530:271::-;9598:13;9624:21;9648:4;9624:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9694:1;9676:7;9670:21;:25;:123;;;;;;;;;;;;;;;;;;;;;;9735:7;9744:18;:7;:16;:18::i;:::-;9718:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9670:123;9663:130;;;9530:271;;;:::o;19829:36::-;;;;:::o;22776:99::-;22828:7;22855:12;;22848:19;;22776:99;:::o;21701:109::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21789:13:::1;21774:12;:28;;;;21701:109:::0;:::o;11338:442::-;11579:12;:10;:12::i;:::-;11571:20;;:4;:20;;;:60;;;;11595:36;11612:4;11618:12;:10;:12::i;:::-;11595:16;:36::i;:::-;11571:60;11549:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;11720:52;11743:4;11749:2;11753:3;11758:7;11767:4;11720:22;:52::i;:::-;11338:442;;;;;:::o;21816:107::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21903:12:::1;21889:11;:26;;;;21816:107:::0;:::o;20556:505::-;20644:7;:5;:7::i;:::-;20630:21;;:10;:21;;;:35;;;;20655:10;;;;;;;;;;;20630:35;20622:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20729:9;;20719:6;20704:13;:11;:13::i;:::-;:21;;;;:::i;:::-;:34;;20696:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20785:2;20775:6;:12;;20767:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;20846:6;20834:9;;:18;;;;:::i;:::-;20821:9;:31;;:56;;;;20870:7;:5;:7::i;:::-;20856:21;;:10;:21;;;20821:56;20813:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20917:6;20913:141;20933:6;20929:1;:10;20913:141;;;20960:32;20966:3;20971:13;:11;:13::i;:::-;20986:1;20960:32;;;;;;;;;;;;:5;:32::i;:::-;21037:1;21022:12;;:16;;;;:::i;:::-;21007:12;:31;;;;20941:3;;;;;:::i;:::-;;;;20913:141;;;;20556:505;;:::o;10054:524::-;10210:16;10271:3;:10;10252:8;:15;:29;10244:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;10340:30;10387:8;:15;10373:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10340:63;;10421:9;10416:122;10440:8;:15;10436:1;:19;10416:122;;;10496:30;10506:8;10515:1;10506:11;;;;;;;;:::i;:::-;;;;;;;;10519:3;10523:1;10519:6;;;;;;;;:::i;:::-;;;;;;;;10496:9;:30::i;:::-;10477:13;10491:1;10477:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;10457:3;;;;:::i;:::-;;;10416:122;;;;10557:13;10550:20;;;10054:524;;;;:::o;22590:93::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22668:7:::1;22661:4;:14;;;;;;;;;;;;:::i;:::-;;22590:93:::0;:::o;19705:30::-;;;;:::o;22689:81::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22748:14:::1;:12;:14::i;:::-;22689:81::o:0;8029:87::-;8075:7;8102:6;;;;;;;;;;;8095:13;;8029:87;:::o;19678:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10588:155::-;10683:52;10702:12;:10;:12::i;:::-;10716:8;10726;10683:18;:52::i;:::-;10588:155;;:::o;20238:103::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20322:11:::1;20309:10;;:24;;;;;;;;;;;;;;;;;;20238:103:::0;:::o;19781:34::-;;;;:::o;20451:99::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20532:10:::1;20520:9;:22;;;;20451:99:::0;:::o;21929:653::-;22027:7;:5;:7::i;:::-;22013:21;;:10;:21;;;:37;;;;22038:12;;;;;;;;;;;22013:37;22005:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;22103:7;:5;:7::i;:::-;22089:21;;:10;:21;;;:55;;;;22140:4;22114:30;;:10;:22;22125:10;22114:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;22089:55;22081:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;22205:12;;22195:6;22180:13;:11;:13::i;:::-;:21;;;;:::i;:::-;:37;;22172:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22264:2;22254:6;:12;;22246:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;22327:6;22313:11;;:20;;;;:::i;:::-;22300:9;:33;;:58;;;;22351:7;:5;:7::i;:::-;22337:21;;:10;:21;;;22300:58;22292:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;22398:6;22394:141;22414:6;22410:1;:10;22394:141;;;22441:32;22447:3;22452:13;:11;:13::i;:::-;22467:1;22441:32;;;;;;;;;;;;:5;:32::i;:::-;22518:1;22503:12;;:16;;;;:::i;:::-;22488:12;:31;;;;22422:3;;;;;:::i;:::-;;;;22394:141;;;;22570:4;22545:10;:22;22556:10;22545:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21929:653;;:::o;21584:111::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21674:13:::1;21659:12;;:28;;;;;;;;;;;;;;;;;;21584:111:::0;:::o;10751:168::-;10850:4;10874:18;:27;10893:7;10874:27;;;;;;;;;;;;;;;:37;10902:8;10874:37;;;;;;;;;;;;;;;;;;;;;;;;;10867:44;;10751:168;;;;:::o;19946:32::-;;;;;;;;;;;;;:::o;10929:401::-;11145:12;:10;:12::i;:::-;11137:20;;:4;:20;;;:60;;;;11161:36;11178:4;11184:12;:10;:12::i;:::-;11161:16;:36::i;:::-;11137:60;11115:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;11277:45;11295:4;11301:2;11305;11309:6;11317:4;11277:17;:45::i;:::-;10929:401;;;;;:::o;8256:201::-;8177:12;:10;:12::i;:::-;8166:23;;:7;:5;:7::i;:::-;:23;;;8158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8365:1:::1;8345:22;;:8;:22;;;;8337:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8421:28;8440:8;8421:18;:28::i;:::-;8256:201:::0;:::o;19909:30::-;;;;;;;;;;;;;:::o;19742:32::-;;;;:::o;3692:157::-;3777:4;3816:25;3801:40;;;:11;:40;;;;3794:47;;3692:157;;;:::o;7569:98::-;7622:7;7649:10;7642:17;;7569:98;:::o;13796:569::-;13963:1;13949:16;;:2;:16;;;;13941:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14016:16;14035:12;:10;:12::i;:::-;14016:31;;14060:102;14081:8;14099:1;14103:2;14107:21;14125:2;14107:17;:21::i;:::-;14130:25;14148:6;14130:17;:25::i;:::-;14157:4;14060:20;:102::i;:::-;14196:6;14175:9;:13;14185:2;14175:13;;;;;;;;;;;:17;14189:2;14175:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;14255:2;14218:52;;14251:1;14218:52;;14233:8;14218:52;;;14259:2;14263:6;14218:52;;;;;;;:::i;:::-;;;;;;;;14283:74;14314:8;14332:1;14336:2;14340;14344:6;14352:4;14283:30;:74::i;:::-;13930:435;13796:569;;;;:::o;345:540::-;401:13;448:1;439:5;:10;435:53;;;466:10;;;;;;;;;;;;;;;;;;;;;435:53;498:12;513:5;498:20;;529:14;554:78;569:1;561:4;:9;554:78;;587:8;;;;;:::i;:::-;;;;618:2;610:10;;;;;:::i;:::-;;;554:78;;;642:19;674:6;664:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:39;;692:154;708:1;699:5;:10;692:154;;736:1;726:11;;;;;:::i;:::-;;;803:2;795:5;:10;;;;:::i;:::-;782:2;:24;;;;:::i;:::-;769:39;;752:6;759;752:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;832:2;823:11;;;;;:::i;:::-;;;692:154;;;870:6;856:21;;;;;345:540;;;;:::o;12618:1074::-;12845:7;:14;12831:3;:10;:28;12823:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12937:1;12923:16;;:2;:16;;;;12915:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12994:16;13013:12;:10;:12::i;:::-;12994:31;;13038:60;13059:8;13069:4;13075:2;13079:3;13084:7;13093:4;13038:20;:60::i;:::-;13116:9;13111:421;13135:3;:10;13131:1;:14;13111:421;;;13167:10;13180:3;13184:1;13180:6;;;;;;;;:::i;:::-;;;;;;;;13167:19;;13201:14;13218:7;13226:1;13218:10;;;;;;;;:::i;:::-;;;;;;;;13201:27;;13245:19;13267:9;:13;13277:2;13267:13;;;;;;;;;;;:19;13281:4;13267:19;;;;;;;;;;;;;;;;13245:41;;13324:6;13309:11;:21;;13301:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;13457:6;13443:11;:20;13421:9;:13;13431:2;13421:13;;;;;;;;;;;:19;13435:4;13421:19;;;;;;;;;;;;;;;:42;;;;13514:6;13493:9;:13;13503:2;13493:13;;;;;;;;;;;:17;13507:2;13493:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;13152:380;;;13147:3;;;;:::i;:::-;;;13111:421;;;;13579:2;13549:47;;13573:4;13549:47;;13563:8;13549:47;;;13583:3;13588:7;13549:47;;;;;;;:::i;:::-;;;;;;;;13609:75;13645:8;13655:4;13661:2;13665:3;13670:7;13679:4;13609:35;:75::i;:::-;12812:880;12618:1074;;;;;:::o;19211:394::-;19263:18;19309:3;19306:2;19284:21;:24;;;;:::i;:::-;:28;;;;:::i;:::-;19263:49;;19322:20;19370:3;19367:2;19345:21;:24;;;;:::i;:::-;:28;;;;:::i;:::-;19322:51;;19383:20;19439:12;19428:10;19406:21;:32;;;;:::i;:::-;:45;;;;:::i;:::-;19383:68;;19469:3;;;;;;;;;;;19461:21;;:33;19483:10;19461:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19512:5;;;;;;;;;;;19504:23;;:37;19528:12;19504:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19559:12;:10;:12::i;:::-;19551:30;;:44;19582:12;19551:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19253:352;;;19211:394::o;16673:331::-;16828:8;16819:17;;:5;:17;;;;16811:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16931:8;16893:18;:25;16912:5;16893:25;;;;;;;;;;;;;;;:35;16919:8;16893:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16977:8;16955:41;;16970:5;16955:41;;;16987:8;16955:41;;;;;;:::i;:::-;;;;;;;;16673:331;;;:::o;11790:820::-;11992:1;11978:16;;:2;:16;;;;11970:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12049:16;12068:12;:10;:12::i;:::-;12049:31;;12093:96;12114:8;12124:4;12130:2;12134:21;12152:2;12134:17;:21::i;:::-;12157:25;12175:6;12157:17;:25::i;:::-;12184:4;12093:20;:96::i;:::-;12202:19;12224:9;:13;12234:2;12224:13;;;;;;;;;;;:19;12238:4;12224:19;;;;;;;;;;;;;;;;12202:41;;12277:6;12262:11;:21;;12254:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;12402:6;12388:11;:20;12366:9;:13;12376:2;12366:13;;;;;;;;;;;:19;12380:4;12366:19;;;;;;;;;;;;;;;:42;;;;12451:6;12430:9;:13;12440:2;12430:13;;;;;;;;;;;:17;12444:2;12430:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;12506:2;12475:46;;12500:4;12475:46;;12490:8;12475:46;;;12510:2;12514:6;12475:46;;;;;;;:::i;:::-;;;;;;;;12534:68;12565:8;12575:4;12581:2;12585;12589:6;12597:4;12534:30;:68::i;:::-;11959:651;;11790:820;;;;;:::o;8465:191::-;8539:16;8558:6;;;;;;;;;;;8539:25;;8584:8;8575:6;;:17;;;;;;;;;;;;;;;;;;8639:8;8608:40;;8629:8;8608:40;;;;;;;;;;;;8528:128;8465:191;:::o;18816:198::-;18882:16;18911:22;18950:1;18936:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18911:41;;18974:7;18963:5;18969:1;18963:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;19001:5;18994:12;;;18816:198;;;:::o;17014:221::-;;;;;;;:::o;17243:744::-;17458:15;:2;:13;;;:15::i;:::-;17454:526;;;17511:2;17494:38;;;17533:8;17543:4;17549:2;17553:6;17561:4;17494:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17490:479;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;17842:6;17835:14;;;;;;;;;;;:::i;:::-;;;;;;;;17490:479;;;17891:62;;;;;;;;;;:::i;:::-;;;;;;;;17490:479;17628:43;;;17616:55;;;:8;:55;;;;17612:154;;17696:50;;;;;;;;;;:::i;:::-;;;;;;;;17612:154;17567:214;17454:526;17243:744;;;;;;:::o;17995:813::-;18235:15;:2;:13;;;:15::i;:::-;18231:570;;;18288:2;18271:43;;;18315:8;18325:4;18331:3;18336:7;18345:4;18271:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;18267:523;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;18663:6;18656:14;;;;;;;;;;;:::i;:::-;;;;;;;;18267:523;;;18712:62;;;;;;;;;;:::i;:::-;;;;;;;;18267:523;18444:48;;;18432:60;;;:8;:60;;;;18428:159;;18517:50;;;;;;;;;;:::i;:::-;;;;;;;;18428:159;18351:251;18231:570;17995:813;;;;;;:::o;3881:117::-;3941:4;3989:1;3967:7;:19;;;:23;3960:30;;3881:117;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:410::-;1574:5;1599:65;1615:48;1656:6;1615:48;:::i;:::-;1599:65;:::i;:::-;1590:74;;1687:6;1680:5;1673:21;1725:4;1718:5;1714:16;1763:3;1754:6;1749:3;1745:16;1742:25;1739:112;;;1770:79;;:::i;:::-;1739:112;1860:41;1894:6;1889:3;1884;1860:41;:::i;:::-;1580:327;1497:410;;;;;:::o;1913:412::-;1991:5;2016:66;2032:49;2074:6;2032:49;:::i;:::-;2016:66;:::i;:::-;2007:75;;2105:6;2098:5;2091:21;2143:4;2136:5;2132:16;2181:3;2172:6;2167:3;2163:16;2160:25;2157:112;;;2188:79;;:::i;:::-;2157:112;2278:41;2312:6;2307:3;2302;2278:41;:::i;:::-;1997:328;1913:412;;;;;:::o;2331:139::-;2377:5;2415:6;2402:20;2393:29;;2431:33;2458:5;2431:33;:::i;:::-;2331:139;;;;:::o;2493:370::-;2564:5;2613:3;2606:4;2598:6;2594:17;2590:27;2580:122;;2621:79;;:::i;:::-;2580:122;2738:6;2725:20;2763:94;2853:3;2845:6;2838:4;2830:6;2826:17;2763:94;:::i;:::-;2754:103;;2570:293;2493:370;;;;:::o;2886:::-;2957:5;3006:3;2999:4;2991:6;2987:17;2983:27;2973:122;;3014:79;;:::i;:::-;2973:122;3131:6;3118:20;3156:94;3246:3;3238:6;3231:4;3223:6;3219:17;3156:94;:::i;:::-;3147:103;;2963:293;2886:370;;;;:::o;3262:133::-;3305:5;3343:6;3330:20;3321:29;;3359:30;3383:5;3359:30;:::i;:::-;3262:133;;;;:::o;3401:137::-;3446:5;3484:6;3471:20;3462:29;;3500:32;3526:5;3500:32;:::i;:::-;3401:137;;;;:::o;3544:141::-;3600:5;3631:6;3625:13;3616:22;;3647:32;3673:5;3647:32;:::i;:::-;3544:141;;;;:::o;3704:338::-;3759:5;3808:3;3801:4;3793:6;3789:17;3785:27;3775:122;;3816:79;;:::i;:::-;3775:122;3933:6;3920:20;3958:78;4032:3;4024:6;4017:4;4009:6;4005:17;3958:78;:::i;:::-;3949:87;;3765:277;3704:338;;;;:::o;4062:340::-;4118:5;4167:3;4160:4;4152:6;4148:17;4144:27;4134:122;;4175:79;;:::i;:::-;4134:122;4292:6;4279:20;4317:79;4392:3;4384:6;4377:4;4369:6;4365:17;4317:79;:::i;:::-;4308:88;;4124:278;4062:340;;;;:::o;4408:139::-;4454:5;4492:6;4479:20;4470:29;;4508:33;4535:5;4508:33;:::i;:::-;4408:139;;;;:::o;4553:329::-;4612:6;4661:2;4649:9;4640:7;4636:23;4632:32;4629:119;;;4667:79;;:::i;:::-;4629:119;4787:1;4812:53;4857:7;4848:6;4837:9;4833:22;4812:53;:::i;:::-;4802:63;;4758:117;4553:329;;;;:::o;4888:474::-;4956:6;4964;5013:2;5001:9;4992:7;4988:23;4984:32;4981:119;;;5019:79;;:::i;:::-;4981:119;5139:1;5164:53;5209:7;5200:6;5189:9;5185:22;5164:53;:::i;:::-;5154:63;;5110:117;5266:2;5292:53;5337:7;5328:6;5317:9;5313:22;5292:53;:::i;:::-;5282:63;;5237:118;4888:474;;;;;:::o;5368:1509::-;5522:6;5530;5538;5546;5554;5603:3;5591:9;5582:7;5578:23;5574:33;5571:120;;;5610:79;;:::i;:::-;5571:120;5730:1;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5701:117;5857:2;5883:53;5928:7;5919:6;5908:9;5904:22;5883:53;:::i;:::-;5873:63;;5828:118;6013:2;6002:9;5998:18;5985:32;6044:18;6036:6;6033:30;6030:117;;;6066:79;;:::i;:::-;6030:117;6171:78;6241:7;6232:6;6221:9;6217:22;6171:78;:::i;:::-;6161:88;;5956:303;6326:2;6315:9;6311:18;6298:32;6357:18;6349:6;6346:30;6343:117;;;6379:79;;:::i;:::-;6343:117;6484:78;6554:7;6545:6;6534:9;6530:22;6484:78;:::i;:::-;6474:88;;6269:303;6639:3;6628:9;6624:19;6611:33;6671:18;6663:6;6660:30;6657:117;;;6693:79;;:::i;:::-;6657:117;6798:62;6852:7;6843:6;6832:9;6828:22;6798:62;:::i;:::-;6788:72;;6582:288;5368:1509;;;;;;;;:::o;6883:1089::-;6987:6;6995;7003;7011;7019;7068:3;7056:9;7047:7;7043:23;7039:33;7036:120;;;7075:79;;:::i;:::-;7036:120;7195:1;7220:53;7265:7;7256:6;7245:9;7241:22;7220:53;:::i;:::-;7210:63;;7166:117;7322:2;7348:53;7393:7;7384:6;7373:9;7369:22;7348:53;:::i;:::-;7338:63;;7293:118;7450:2;7476:53;7521:7;7512:6;7501:9;7497:22;7476:53;:::i;:::-;7466:63;;7421:118;7578:2;7604:53;7649:7;7640:6;7629:9;7625:22;7604:53;:::i;:::-;7594:63;;7549:118;7734:3;7723:9;7719:19;7706:33;7766:18;7758:6;7755:30;7752:117;;;7788:79;;:::i;:::-;7752:117;7893:62;7947:7;7938:6;7927:9;7923:22;7893:62;:::i;:::-;7883:72;;7677:288;6883:1089;;;;;;;;:::o;7978:468::-;8043:6;8051;8100:2;8088:9;8079:7;8075:23;8071:32;8068:119;;;8106:79;;:::i;:::-;8068:119;8226:1;8251:53;8296:7;8287:6;8276:9;8272:22;8251:53;:::i;:::-;8241:63;;8197:117;8353:2;8379:50;8421:7;8412:6;8401:9;8397:22;8379:50;:::i;:::-;8369:60;;8324:115;7978:468;;;;;:::o;8452:474::-;8520:6;8528;8577:2;8565:9;8556:7;8552:23;8548:32;8545:119;;;8583:79;;:::i;:::-;8545:119;8703:1;8728:53;8773:7;8764:6;8753:9;8749:22;8728:53;:::i;:::-;8718:63;;8674:117;8830:2;8856:53;8901:7;8892:6;8881:9;8877:22;8856:53;:::i;:::-;8846:63;;8801:118;8452:474;;;;;:::o;8932:894::-;9050:6;9058;9107:2;9095:9;9086:7;9082:23;9078:32;9075:119;;;9113:79;;:::i;:::-;9075:119;9261:1;9250:9;9246:17;9233:31;9291:18;9283:6;9280:30;9277:117;;;9313:79;;:::i;:::-;9277:117;9418:78;9488:7;9479:6;9468:9;9464:22;9418:78;:::i;:::-;9408:88;;9204:302;9573:2;9562:9;9558:18;9545:32;9604:18;9596:6;9593:30;9590:117;;;9626:79;;:::i;:::-;9590:117;9731:78;9801:7;9792:6;9781:9;9777:22;9731:78;:::i;:::-;9721:88;;9516:303;8932:894;;;;;:::o;9832:323::-;9888:6;9937:2;9925:9;9916:7;9912:23;9908:32;9905:119;;;9943:79;;:::i;:::-;9905:119;10063:1;10088:50;10130:7;10121:6;10110:9;10106:22;10088:50;:::i;:::-;10078:60;;10034:114;9832:323;;;;:::o;10161:327::-;10219:6;10268:2;10256:9;10247:7;10243:23;10239:32;10236:119;;;10274:79;;:::i;:::-;10236:119;10394:1;10419:52;10463:7;10454:6;10443:9;10439:22;10419:52;:::i;:::-;10409:62;;10365:116;10161:327;;;;:::o;10494:349::-;10563:6;10612:2;10600:9;10591:7;10587:23;10583:32;10580:119;;;10618:79;;:::i;:::-;10580:119;10738:1;10763:63;10818:7;10809:6;10798:9;10794:22;10763:63;:::i;:::-;10753:73;;10709:127;10494:349;;;;:::o;10849:509::-;10918:6;10967:2;10955:9;10946:7;10942:23;10938:32;10935:119;;;10973:79;;:::i;:::-;10935:119;11121:1;11110:9;11106:17;11093:31;11151:18;11143:6;11140:30;11137:117;;;11173:79;;:::i;:::-;11137:117;11278:63;11333:7;11324:6;11313:9;11309:22;11278:63;:::i;:::-;11268:73;;11064:287;10849:509;;;;:::o;11364:329::-;11423:6;11472:2;11460:9;11451:7;11447:23;11443:32;11440:119;;;11478:79;;:::i;:::-;11440:119;11598:1;11623:53;11668:7;11659:6;11648:9;11644:22;11623:53;:::i;:::-;11613:63;;11569:117;11364:329;;;;:::o;11699:179::-;11768:10;11789:46;11831:3;11823:6;11789:46;:::i;:::-;11867:4;11862:3;11858:14;11844:28;;11699:179;;;;:::o;11884:118::-;11971:24;11989:5;11971:24;:::i;:::-;11966:3;11959:37;11884:118;;:::o;12038:732::-;12157:3;12186:54;12234:5;12186:54;:::i;:::-;12256:86;12335:6;12330:3;12256:86;:::i;:::-;12249:93;;12366:56;12416:5;12366:56;:::i;:::-;12445:7;12476:1;12461:284;12486:6;12483:1;12480:13;12461:284;;;12562:6;12556:13;12589:63;12648:3;12633:13;12589:63;:::i;:::-;12582:70;;12675:60;12728:6;12675:60;:::i;:::-;12665:70;;12521:224;12508:1;12505;12501:9;12496:14;;12461:284;;;12465:14;12761:3;12754:10;;12162:608;;;12038:732;;;;:::o;12776:109::-;12857:21;12872:5;12857:21;:::i;:::-;12852:3;12845:34;12776:109;;:::o;12891:360::-;12977:3;13005:38;13037:5;13005:38;:::i;:::-;13059:70;13122:6;13117:3;13059:70;:::i;:::-;13052:77;;13138:52;13183:6;13178:3;13171:4;13164:5;13160:16;13138:52;:::i;:::-;13215:29;13237:6;13215:29;:::i;:::-;13210:3;13206:39;13199:46;;12981:270;12891:360;;;;:::o;13257:364::-;13345:3;13373:39;13406:5;13373:39;:::i;:::-;13428:71;13492:6;13487:3;13428:71;:::i;:::-;13421:78;;13508:52;13553:6;13548:3;13541:4;13534:5;13530:16;13508:52;:::i;:::-;13585:29;13607:6;13585:29;:::i;:::-;13580:3;13576:39;13569:46;;13349:272;13257:364;;;;:::o;13627:377::-;13733:3;13761:39;13794:5;13761:39;:::i;:::-;13816:89;13898:6;13893:3;13816:89;:::i;:::-;13809:96;;13914:52;13959:6;13954:3;13947:4;13940:5;13936:16;13914:52;:::i;:::-;13991:6;13986:3;13982:16;13975:23;;13737:267;13627:377;;;;:::o;14010:366::-;14152:3;14173:67;14237:2;14232:3;14173:67;:::i;:::-;14166:74;;14249:93;14338:3;14249:93;:::i;:::-;14367:2;14362:3;14358:12;14351:19;;14010:366;;;:::o;14382:::-;14524:3;14545:67;14609:2;14604:3;14545:67;:::i;:::-;14538:74;;14621:93;14710:3;14621:93;:::i;:::-;14739:2;14734:3;14730:12;14723:19;;14382:366;;;:::o;14754:::-;14896:3;14917:67;14981:2;14976:3;14917:67;:::i;:::-;14910:74;;14993:93;15082:3;14993:93;:::i;:::-;15111:2;15106:3;15102:12;15095:19;;14754:366;;;:::o;15126:::-;15268:3;15289:67;15353:2;15348:3;15289:67;:::i;:::-;15282:74;;15365:93;15454:3;15365:93;:::i;:::-;15483:2;15478:3;15474:12;15467:19;;15126:366;;;:::o;15498:::-;15640:3;15661:67;15725:2;15720:3;15661:67;:::i;:::-;15654:74;;15737:93;15826:3;15737:93;:::i;:::-;15855:2;15850:3;15846:12;15839:19;;15498:366;;;:::o;15870:::-;16012:3;16033:67;16097:2;16092:3;16033:67;:::i;:::-;16026:74;;16109:93;16198:3;16109:93;:::i;:::-;16227:2;16222:3;16218:12;16211:19;;15870:366;;;:::o;16242:::-;16384:3;16405:67;16469:2;16464:3;16405:67;:::i;:::-;16398:74;;16481:93;16570:3;16481:93;:::i;:::-;16599:2;16594:3;16590:12;16583:19;;16242:366;;;:::o;16614:::-;16756:3;16777:67;16841:2;16836:3;16777:67;:::i;:::-;16770:74;;16853:93;16942:3;16853:93;:::i;:::-;16971:2;16966:3;16962:12;16955:19;;16614:366;;;:::o;16986:::-;17128:3;17149:67;17213:2;17208:3;17149:67;:::i;:::-;17142:74;;17225:93;17314:3;17225:93;:::i;:::-;17343:2;17338:3;17334:12;17327:19;;16986:366;;;:::o;17358:::-;17500:3;17521:67;17585:2;17580:3;17521:67;:::i;:::-;17514:74;;17597:93;17686:3;17597:93;:::i;:::-;17715:2;17710:3;17706:12;17699:19;;17358:366;;;:::o;17730:::-;17872:3;17893:67;17957:2;17952:3;17893:67;:::i;:::-;17886:74;;17969:93;18058:3;17969:93;:::i;:::-;18087:2;18082:3;18078:12;18071:19;;17730:366;;;:::o;18102:::-;18244:3;18265:67;18329:2;18324:3;18265:67;:::i;:::-;18258:74;;18341:93;18430:3;18341:93;:::i;:::-;18459:2;18454:3;18450:12;18443:19;;18102:366;;;:::o;18474:::-;18616:3;18637:67;18701:2;18696:3;18637:67;:::i;:::-;18630:74;;18713:93;18802:3;18713:93;:::i;:::-;18831:2;18826:3;18822:12;18815:19;;18474:366;;;:::o;18846:::-;18988:3;19009:67;19073:2;19068:3;19009:67;:::i;:::-;19002:74;;19085:93;19174:3;19085:93;:::i;:::-;19203:2;19198:3;19194:12;19187:19;;18846:366;;;:::o;19218:::-;19360:3;19381:67;19445:2;19440:3;19381:67;:::i;:::-;19374:74;;19457:93;19546:3;19457:93;:::i;:::-;19575:2;19570:3;19566:12;19559:19;;19218:366;;;:::o;19590:::-;19732:3;19753:67;19817:2;19812:3;19753:67;:::i;:::-;19746:74;;19829:93;19918:3;19829:93;:::i;:::-;19947:2;19942:3;19938:12;19931:19;;19590:366;;;:::o;19962:::-;20104:3;20125:67;20189:2;20184:3;20125:67;:::i;:::-;20118:74;;20201:93;20290:3;20201:93;:::i;:::-;20319:2;20314:3;20310:12;20303:19;;19962:366;;;:::o;20334:::-;20476:3;20497:67;20561:2;20556:3;20497:67;:::i;:::-;20490:74;;20573:93;20662:3;20573:93;:::i;:::-;20691:2;20686:3;20682:12;20675:19;;20334:366;;;:::o;20706:108::-;20783:24;20801:5;20783:24;:::i;:::-;20778:3;20771:37;20706:108;;:::o;20820:118::-;20907:24;20925:5;20907:24;:::i;:::-;20902:3;20895:37;20820:118;;:::o;20944:435::-;21124:3;21146:95;21237:3;21228:6;21146:95;:::i;:::-;21139:102;;21258:95;21349:3;21340:6;21258:95;:::i;:::-;21251:102;;21370:3;21363:10;;20944:435;;;;;:::o;21385:222::-;21478:4;21516:2;21505:9;21501:18;21493:26;;21529:71;21597:1;21586:9;21582:17;21573:6;21529:71;:::i;:::-;21385:222;;;;:::o;21613:1053::-;21936:4;21974:3;21963:9;21959:19;21951:27;;21988:71;22056:1;22045:9;22041:17;22032:6;21988:71;:::i;:::-;22069:72;22137:2;22126:9;22122:18;22113:6;22069:72;:::i;:::-;22188:9;22182:4;22178:20;22173:2;22162:9;22158:18;22151:48;22216:108;22319:4;22310:6;22216:108;:::i;:::-;22208:116;;22371:9;22365:4;22361:20;22356:2;22345:9;22341:18;22334:48;22399:108;22502:4;22493:6;22399:108;:::i;:::-;22391:116;;22555:9;22549:4;22545:20;22539:3;22528:9;22524:19;22517:49;22583:76;22654:4;22645:6;22583:76;:::i;:::-;22575:84;;21613:1053;;;;;;;;:::o;22672:751::-;22895:4;22933:3;22922:9;22918:19;22910:27;;22947:71;23015:1;23004:9;23000:17;22991:6;22947:71;:::i;:::-;23028:72;23096:2;23085:9;23081:18;23072:6;23028:72;:::i;:::-;23110;23178:2;23167:9;23163:18;23154:6;23110:72;:::i;:::-;23192;23260:2;23249:9;23245:18;23236:6;23192:72;:::i;:::-;23312:9;23306:4;23302:20;23296:3;23285:9;23281:19;23274:49;23340:76;23411:4;23402:6;23340:76;:::i;:::-;23332:84;;22672:751;;;;;;;;:::o;23429:373::-;23572:4;23610:2;23599:9;23595:18;23587:26;;23659:9;23653:4;23649:20;23645:1;23634:9;23630:17;23623:47;23687:108;23790:4;23781:6;23687:108;:::i;:::-;23679:116;;23429:373;;;;:::o;23808:634::-;24029:4;24067:2;24056:9;24052:18;24044:26;;24116:9;24110:4;24106:20;24102:1;24091:9;24087:17;24080:47;24144:108;24247:4;24238:6;24144:108;:::i;:::-;24136:116;;24299:9;24293:4;24289:20;24284:2;24273:9;24269:18;24262:48;24327:108;24430:4;24421:6;24327:108;:::i;:::-;24319:116;;23808:634;;;;;:::o;24448:210::-;24535:4;24573:2;24562:9;24558:18;24550:26;;24586:65;24648:1;24637:9;24633:17;24624:6;24586:65;:::i;:::-;24448:210;;;;:::o;24664:313::-;24777:4;24815:2;24804:9;24800:18;24792:26;;24864:9;24858:4;24854:20;24850:1;24839:9;24835:17;24828:47;24892:78;24965:4;24956:6;24892:78;:::i;:::-;24884:86;;24664:313;;;;:::o;24983:419::-;25149:4;25187:2;25176:9;25172:18;25164:26;;25236:9;25230:4;25226:20;25222:1;25211:9;25207:17;25200:47;25264:131;25390:4;25264:131;:::i;:::-;25256:139;;24983:419;;;:::o;25408:::-;25574:4;25612:2;25601:9;25597:18;25589:26;;25661:9;25655:4;25651:20;25647:1;25636:9;25632:17;25625:47;25689:131;25815:4;25689:131;:::i;:::-;25681:139;;25408:419;;;:::o;25833:::-;25999:4;26037:2;26026:9;26022:18;26014:26;;26086:9;26080:4;26076:20;26072:1;26061:9;26057:17;26050:47;26114:131;26240:4;26114:131;:::i;:::-;26106:139;;25833:419;;;:::o;26258:::-;26424:4;26462:2;26451:9;26447:18;26439:26;;26511:9;26505:4;26501:20;26497:1;26486:9;26482:17;26475:47;26539:131;26665:4;26539:131;:::i;:::-;26531:139;;26258:419;;;:::o;26683:::-;26849:4;26887:2;26876:9;26872:18;26864:26;;26936:9;26930:4;26926:20;26922:1;26911:9;26907:17;26900:47;26964:131;27090:4;26964:131;:::i;:::-;26956:139;;26683:419;;;:::o;27108:::-;27274:4;27312:2;27301:9;27297:18;27289:26;;27361:9;27355:4;27351:20;27347:1;27336:9;27332:17;27325:47;27389:131;27515:4;27389:131;:::i;:::-;27381:139;;27108:419;;;:::o;27533:::-;27699:4;27737:2;27726:9;27722:18;27714:26;;27786:9;27780:4;27776:20;27772:1;27761:9;27757:17;27750:47;27814:131;27940:4;27814:131;:::i;:::-;27806:139;;27533:419;;;:::o;27958:::-;28124:4;28162:2;28151:9;28147:18;28139:26;;28211:9;28205:4;28201:20;28197:1;28186:9;28182:17;28175:47;28239:131;28365:4;28239:131;:::i;:::-;28231:139;;27958:419;;;:::o;28383:::-;28549:4;28587:2;28576:9;28572:18;28564:26;;28636:9;28630:4;28626:20;28622:1;28611:9;28607:17;28600:47;28664:131;28790:4;28664:131;:::i;:::-;28656:139;;28383:419;;;:::o;28808:::-;28974:4;29012:2;29001:9;28997:18;28989:26;;29061:9;29055:4;29051:20;29047:1;29036:9;29032:17;29025:47;29089:131;29215:4;29089:131;:::i;:::-;29081:139;;28808:419;;;:::o;29233:::-;29399:4;29437:2;29426:9;29422:18;29414:26;;29486:9;29480:4;29476:20;29472:1;29461:9;29457:17;29450:47;29514:131;29640:4;29514:131;:::i;:::-;29506:139;;29233:419;;;:::o;29658:::-;29824:4;29862:2;29851:9;29847:18;29839:26;;29911:9;29905:4;29901:20;29897:1;29886:9;29882:17;29875:47;29939:131;30065:4;29939:131;:::i;:::-;29931:139;;29658:419;;;:::o;30083:::-;30249:4;30287:2;30276:9;30272:18;30264:26;;30336:9;30330:4;30326:20;30322:1;30311:9;30307:17;30300:47;30364:131;30490:4;30364:131;:::i;:::-;30356:139;;30083:419;;;:::o;30508:::-;30674:4;30712:2;30701:9;30697:18;30689:26;;30761:9;30755:4;30751:20;30747:1;30736:9;30732:17;30725:47;30789:131;30915:4;30789:131;:::i;:::-;30781:139;;30508:419;;;:::o;30933:::-;31099:4;31137:2;31126:9;31122:18;31114:26;;31186:9;31180:4;31176:20;31172:1;31161:9;31157:17;31150:47;31214:131;31340:4;31214:131;:::i;:::-;31206:139;;30933:419;;;:::o;31358:::-;31524:4;31562:2;31551:9;31547:18;31539:26;;31611:9;31605:4;31601:20;31597:1;31586:9;31582:17;31575:47;31639:131;31765:4;31639:131;:::i;:::-;31631:139;;31358:419;;;:::o;31783:::-;31949:4;31987:2;31976:9;31972:18;31964:26;;32036:9;32030:4;32026:20;32022:1;32011:9;32007:17;32000:47;32064:131;32190:4;32064:131;:::i;:::-;32056:139;;31783:419;;;:::o;32208:::-;32374:4;32412:2;32401:9;32397:18;32389:26;;32461:9;32455:4;32451:20;32447:1;32436:9;32432:17;32425:47;32489:131;32615:4;32489:131;:::i;:::-;32481:139;;32208:419;;;:::o;32633:222::-;32726:4;32764:2;32753:9;32749:18;32741:26;;32777:71;32845:1;32834:9;32830:17;32821:6;32777:71;:::i;:::-;32633:222;;;;:::o;32861:332::-;32982:4;33020:2;33009:9;33005:18;32997:26;;33033:71;33101:1;33090:9;33086:17;33077:6;33033:71;:::i;:::-;33114:72;33182:2;33171:9;33167:18;33158:6;33114:72;:::i;:::-;32861:332;;;;;:::o;33199:129::-;33233:6;33260:20;;:::i;:::-;33250:30;;33289:33;33317:4;33309:6;33289:33;:::i;:::-;33199:129;;;:::o;33334:75::-;33367:6;33400:2;33394:9;33384:19;;33334:75;:::o;33415:311::-;33492:4;33582:18;33574:6;33571:30;33568:56;;;33604:18;;:::i;:::-;33568:56;33654:4;33646:6;33642:17;33634:25;;33714:4;33708;33704:15;33696:23;;33415:311;;;:::o;33732:::-;33809:4;33899:18;33891:6;33888:30;33885:56;;;33921:18;;:::i;:::-;33885:56;33971:4;33963:6;33959:17;33951:25;;34031:4;34025;34021:15;34013:23;;33732:311;;;:::o;34049:307::-;34110:4;34200:18;34192:6;34189:30;34186:56;;;34222:18;;:::i;:::-;34186:56;34260:29;34282:6;34260:29;:::i;:::-;34252:37;;34344:4;34338;34334:15;34326:23;;34049:307;;;:::o;34362:308::-;34424:4;34514:18;34506:6;34503:30;34500:56;;;34536:18;;:::i;:::-;34500:56;34574:29;34596:6;34574:29;:::i;:::-;34566:37;;34658:4;34652;34648:15;34640:23;;34362:308;;;:::o;34676:132::-;34743:4;34766:3;34758:11;;34796:4;34791:3;34787:14;34779:22;;34676:132;;;:::o;34814:114::-;34881:6;34915:5;34909:12;34899:22;;34814:114;;;:::o;34934:98::-;34985:6;35019:5;35013:12;35003:22;;34934:98;;;:::o;35038:99::-;35090:6;35124:5;35118:12;35108:22;;35038:99;;;:::o;35143:113::-;35213:4;35245;35240:3;35236:14;35228:22;;35143:113;;;:::o;35262:184::-;35361:11;35395:6;35390:3;35383:19;35435:4;35430:3;35426:14;35411:29;;35262:184;;;;:::o;35452:168::-;35535:11;35569:6;35564:3;35557:19;35609:4;35604:3;35600:14;35585:29;;35452:168;;;;:::o;35626:169::-;35710:11;35744:6;35739:3;35732:19;35784:4;35779:3;35775:14;35760:29;;35626:169;;;;:::o;35801:148::-;35903:11;35940:3;35925:18;;35801:148;;;;:::o;35955:305::-;35995:3;36014:20;36032:1;36014:20;:::i;:::-;36009:25;;36048:20;36066:1;36048:20;:::i;:::-;36043:25;;36202:1;36134:66;36130:74;36127:1;36124:81;36121:107;;;36208:18;;:::i;:::-;36121:107;36252:1;36249;36245:9;36238:16;;35955:305;;;;:::o;36266:185::-;36306:1;36323:20;36341:1;36323:20;:::i;:::-;36318:25;;36357:20;36375:1;36357:20;:::i;:::-;36352:25;;36396:1;36386:35;;36401:18;;:::i;:::-;36386:35;36443:1;36440;36436:9;36431:14;;36266:185;;;;:::o;36457:348::-;36497:7;36520:20;36538:1;36520:20;:::i;:::-;36515:25;;36554:20;36572:1;36554:20;:::i;:::-;36549:25;;36742:1;36674:66;36670:74;36667:1;36664:81;36659:1;36652:9;36645:17;36641:105;36638:131;;;36749:18;;:::i;:::-;36638:131;36797:1;36794;36790:9;36779:20;;36457:348;;;;:::o;36811:191::-;36851:4;36871:20;36889:1;36871:20;:::i;:::-;36866:25;;36905:20;36923:1;36905:20;:::i;:::-;36900:25;;36944:1;36941;36938:8;36935:34;;;36949:18;;:::i;:::-;36935:34;36994:1;36991;36987:9;36979:17;;36811:191;;;;:::o;37008:96::-;37045:7;37074:24;37092:5;37074:24;:::i;:::-;37063:35;;37008:96;;;:::o;37110:90::-;37144:7;37187:5;37180:13;37173:21;37162:32;;37110:90;;;:::o;37206:149::-;37242:7;37282:66;37275:5;37271:78;37260:89;;37206:149;;;:::o;37361:126::-;37398:7;37438:42;37431:5;37427:54;37416:65;;37361:126;;;:::o;37493:77::-;37530:7;37559:5;37548:16;;37493:77;;;:::o;37576:154::-;37660:6;37655:3;37650;37637:30;37722:1;37713:6;37708:3;37704:16;37697:27;37576:154;;;:::o;37736:307::-;37804:1;37814:113;37828:6;37825:1;37822:13;37814:113;;;37913:1;37908:3;37904:11;37898:18;37894:1;37889:3;37885:11;37878:39;37850:2;37847:1;37843:10;37838:15;;37814:113;;;37945:6;37942:1;37939:13;37936:101;;;38025:1;38016:6;38011:3;38007:16;38000:27;37936:101;37785:258;37736:307;;;:::o;38049:320::-;38093:6;38130:1;38124:4;38120:12;38110:22;;38177:1;38171:4;38167:12;38198:18;38188:81;;38254:4;38246:6;38242:17;38232:27;;38188:81;38316:2;38308:6;38305:14;38285:18;38282:38;38279:84;;;38335:18;;:::i;:::-;38279:84;38100:269;38049:320;;;:::o;38375:281::-;38458:27;38480:4;38458:27;:::i;:::-;38450:6;38446:40;38588:6;38576:10;38573:22;38552:18;38540:10;38537:34;38534:62;38531:88;;;38599:18;;:::i;:::-;38531:88;38639:10;38635:2;38628:22;38418:238;38375:281;;:::o;38662:233::-;38701:3;38724:24;38742:5;38724:24;:::i;:::-;38715:33;;38770:66;38763:5;38760:77;38757:103;;;38840:18;;:::i;:::-;38757:103;38887:1;38880:5;38876:13;38869:20;;38662:233;;;:::o;38901:176::-;38933:1;38950:20;38968:1;38950:20;:::i;:::-;38945:25;;38984:20;39002:1;38984:20;:::i;:::-;38979:25;;39023:1;39013:35;;39028:18;;:::i;:::-;39013:35;39069:1;39066;39062:9;39057:14;;38901:176;;;;:::o;39083:180::-;39131:77;39128:1;39121:88;39228:4;39225:1;39218:15;39252:4;39249:1;39242:15;39269:180;39317:77;39314:1;39307:88;39414:4;39411:1;39404:15;39438:4;39435:1;39428:15;39455:180;39503:77;39500:1;39493:88;39600:4;39597:1;39590:15;39624:4;39621:1;39614:15;39641:180;39689:77;39686:1;39679:88;39786:4;39783:1;39776:15;39810:4;39807:1;39800:15;39827:180;39875:77;39872:1;39865:88;39972:4;39969:1;39962:15;39996:4;39993:1;39986:15;40013:183;40048:3;40086:1;40068:16;40065:23;40062:128;;;40124:1;40121;40118;40103:23;40146:34;40177:1;40171:8;40146:34;:::i;:::-;40139:41;;40062:128;40013:183;:::o;40202:117::-;40311:1;40308;40301:12;40325:117;40434:1;40431;40424:12;40448:117;40557:1;40554;40547:12;40571:117;40680:1;40677;40670:12;40694:117;40803:1;40800;40793:12;40817:102;40858:6;40909:2;40905:7;40900:2;40893:5;40889:14;40885:28;40875:38;;40817:102;;;:::o;40925:106::-;40969:8;41018:5;41013:3;41009:15;40988:36;;40925:106;;;:::o;41037:239::-;41177:34;41173:1;41165:6;41161:14;41154:58;41246:22;41241:2;41233:6;41229:15;41222:47;41037:239;:::o;41282:227::-;41422:34;41418:1;41410:6;41406:14;41399:58;41491:10;41486:2;41478:6;41474:15;41467:35;41282:227;:::o;41515:230::-;41655:34;41651:1;41643:6;41639:14;41632:58;41724:13;41719:2;41711:6;41707:15;41700:38;41515:230;:::o;41751:225::-;41891:34;41887:1;41879:6;41875:14;41868:58;41960:8;41955:2;41947:6;41943:15;41936:33;41751:225;:::o;41982:165::-;42122:17;42118:1;42110:6;42106:14;42099:41;41982:165;:::o;42153:228::-;42293:34;42289:1;42281:6;42277:14;42270:58;42362:11;42357:2;42349:6;42345:15;42338:36;42153:228;:::o;42387:162::-;42527:14;42523:1;42515:6;42511:14;42504:38;42387:162;:::o;42555:224::-;42695:34;42691:1;42683:6;42679:14;42672:58;42764:7;42759:2;42751:6;42747:15;42740:32;42555:224;:::o;42785:237::-;42925:34;42921:1;42913:6;42909:14;42902:58;42994:20;42989:2;42981:6;42977:15;42970:45;42785:237;:::o;43028:229::-;43168:34;43164:1;43156:6;43152:14;43145:58;43237:12;43232:2;43224:6;43220:15;43213:37;43028:229;:::o;43263:163::-;43403:15;43399:1;43391:6;43387:14;43380:39;43263:163;:::o;43432:160::-;43572:12;43568:1;43560:6;43556:14;43549:36;43432:160;:::o;43598:182::-;43738:34;43734:1;43726:6;43722:14;43715:58;43598:182;:::o;43786:167::-;43926:19;43922:1;43914:6;43910:14;43903:43;43786:167;:::o;43959:228::-;44099:34;44095:1;44087:6;44083:14;44076:58;44168:11;44163:2;44155:6;44151:15;44144:36;43959:228;:::o;44193:::-;44333:34;44329:1;44321:6;44317:14;44310:58;44402:11;44397:2;44389:6;44385:15;44378:36;44193:228;:::o;44427:227::-;44567:34;44563:1;44555:6;44551:14;44544:58;44636:10;44631:2;44623:6;44619:15;44612:35;44427:227;:::o;44660:220::-;44800:34;44796:1;44788:6;44784:14;44777:58;44869:3;44864:2;44856:6;44852:15;44845:28;44660:220;:::o;44886:711::-;44925:3;44963:4;44945:16;44942:26;44939:39;;;44971:5;;44939:39;45000:20;;:::i;:::-;45075:1;45057:16;45053:24;45050:1;45044:4;45029:49;45108:4;45102:11;45207:16;45200:4;45192:6;45188:17;45185:39;45152:18;45144:6;45141:30;45125:113;45122:146;;;45253:5;;;;45122:146;45299:6;45293:4;45289:17;45335:3;45329:10;45362:18;45354:6;45351:30;45348:43;;;45384:5;;;;;;45348:43;45432:6;45425:4;45420:3;45416:14;45412:27;45491:1;45473:16;45469:24;45463:4;45459:35;45454:3;45451:44;45448:57;;;45498:5;;;;;;;45448:57;45515;45563:6;45557:4;45553:17;45545:6;45541:30;45535:4;45515:57;:::i;:::-;45588:3;45581:10;;44929:668;;;;;44886:711;;:::o;45603:122::-;45676:24;45694:5;45676:24;:::i;:::-;45669:5;45666:35;45656:63;;45715:1;45712;45705:12;45656:63;45603:122;:::o;45731:116::-;45801:21;45816:5;45801:21;:::i;:::-;45794:5;45791:32;45781:60;;45837:1;45834;45827:12;45781:60;45731:116;:::o;45853:120::-;45925:23;45942:5;45925:23;:::i;:::-;45918:5;45915:34;45905:62;;45963:1;45960;45953:12;45905:62;45853:120;:::o;45979:122::-;46052:24;46070:5;46052:24;:::i;:::-;46045:5;46042:35;46032:63;;46091:1;46088;46081:12;46032:63;45979:122;:::o

Swarm Source

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