Contract 0xf3a7baeadf59f6900c0202a4680d958b9ad4b713

Contract Overview

Balance:
0 CRO

CRO Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x461fe6bc6e51ef6fe6d637d9f2a0013d62008b7d9a94f633ce8b4d006f9bbf3dSet Approval For...135294712024-04-17 22:07:536 days 23 hrs ago0x1cdd51d56474dab8d87b5cbf84326241a2c05366 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14784813623 5,047.045
0x282fdae366c94aeb80598809e3a13afcb972bbeeb2e2a4a38e9e10ffab19c741Set Approval For...135126652024-04-16 19:39:298 days 1 hr ago0x337624d59a46653a9e0afd7cd6ec56d1e7effdb9 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0x3437a63b0af01410d3d9e18eb8448d22ea3233ab884b0461ed8c8e4f68b9e4b9Set Approval For...135114412024-04-16 17:44:088 days 3 hrs agoCronos ID Name vamos.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.23435030
0xaa5893cf48c6652dddaea73422c5a609512b2d2707be95737b38990640728a9fSet Approval For...134969742024-04-15 18:59:239 days 2 hrs ago0xa43083f6120f6fbb7ecb787768179966763fd478 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.23435030
0x552c9a927948392a3caa507943d488a6c7bb859194706d0b134dbc71d928180dSet Approval For...133917362024-04-08 21:19:3415 days 23 hrs ago0x3949bbf215dd6389deac49b5c454f5abf763be6e IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.234280691 5,048.5
0xac303d30702a63cfd0aab4936a7a994211bac010f36326cc90c6ab70a2acacfdSet Approval For...133734462024-04-07 16:38:4717 days 4 hrs agoCronos ID Name jorge.loadedlions.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0x42e8844c6a262b64e0b3b2cbe158f2d20bb25a76586c9832348146a8d6b646f9Set Approval For...133734442024-04-07 16:38:3617 days 4 hrs agoCronos ID Name jorge.loadedlions.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0x513d79df4d317e75e127c5988331295952ee6e147c81d8136fead8a28f4a66ccSet Approval For...132717102024-04-01 1:02:1023 days 20 hrs ago0xfb88f94f9745d16ddec33d4f52e31e4b74e684f3 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0xf97981c1eab4b98796c97847efce8e77bc5b89548a8817055b7b6834e112b436Set Approval For...132717102024-04-01 1:02:1023 days 20 hrs ago0xfb88f94f9745d16ddec33d4f52e31e4b74e684f3 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0xe306461589509db68713b23ce7becebaaafe333e6dfb41b5bdb226d4a89ed574Set Approval For...132283192024-03-29 4:45:5226 days 16 hrs agoCronos ID Name sendmesome.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0xf5ef096355b481d558ff37c496d9e89c6c6b2bd8dadc01bcfe14d72f2762118dSet Approval For...132283182024-03-29 4:45:4626 days 16 hrs agoCronos ID Name sendmesome.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0xc9ee09e2e29c12902adfcb25a828b054ae6a9670e8322441b70dea645e3acec4Set Approval For...132283172024-03-29 4:45:4026 days 16 hrs agoCronos ID Name sendmesome.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.14793470
0xa89f972319dbf6ed0b5bcebfbeaf533e3b9bc1194fd32e99439e14b98d142462Approve132224602024-03-28 19:33:2227 days 1 hr agoCronos ID Name bighomiee4cro.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.5050
0x5f85623ef0c8a676793b95120f6b243abf71b6cb383fb79582ec9f659bb92450Approve132218612024-03-28 18:36:5427 days 2 hrs agoCronos ID Name bighomiee4cro.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.5050
0x15f300b18aabd6222571939fc93f4f94ee237f63710eecf3bcfb029fe8b5f1a5Set Approval For...131790342024-03-25 23:14:4429 days 22 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.13379470
0x178f7295d84f23a9554c77f46bedefae7c05509903a5e194063bd3fab2edf898Set Approval For...131788082024-03-25 22:53:2329 days 22 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.12369470
0x961f6de7f8eace006e83b8f184e77b0220560219cb52e2137719a19ef1577f0eSet Approval For...131788082024-03-25 22:53:2329 days 22 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.12369470
0x001bff616071882dc1c51abc14fb35db82ddad095a6d24e4f95a48fb7cc2c76eSet Approval For...131787912024-03-25 22:51:4729 days 22 hrs ago0xcc9c77e059431bc8d30e4c9b5ca036bdb6ce2879 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.12369470
0xbe2b00ba11ea17e8de046294e674a18c48de30beb9a39f4310bd55cb67f5ac21Set Approval For...131766682024-03-25 19:31:2430 days 1 hr ago0x93fe43db40c997ae784143f060032db16293d93f IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.123657959 5,048.5
0x8145cad50d5eccae70202682b6559096c4be3a263cb0e6e8655edaeee31309a5Transfer From131140472024-03-21 17:32:0134 days 3 hrs ago0x591d5ffb7f693c9075dc1786233b1d0d680f01c8 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.5050
0xba450885ba56f183081a8c4f19a71d39dfd707b91941027c669ef3643c1a0e2cTransfer From131139982024-03-21 17:27:2834 days 3 hrs ago0x591d5ffb7f693c9075dc1786233b1d0d680f01c8 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.5050
0x7128e977adce0836d0a778a117a97bfd6660e1681216b541b610eeb8dcbacee9Set Approval For...130249442024-03-15 22:15:3239 days 23 hrs ago0x3381c691c0cddca9e71330cca711eab547adb9ea IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.23435030
0x3c7a6778384f465550a54743a0aa9ea095cbf1d7765d2d4739a333839b9424ddApprove128989432024-03-07 19:02:1548 days 2 hrs agoCronos ID Name ryskllc.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO1.056137397675 10,058.451406437
0x0245e6fc0c0c949bccf29a39af1c4f307442139117f6a9786af9ed6b391c8434Set Approval For...128214642024-03-02 19:16:4253 days 1 hr agoCronos ID Name death6.cro IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
0x8d58b9389b0ab7929c43ebb41a1ae192458d2b01670a1d0d05ae443fe768c4c1Set Approval For...126178182024-02-18 14:57:3266 days 6 hrs ago0xf801d89f904203ff47bdd44984e3ef6d0dda6500 IN  0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130 CRO0.46870060
[ Download CSV Export 
Latest 10 internal transactions
Parent Txn Hash Block From To Value
0x9e62223d8e3064e77f8ce1d71a433db2620730011792a6be38cf0a7680660e9d41626512022-08-14 22:19:01618 days 22 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b33,695 CRO
0x0de24d61ed3da66c52d4adfa779059fc17b84141f7d7c0652667991cb3143e1241601412022-08-14 18:22:11619 days 2 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b4,885 CRO
0x337b4838082c6bc3404a67fa284427132822ed3c45fba4c5cc9842c5df3a809941577542022-08-14 14:36:04619 days 6 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b500 CRO
0x8bb045030de4c36cd08b525dba60054140714b64942eed4ebc89e8e31e84336a41553972022-08-14 10:52:56619 days 10 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b1,045 CRO
0x77e7d54f899d108abafa2252b3c8e5c0a4e67c62e30dd21a2930cd363357294b41521672022-08-14 5:47:42619 days 15 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b2,800 CRO
0x65d196cc8b5ca67ef927cc3ce7d55b4e7499b69dda11a8d562bcc4cae7b7050641452492022-08-13 18:55:18620 days 2 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b925 CRO
0x530a03cd3532276a2a8bc57aee0f707a3d43e3828ee6f9dce8bf4e8d36fb40f641430422022-08-13 15:26:31620 days 5 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b800 CRO
0x6f27f82ec1003f20b7f98d2708eec07aceea38d33b7ce8701f2a76b4ef47394f41426632022-08-13 14:50:41620 days 6 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b1,000 CRO
0x39d73ada177a091faaef1496d07a7c8096004c1b8d2e24cf3fdf78ed49cc3a4741418962022-08-13 13:38:01620 days 7 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b1,075 CRO
0xabe640d606f367df7296e0133968f76e3c1a796adc0c6588a24244ad2238d40f41408652022-08-13 12:00:24620 days 9 hrs ago 0xf3a7baeadf59f6900c0202a4680d958b9ad4b7130xc100a87fb7894d397b519116f096b32bd9803a6b5,400 CRO
[ Download CSV Export 
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CA_Non_Fungible_Token

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-08-10
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {size := extcodesize(account)}
        return size > 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) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library Counters {
    struct Counter {
        uint256 _value;
    }
    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }
    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }
    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counters: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }
}

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, "Strings: hex length insufficient");
        return string(buffer);
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

abstract contract Pausable is Context {
    event Paused(address account);
    event Unpaused(address account);
    bool private _paused;
    constructor() {
        _paused = false;
    }
    function paused() public view virtual returns (bool) {
        return _paused;
    }
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

interface IERC721 is IERC165 {
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    function balanceOf(address owner) external view returns (uint256 balance);
    function ownerOf(uint256 tokenId) external view returns (address owner);
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
    function transferFrom(address from, address to, uint256 tokenId) external;
    function approve(address to, uint256 tokenId) external;
    function getApproved(uint256 tokenId) external view returns (address operator);
    function setApprovalForAll(address operator, bool _approved) external;
    function isApprovedForAll(address owner, address operator) external view returns (bool);
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
}

interface IERC721Receiver {
    function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);
}

interface IERC721Metadata is IERC721 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function tokenURI(uint256 tokenId) 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;
    }
}

contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;
    string private _name;
    string private _symbol;
    mapping(uint256 => address) private _owners;
    mapping(address => uint256) private _balances;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId);
    }
    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }
    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
        string memory baseURI = _baseURI();
        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : '';
    }
    function _baseURI() internal view virtual returns (string memory) {
        return '';
    }
    function approve(address to, uint256 tokenId) public virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");
        require(_msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all");
        _approve(to, tokenId);
    }
    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");
        return _tokenApprovals[tokenId];
    }
    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(operator != _msgSender(), "ERC721: approve to caller");
        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }
    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[owner][operator];
    }
    function transferFrom(address from, address to, uint256 tokenId) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _transfer(from, to, tokenId);
    }
    function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {
        safeTransferFrom(from, to, tokenId, '');
    }
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }
    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }
    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }
    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }
    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, '');
    }
    function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {
        _mint(to, tokenId);
        require(_checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }
    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");
        _beforeTokenTransfer(address(0), to, tokenId);
        _balances[to] += 1;
        _owners[tokenId] = to;
        emit Transfer(address(0), to, tokenId);
    }
    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);
        _beforeTokenTransfer(owner, address(0), tokenId);
        _approve(address(0), tokenId);
        _balances[owner] -= 1;
        delete _owners[tokenId];
        emit Transfer(owner, address(0), tokenId);
    }
    function _transfer(address from, address to, uint256 tokenId) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");
        _beforeTokenTransfer(from, to, tokenId);
        _approve(address(0), tokenId);
        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;
        emit Transfer(from, to, tokenId);
    }
    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }
    function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver(to).onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }
    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual {}
}

interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);
    function tokenByIndex(uint256 index) external view returns (uint256);
}

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;
    mapping(uint256 => uint256) private _ownedTokensIndex;
    uint256[] private _allTokens;
    mapping(uint256 => uint256) private _allTokensIndex;
    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) {
        return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);
    }
    function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
        return _ownedTokens[owner][index];
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }
    function tokenByIndex(uint256 index) public view virtual override returns (uint256) {
        require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds");
        return _allTokens[index];
    }
    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual override {
        super._beforeTokenTransfer(from, to, tokenId);
        if (from == address(0)) {
            _addTokenToAllTokensEnumeration(tokenId);
        } else if (from != to) {
            _removeTokenFromOwnerEnumeration(from, tokenId);
        }
        if (to == address(0)) {
            _removeTokenFromAllTokensEnumeration(tokenId);
        } else if (to != from) {
            _addTokenToOwnerEnumeration(to, tokenId);
        }
    }
    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }
    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }
    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];
            _ownedTokens[from][tokenIndex] = lastTokenId;
            _ownedTokensIndex[lastTokenId] = tokenIndex;
        }
        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }
    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];
        uint256 lastTokenId = _allTokens[lastTokenIndex];
        _allTokens[tokenIndex] = lastTokenId;
        _allTokensIndex[lastTokenId] = tokenIndex;
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}

abstract contract ERC721URIStorage is ERC721 {
    using Strings for uint256;
    mapping(uint256 => string) private _tokenURIs;
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721URIStorage: URI query for nonexistent token");
        string memory _tokenURI = _tokenURIs[tokenId];
        string memory base = _baseURI();
        if (bytes(base).length == 0) {
            return _tokenURI;
        }
        if (bytes(_tokenURI).length > 0) {
            return string(abi.encodePacked(base, _tokenURI));
        }
        return super.tokenURI(tokenId);
    }
    function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {
        require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token");
        _tokenURIs[tokenId] = _tokenURI;
    }
    function _burn(uint256 tokenId) internal virtual override {
        super._burn(tokenId);
        if (bytes(_tokenURIs[tokenId]).length != 0) {
            delete _tokenURIs[tokenId];
        }
    }
}

abstract contract ERC721Burnable is Context, ERC721 {
    function burn(uint256 tokenId) public virtual {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved");
        _burn(tokenId);
    }
}

contract CA_Non_Fungible_Token is Ownable, Pausable, ERC721, ERC721Enumerable, ERC721URIStorage, ERC721Burnable {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIdCounter;
    mapping(address => bool) public whitelistedAddress;
    mapping(address => bool) public waitlistedAddress;
    uint256 public mintPrice;
    uint256 public maxNFT;
    string public baseURI;
    string private _name;
    string private _symbol;
    bool public mintStarted = false;

    constructor(string memory _name, string memory _symbol, uint256 _mintPrice, uint256 _maxNFT)
    ERC721 (_name, _symbol) payable public {
        mintPrice = _mintPrice;
        maxNFT = _maxNFT;
    }

    receive() external payable {}
    function _baseURI() internal view override returns (string memory) {
        return baseURI;
    }
    function tokenURI(uint256 tokenId) public view override(ERC721, ERC721URIStorage) returns (string memory) {
        return string(abi.encodePacked(super.tokenURI(tokenId), ".json"));
    }
    function supportsInterface(bytes4 interfaceId) public view override(ERC721, ERC721Enumerable) returns (bool) {
        return super.supportsInterface(interfaceId);
    }
    function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
        super._burn(tokenId);
    }
    function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal override(ERC721, ERC721Enumerable) whenNotPaused {
        super._beforeTokenTransfer(from, to, tokenId);
    }
    function pause() public onlyOwner {
        _pause();
    }
    function unpause() public onlyOwner {
        _unpause();
    }
    function toggleMint() public onlyOwner {
        mintStarted = !mintStarted;
    }
    function setMintPrice(uint256 _mintPrice) public onlyOwner {
        mintPrice = _mintPrice;
    }
    function setBaseURI(string memory _baseURI) public onlyOwner {
        baseURI = _baseURI;
    }
    function internalMint(address to) internal {
        _safeMint(to, _tokenIdCounter.current());
        _tokenIdCounter.increment();
    }
    function ownerMintNFT(uint256 amount) public onlyOwner {
        require(amount <= maxNFT, "NFT: Max NFT limit exceeded!");
        for (uint256 i = 0; i < amount; i++) {
            internalMint(msg.sender);
        }
    }
    function mintNFT(uint256 amount) public payable {
        require(mintStarted == true, "NFT: Mint not started yet!");
        require(msg.value >= mintPrice * amount, "NFT: Insufficient mint fees!");
        require(amount <= maxNFT, "NFT: Max NFT limit exceeded!");
        for (uint256 i = 0; i < amount; i++) {
            internalMint(msg.sender);
        }
    }   
    
    // ------------------------------------------------------------------------
    // Function to Withdraw Coins sent by mistake to the Token Contract Address.
    // Only the Contract owner can withdraw the Coins.
    // ------------------------------------------------------------------------
    function withdrawCoins() public onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    // ------------------------------------------------------------------------
    // Function to Withdraw Tokens sent by mistake to the Token Contract Address.
    // Only the Contract owner can withdraw the Tokens.
    // ------------------------------------------------------------------------
    function withdrawTokens(address tokenAddress, uint256 tokenAmount) public virtual onlyOwner {
        IST20(tokenAddress).transfer(owner(), tokenAmount);
    }
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_mintPrice","type":"uint256"},{"internalType":"uint256","name":"_maxNFT","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintNFT","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uint256","name":"amount","type":"uint256"}],"name":"ownerMintNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintPrice","type":"uint256"}],"name":"setMintPrice","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":"toggleMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"waitlistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawCoins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060408190526014805460ff1916905562002d4b388190039081908339810160408190526200002f9162000229565b838360006200003d620000d4565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b191690558151620000a9906001906020850190620000d8565b508051620000bf906002906020840190620000d8565b505050600f9190915560105550620002f39050565b3390565b828054620000e690620002a0565b90600052602060002090601f0160209004810192826200010a576000855562000155565b82601f106200012557805160ff191683800117855562000155565b8280016001018555821562000155579182015b828111156200015557825182559160200191906001019062000138565b506200016392915062000167565b5090565b5b8082111562000163576000815560010162000168565b600082601f8301126200018f578081fd5b81516001600160401b0380821115620001ac57620001ac620002dd565b6040516020601f8401601f1916820181018381118382101715620001d457620001d4620002dd565b6040528382528584018101871015620001eb578485fd5b8492505b838310156200020e5785830181015182840182015291820191620001ef565b838311156200021f57848185840101525b5095945050505050565b600080600080608085870312156200023f578384fd5b84516001600160401b038082111562000256578586fd5b62000264888389016200017e565b955060208701519150808211156200027a578485fd5b5062000289878288016200017e565b604087015160609097015195989097509350505050565b600281046001821680620002b557607f821691505b60208210811415620002d757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612a4880620003036000396000f3fe6080604052600436106102135760003560e01c8063715018a611610118578063c30796ab116100a0578063e456b01c1161006f578063e456b01c146105ad578063e985e9c5146105c2578063f2fde38b146105e2578063f4a0a52814610602578063ffbb62a3146106225761021a565b8063c30796ab14610538578063c87b56dd14610558578063c8f6eeed14610578578063d3dd5fe0146105985761021a565b806392642744116100e757806392642744146104bb57806395d89b41146104ce578063a22cb465146104e3578063a9722cf314610503578063b88d4fde146105185761021a565b8063715018a61461045c5780637206e3e5146104715780638456cb59146104915780638da5cb5b146104a65761021a565b806342842e0e1161019b5780635c975abb1161016a5780635c975abb146103dd5780636352211e146103f25780636817c76c146104125780636c0360eb1461042757806370a082311461043c5761021a565b806342842e0e1461035d57806342966c681461037d5780634f6ccce71461039d57806355f804b3146103bd5761021a565b8063095ea7b3116101e2578063095ea7b3146102c657806318160ddd146102e657806323b872dd146103085780632f745c59146103285780633f4ba83a146103485761021a565b806301ffc9a71461021f57806306b091f91461025557806306fdde0314610277578063081812fc146102995761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a36600461206e565b610637565b60405161024c91906121f2565b60405180910390f35b34801561026157600080fd5b50610275610270366004612029565b61064a565b005b34801561028357600080fd5b5061028c61071e565b60405161024c91906121fd565b3480156102a557600080fd5b506102b96102b43660046120ec565b6107b0565b60405161024c9190612188565b3480156102d257600080fd5b506102756102e1366004612029565b6107f3565b3480156102f257600080fd5b506102fb610886565b60405161024c91906128ab565b34801561031457600080fd5b50610275610323366004611f3f565b61088c565b34801561033457600080fd5b506102fb610343366004612029565b6108c4565b34801561035457600080fd5b50610275610916565b34801561036957600080fd5b50610275610378366004611f3f565b61095f565b34801561038957600080fd5b506102756103983660046120ec565b61097a565b3480156103a957600080fd5b506102fb6103b83660046120ec565b6109ad565b3480156103c957600080fd5b506102756103d83660046120a6565b610a08565b3480156103e957600080fd5b5061023f610a5e565b3480156103fe57600080fd5b506102b961040d3660046120ec565b610a6e565b34801561041e57600080fd5b506102fb610aa3565b34801561043357600080fd5b5061028c610aa9565b34801561044857600080fd5b506102fb610457366004611ef3565b610b37565b34801561046857600080fd5b50610275610b7b565b34801561047d57600080fd5b5061027561048c3660046120ec565b610c04565b34801561049d57600080fd5b50610275610c8b565b3480156104b257600080fd5b506102b9610cd2565b6102756104c93660046120ec565b610ce1565b3480156104da57600080fd5b5061028c610d7d565b3480156104ef57600080fd5b506102756104fe366004611ff3565b610d8c565b34801561050f57600080fd5b5061023f610e5a565b34801561052457600080fd5b50610275610533366004611f7a565b610e63565b34801561054457600080fd5b5061023f610553366004611ef3565b610ea2565b34801561056457600080fd5b5061028c6105733660046120ec565b610eb7565b34801561058457600080fd5b5061023f610593366004611ef3565b610ee8565b3480156105a457600080fd5b50610275610efd565b3480156105b957600080fd5b506102fb610f50565b3480156105ce57600080fd5b5061023f6105dd366004611f0d565b610f56565b3480156105ee57600080fd5b506102756105fd366004611ef3565b610f84565b34801561060e57600080fd5b5061027561061d3660046120ec565b611044565b34801561062e57600080fd5b50610275611088565b6000610642826110f3565b90505b919050565b610652611118565b6001600160a01b0316610663610cd2565b6001600160a01b0316146106925760405162461bcd60e51b815260040161068990612642565b60405180910390fd5b816001600160a01b031663a9059cbb6106a9610cd2565b836040518363ffffffff1660e01b81526004016106c79291906121d9565b602060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107199190612052565b505050565b60606001805461072d90612942565b80601f016020809104026020016040519081016040528092919081815260200182805461075990612942565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b5050505050905090565b60006107bb8261111c565b6107d75760405162461bcd60e51b8152600401610689906125f6565b506000908152600560205260409020546001600160a01b031690565b60006107fe82610a6e565b9050806001600160a01b0316836001600160a01b031614156108325760405162461bcd60e51b81526004016106899061270f565b806001600160a01b0316610844611118565b6001600160a01b031614806108605750610860816105dd611118565b61087c5760405162461bcd60e51b815260040161068990612480565b6107198383611139565b60095490565b61089d610897611118565b826111a7565b6108b95760405162461bcd60e51b815260040161068990612750565b61071983838361122c565b60006108cf83610b37565b82106108ed5760405162461bcd60e51b81526004016106899061223e565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b61091e611118565b6001600160a01b031661092f610cd2565b6001600160a01b0316146109555760405162461bcd60e51b815260040161068990612642565b61095d611359565b565b61071983838360405180602001604052806000815250610e63565b610985610897611118565b6109a15760405162461bcd60e51b81526004016106899061285b565b6109aa816113ca565b50565b60006109b7610886565b82106109d55760405162461bcd60e51b8152600401610689906127d8565b600982815481106109f657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610a10611118565b6001600160a01b0316610a21610cd2565b6001600160a01b031614610a475760405162461bcd60e51b815260040161068990612642565b8051610a5a906011906020840190611d9b565b5050565b600054600160a01b900460ff1690565b6000818152600360205260408120546001600160a01b0316806106425760405162461bcd60e51b815260040161068990612527565b600f5481565b60118054610ab690612942565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290612942565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050505081565b60006001600160a01b038216610b5f5760405162461bcd60e51b8152600401610689906124dd565b506001600160a01b031660009081526004602052604090205490565b610b83611118565b6001600160a01b0316610b94610cd2565b6001600160a01b031614610bba5760405162461bcd60e51b815260040161068990612642565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610c0c611118565b6001600160a01b0316610c1d610cd2565b6001600160a01b031614610c435760405162461bcd60e51b815260040161068990612642565b601054811115610c655760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610c79336113d3565b80610c838161297d565b915050610c68565b610c93611118565b6001600160a01b0316610ca4610cd2565b6001600160a01b031614610cca5760405162461bcd60e51b815260040161068990612642565b61095d6113f0565b6000546001600160a01b031690565b60145460ff161515600114610d085760405162461bcd60e51b815260040161068990612321565b80600f54610d1691906128e0565b341015610d355760405162461bcd60e51b8152600401610689906127a1565b601054811115610d575760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610d6b336113d3565b80610d758161297d565b915050610d5a565b60606002805461072d90612942565b610d94611118565b6001600160a01b0316826001600160a01b03161415610dc55760405162461bcd60e51b8152600401610689906123d3565b8060066000610dd2611118565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610e16611118565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e4e91906121f2565b60405180910390a35050565b60145460ff1681565b610e74610e6e611118565b836111a7565b610e905760405162461bcd60e51b815260040161068990612750565b610e9c84848484611451565b50505050565b600d6020526000908152604090205460ff1681565b6060610ec282611484565b604051602001610ed2919061215f565b6040516020818303038152906040529050919050565b600e6020526000908152604090205460ff1681565b610f05611118565b6001600160a01b0316610f16610cd2565b6001600160a01b031614610f3c5760405162461bcd60e51b815260040161068990612642565b6014805460ff19811660ff90911615179055565b60105481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b610f8c611118565b6001600160a01b0316610f9d610cd2565b6001600160a01b031614610fc35760405162461bcd60e51b815260040161068990612642565b6001600160a01b038116610fe95760405162461bcd60e51b8152600401610689906122db565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61104c611118565b6001600160a01b031661105d610cd2565b6001600160a01b0316146110835760405162461bcd60e51b815260040161068990612642565b600f55565b611090611118565b6001600160a01b03166110a1610cd2565b6001600160a01b0316146110c75760405162461bcd60e51b815260040161068990612642565b60405133904780156108fc02916000818181858888f193505050501580156109aa573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b148061064257506106428261159d565b3390565b6000908152600360205260409020546001600160a01b0316151590565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061116e82610a6e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006111b28261111c565b6111ce5760405162461bcd60e51b81526004016106899061240a565b60006111d983610a6e565b9050806001600160a01b0316846001600160a01b031614806112145750836001600160a01b0316611209846107b0565b6001600160a01b0316145b8061122457506112248185610f56565b949350505050565b826001600160a01b031661123f82610a6e565b6001600160a01b0316146112655760405162461bcd60e51b815260040161068990612677565b6001600160a01b03821661128b5760405162461bcd60e51b81526004016106899061238f565b6112968383836115dd565b6112a1600082611139565b6001600160a01b03831660009081526004602052604081208054600192906112ca9084906128ff565b90915550506001600160a01b03821660009081526004602052604081208054600192906112f89084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611361610a5e565b61137d5760405162461bcd60e51b815260040161068990612210565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6113b3611118565b6040516113c09190612188565b60405180910390a1565b6109aa8161160d565b6113e6816113e1600c61164d565b611651565b6109aa600c61166b565b6113f8610a5e565b156114155760405162461bcd60e51b815260040161068990612456565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113b3611118565b61145c84848461122c565b61146884848484611674565b610e9c5760405162461bcd60e51b815260040161068990612289565b606061148f8261111c565b6114ab5760405162461bcd60e51b8152600401610689906125a5565b6000828152600b6020526040812080546114c490612942565b80601f01602080910402602001604051908101604052809291908181526020018280546114f090612942565b801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b50505050509050600061154e61178f565b905080516000141561156257509050610645565b81511561159457808260405160200161157c929190612130565b60405160208183030381529060405292505050610645565b6112248461179e565b60006001600160e01b031982166380ac58cd60e01b14806115ce57506001600160e01b03198216635b5e139f60e01b145b80610642575061064282611821565b6115e5610a5e565b156116025760405162461bcd60e51b815260040161068990612456565b61071983838361183a565b611616816118c3565b6000818152600b60205260409020805461162f90612942565b1590506109aa576000818152600b602052604081206109aa91611e1f565b5490565b610a5a82826040518060200160405280600081525061196a565b80546001019055565b6000611688846001600160a01b031661199d565b1561178457836001600160a01b031663150b7a026116a4611118565b8786866040518563ffffffff1660e01b81526004016116c6949392919061219c565b602060405180830381600087803b1580156116e057600080fd5b505af1925050508015611710575060408051601f3d908101601f1916820190925261170d9181019061208a565b60015b61176a573d80801561173e576040519150601f19603f3d011682016040523d82523d6000602084013e611743565b606091505b5080516117625760405162461bcd60e51b815260040161068990612289565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611224565b506001949350505050565b60606011805461072d90612942565b60606117a98261111c565b6117c55760405162461bcd60e51b8152600401610689906126c0565b60006117cf61178f565b905060008151116117ef576040518060200160405280600081525061181a565b806117f9846119a3565b60405160200161180a929190612130565b6040516020818303038152906040525b9392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611845838383610719565b6001600160a01b0383166118615761185c81611abe565b611884565b816001600160a01b0316836001600160a01b031614611884576118848382611b02565b6001600160a01b0382166118a05761189b81611b9f565b610719565b826001600160a01b0316826001600160a01b031614610719576107198282611c78565b60006118ce82610a6e565b90506118dc816000846115dd565b6118e7600083611139565b6001600160a01b03811660009081526004602052604081208054600192906119109084906128ff565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6119748383611cbc565b6119816000848484611674565b6107195760405162461bcd60e51b815260040161068990612289565b3b151590565b6060816119c857506040805180820190915260018152600360fc1b6020820152610645565b8160005b81156119f257806119dc8161297d565b91506119eb9050600a836128cc565b91506119cc565b60008167ffffffffffffffff811115611a1b57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a45576020820181803683370190505b5090505b841561122457611a5a6001836128ff565b9150611a67600a86612998565b611a729060306128b4565b60f81b818381518110611a9557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611ab7600a866128cc565b9450611a49565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b60006001611b0f84610b37565b611b1991906128ff565b600083815260086020526040902054909150808214611b6c576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090611bb1906001906128ff565b6000838152600a602052604081205460098054939450909284908110611be757634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060098381548110611c1657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480611c5c57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611c8383610b37565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b038216611ce25760405162461bcd60e51b815260040161068990612570565b611ceb8161111c565b15611d085760405162461bcd60e51b815260040161068990612358565b611d14600083836115dd565b6001600160a01b0382166000908152600460205260408120805460019290611d3d9084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611da790612942565b90600052602060002090601f016020900481019282611dc95760008555611e0f565b82601f10611de257805160ff1916838001178555611e0f565b82800160010185558215611e0f579182015b82811115611e0f578251825591602001919060010190611df4565b50611e1b929150611e57565b5090565b508054611e2b90612942565b6000825580601f10611e3d57506109aa565b601f0160209004906000526020600020908101906109aa91905b5b80821115611e1b5760008155600101611e58565b600067ffffffffffffffff80841115611e8757611e876129d8565b604051601f8501601f191681016020018281118282101715611eab57611eab6129d8565b604052848152915081838501861015611ec357600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b038116811461064557600080fd5b600060208284031215611f04578081fd5b61181a82611edc565b60008060408385031215611f1f578081fd5b611f2883611edc565b9150611f3660208401611edc565b90509250929050565b600080600060608486031215611f53578081fd5b611f5c84611edc565b9250611f6a60208501611edc565b9150604084013590509250925092565b60008060008060808587031215611f8f578081fd5b611f9885611edc565b9350611fa660208601611edc565b925060408501359150606085013567ffffffffffffffff811115611fc8578182fd5b8501601f81018713611fd8578182fd5b611fe787823560208401611e6c565b91505092959194509250565b60008060408385031215612005578182fd5b61200e83611edc565b9150602083013561201e816129ee565b809150509250929050565b6000806040838503121561203b578182fd5b61204483611edc565b946020939093013593505050565b600060208284031215612063578081fd5b815161181a816129ee565b60006020828403121561207f578081fd5b813561181a816129fc565b60006020828403121561209b578081fd5b815161181a816129fc565b6000602082840312156120b7578081fd5b813567ffffffffffffffff8111156120cd578182fd5b8201601f810184136120dd578182fd5b61122484823560208401611e6c565b6000602082840312156120fd578081fd5b5035919050565b6000815180845261211c816020860160208601612916565b601f01601f19169290920160200192915050565b60008351612142818460208801612916565b835190830190612156818360208801612916565b01949350505050565b60008251612171818460208701612916565b64173539b7b760d91b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121cf90830184612104565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261181a6020830184612104565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601a908201527f4e46543a204d696e74206e6f7420737461727465642079657421000000000000604082015260600190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601c908201527f4e46543a20496e73756666696369656e74206d696e7420666565732100000000604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252601c908201527f4e46543a204d6178204e4654206c696d69742065786365656465642100000000604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b600082198211156128c7576128c76129ac565b500190565b6000826128db576128db6129c2565b500490565b60008160001904831182151516156128fa576128fa6129ac565b500290565b600082821015612911576129116129ac565b500390565b60005b83811015612931578181015183820152602001612919565b83811115610e9c5750506000910152565b60028104600182168061295657607f821691505b6020821081141561297757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612991576129916129ac565b5060010190565b6000826129a7576129a76129c2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146109aa57600080fd5b6001600160e01b0319811681146109aa57600080fdfea2646970667358221220f42e0b70167d0ab33122e4ae91cda2e6e15b6b484e028989cf2dc3be7d97c64264736f6c63430008000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000b43726f6f646c652041706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044341504500000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063715018a611610118578063c30796ab116100a0578063e456b01c1161006f578063e456b01c146105ad578063e985e9c5146105c2578063f2fde38b146105e2578063f4a0a52814610602578063ffbb62a3146106225761021a565b8063c30796ab14610538578063c87b56dd14610558578063c8f6eeed14610578578063d3dd5fe0146105985761021a565b806392642744116100e757806392642744146104bb57806395d89b41146104ce578063a22cb465146104e3578063a9722cf314610503578063b88d4fde146105185761021a565b8063715018a61461045c5780637206e3e5146104715780638456cb59146104915780638da5cb5b146104a65761021a565b806342842e0e1161019b5780635c975abb1161016a5780635c975abb146103dd5780636352211e146103f25780636817c76c146104125780636c0360eb1461042757806370a082311461043c5761021a565b806342842e0e1461035d57806342966c681461037d5780634f6ccce71461039d57806355f804b3146103bd5761021a565b8063095ea7b3116101e2578063095ea7b3146102c657806318160ddd146102e657806323b872dd146103085780632f745c59146103285780633f4ba83a146103485761021a565b806301ffc9a71461021f57806306b091f91461025557806306fdde0314610277578063081812fc146102995761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a36600461206e565b610637565b60405161024c91906121f2565b60405180910390f35b34801561026157600080fd5b50610275610270366004612029565b61064a565b005b34801561028357600080fd5b5061028c61071e565b60405161024c91906121fd565b3480156102a557600080fd5b506102b96102b43660046120ec565b6107b0565b60405161024c9190612188565b3480156102d257600080fd5b506102756102e1366004612029565b6107f3565b3480156102f257600080fd5b506102fb610886565b60405161024c91906128ab565b34801561031457600080fd5b50610275610323366004611f3f565b61088c565b34801561033457600080fd5b506102fb610343366004612029565b6108c4565b34801561035457600080fd5b50610275610916565b34801561036957600080fd5b50610275610378366004611f3f565b61095f565b34801561038957600080fd5b506102756103983660046120ec565b61097a565b3480156103a957600080fd5b506102fb6103b83660046120ec565b6109ad565b3480156103c957600080fd5b506102756103d83660046120a6565b610a08565b3480156103e957600080fd5b5061023f610a5e565b3480156103fe57600080fd5b506102b961040d3660046120ec565b610a6e565b34801561041e57600080fd5b506102fb610aa3565b34801561043357600080fd5b5061028c610aa9565b34801561044857600080fd5b506102fb610457366004611ef3565b610b37565b34801561046857600080fd5b50610275610b7b565b34801561047d57600080fd5b5061027561048c3660046120ec565b610c04565b34801561049d57600080fd5b50610275610c8b565b3480156104b257600080fd5b506102b9610cd2565b6102756104c93660046120ec565b610ce1565b3480156104da57600080fd5b5061028c610d7d565b3480156104ef57600080fd5b506102756104fe366004611ff3565b610d8c565b34801561050f57600080fd5b5061023f610e5a565b34801561052457600080fd5b50610275610533366004611f7a565b610e63565b34801561054457600080fd5b5061023f610553366004611ef3565b610ea2565b34801561056457600080fd5b5061028c6105733660046120ec565b610eb7565b34801561058457600080fd5b5061023f610593366004611ef3565b610ee8565b3480156105a457600080fd5b50610275610efd565b3480156105b957600080fd5b506102fb610f50565b3480156105ce57600080fd5b5061023f6105dd366004611f0d565b610f56565b3480156105ee57600080fd5b506102756105fd366004611ef3565b610f84565b34801561060e57600080fd5b5061027561061d3660046120ec565b611044565b34801561062e57600080fd5b50610275611088565b6000610642826110f3565b90505b919050565b610652611118565b6001600160a01b0316610663610cd2565b6001600160a01b0316146106925760405162461bcd60e51b815260040161068990612642565b60405180910390fd5b816001600160a01b031663a9059cbb6106a9610cd2565b836040518363ffffffff1660e01b81526004016106c79291906121d9565b602060405180830381600087803b1580156106e157600080fd5b505af11580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107199190612052565b505050565b60606001805461072d90612942565b80601f016020809104026020016040519081016040528092919081815260200182805461075990612942565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b5050505050905090565b60006107bb8261111c565b6107d75760405162461bcd60e51b8152600401610689906125f6565b506000908152600560205260409020546001600160a01b031690565b60006107fe82610a6e565b9050806001600160a01b0316836001600160a01b031614156108325760405162461bcd60e51b81526004016106899061270f565b806001600160a01b0316610844611118565b6001600160a01b031614806108605750610860816105dd611118565b61087c5760405162461bcd60e51b815260040161068990612480565b6107198383611139565b60095490565b61089d610897611118565b826111a7565b6108b95760405162461bcd60e51b815260040161068990612750565b61071983838361122c565b60006108cf83610b37565b82106108ed5760405162461bcd60e51b81526004016106899061223e565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b61091e611118565b6001600160a01b031661092f610cd2565b6001600160a01b0316146109555760405162461bcd60e51b815260040161068990612642565b61095d611359565b565b61071983838360405180602001604052806000815250610e63565b610985610897611118565b6109a15760405162461bcd60e51b81526004016106899061285b565b6109aa816113ca565b50565b60006109b7610886565b82106109d55760405162461bcd60e51b8152600401610689906127d8565b600982815481106109f657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610a10611118565b6001600160a01b0316610a21610cd2565b6001600160a01b031614610a475760405162461bcd60e51b815260040161068990612642565b8051610a5a906011906020840190611d9b565b5050565b600054600160a01b900460ff1690565b6000818152600360205260408120546001600160a01b0316806106425760405162461bcd60e51b815260040161068990612527565b600f5481565b60118054610ab690612942565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290612942565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050505081565b60006001600160a01b038216610b5f5760405162461bcd60e51b8152600401610689906124dd565b506001600160a01b031660009081526004602052604090205490565b610b83611118565b6001600160a01b0316610b94610cd2565b6001600160a01b031614610bba5760405162461bcd60e51b815260040161068990612642565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610c0c611118565b6001600160a01b0316610c1d610cd2565b6001600160a01b031614610c435760405162461bcd60e51b815260040161068990612642565b601054811115610c655760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610c79336113d3565b80610c838161297d565b915050610c68565b610c93611118565b6001600160a01b0316610ca4610cd2565b6001600160a01b031614610cca5760405162461bcd60e51b815260040161068990612642565b61095d6113f0565b6000546001600160a01b031690565b60145460ff161515600114610d085760405162461bcd60e51b815260040161068990612321565b80600f54610d1691906128e0565b341015610d355760405162461bcd60e51b8152600401610689906127a1565b601054811115610d575760405162461bcd60e51b815260040161068990612824565b60005b81811015610a5a57610d6b336113d3565b80610d758161297d565b915050610d5a565b60606002805461072d90612942565b610d94611118565b6001600160a01b0316826001600160a01b03161415610dc55760405162461bcd60e51b8152600401610689906123d3565b8060066000610dd2611118565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155610e16611118565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e4e91906121f2565b60405180910390a35050565b60145460ff1681565b610e74610e6e611118565b836111a7565b610e905760405162461bcd60e51b815260040161068990612750565b610e9c84848484611451565b50505050565b600d6020526000908152604090205460ff1681565b6060610ec282611484565b604051602001610ed2919061215f565b6040516020818303038152906040529050919050565b600e6020526000908152604090205460ff1681565b610f05611118565b6001600160a01b0316610f16610cd2565b6001600160a01b031614610f3c5760405162461bcd60e51b815260040161068990612642565b6014805460ff19811660ff90911615179055565b60105481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b610f8c611118565b6001600160a01b0316610f9d610cd2565b6001600160a01b031614610fc35760405162461bcd60e51b815260040161068990612642565b6001600160a01b038116610fe95760405162461bcd60e51b8152600401610689906122db565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61104c611118565b6001600160a01b031661105d610cd2565b6001600160a01b0316146110835760405162461bcd60e51b815260040161068990612642565b600f55565b611090611118565b6001600160a01b03166110a1610cd2565b6001600160a01b0316146110c75760405162461bcd60e51b815260040161068990612642565b60405133904780156108fc02916000818181858888f193505050501580156109aa573d6000803e3d6000fd5b60006001600160e01b0319821663780e9d6360e01b148061064257506106428261159d565b3390565b6000908152600360205260409020546001600160a01b0316151590565b600081815260056020526040902080546001600160a01b0319166001600160a01b038416908117909155819061116e82610a6e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006111b28261111c565b6111ce5760405162461bcd60e51b81526004016106899061240a565b60006111d983610a6e565b9050806001600160a01b0316846001600160a01b031614806112145750836001600160a01b0316611209846107b0565b6001600160a01b0316145b8061122457506112248185610f56565b949350505050565b826001600160a01b031661123f82610a6e565b6001600160a01b0316146112655760405162461bcd60e51b815260040161068990612677565b6001600160a01b03821661128b5760405162461bcd60e51b81526004016106899061238f565b6112968383836115dd565b6112a1600082611139565b6001600160a01b03831660009081526004602052604081208054600192906112ca9084906128ff565b90915550506001600160a01b03821660009081526004602052604081208054600192906112f89084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611361610a5e565b61137d5760405162461bcd60e51b815260040161068990612210565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6113b3611118565b6040516113c09190612188565b60405180910390a1565b6109aa8161160d565b6113e6816113e1600c61164d565b611651565b6109aa600c61166b565b6113f8610a5e565b156114155760405162461bcd60e51b815260040161068990612456565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113b3611118565b61145c84848461122c565b61146884848484611674565b610e9c5760405162461bcd60e51b815260040161068990612289565b606061148f8261111c565b6114ab5760405162461bcd60e51b8152600401610689906125a5565b6000828152600b6020526040812080546114c490612942565b80601f01602080910402602001604051908101604052809291908181526020018280546114f090612942565b801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b50505050509050600061154e61178f565b905080516000141561156257509050610645565b81511561159457808260405160200161157c929190612130565b60405160208183030381529060405292505050610645565b6112248461179e565b60006001600160e01b031982166380ac58cd60e01b14806115ce57506001600160e01b03198216635b5e139f60e01b145b80610642575061064282611821565b6115e5610a5e565b156116025760405162461bcd60e51b815260040161068990612456565b61071983838361183a565b611616816118c3565b6000818152600b60205260409020805461162f90612942565b1590506109aa576000818152600b602052604081206109aa91611e1f565b5490565b610a5a82826040518060200160405280600081525061196a565b80546001019055565b6000611688846001600160a01b031661199d565b1561178457836001600160a01b031663150b7a026116a4611118565b8786866040518563ffffffff1660e01b81526004016116c6949392919061219c565b602060405180830381600087803b1580156116e057600080fd5b505af1925050508015611710575060408051601f3d908101601f1916820190925261170d9181019061208a565b60015b61176a573d80801561173e576040519150601f19603f3d011682016040523d82523d6000602084013e611743565b606091505b5080516117625760405162461bcd60e51b815260040161068990612289565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611224565b506001949350505050565b60606011805461072d90612942565b60606117a98261111c565b6117c55760405162461bcd60e51b8152600401610689906126c0565b60006117cf61178f565b905060008151116117ef576040518060200160405280600081525061181a565b806117f9846119a3565b60405160200161180a929190612130565b6040516020818303038152906040525b9392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611845838383610719565b6001600160a01b0383166118615761185c81611abe565b611884565b816001600160a01b0316836001600160a01b031614611884576118848382611b02565b6001600160a01b0382166118a05761189b81611b9f565b610719565b826001600160a01b0316826001600160a01b031614610719576107198282611c78565b60006118ce82610a6e565b90506118dc816000846115dd565b6118e7600083611139565b6001600160a01b03811660009081526004602052604081208054600192906119109084906128ff565b909155505060008281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6119748383611cbc565b6119816000848484611674565b6107195760405162461bcd60e51b815260040161068990612289565b3b151590565b6060816119c857506040805180820190915260018152600360fc1b6020820152610645565b8160005b81156119f257806119dc8161297d565b91506119eb9050600a836128cc565b91506119cc565b60008167ffffffffffffffff811115611a1b57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a45576020820181803683370190505b5090505b841561122457611a5a6001836128ff565b9150611a67600a86612998565b611a729060306128b4565b60f81b818381518110611a9557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611ab7600a866128cc565b9450611a49565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0155565b60006001611b0f84610b37565b611b1991906128ff565b600083815260086020526040902054909150808214611b6c576001600160a01b03841660009081526007602090815260408083208584528252808320548484528184208190558352600890915290208190555b5060009182526008602090815260408084208490556001600160a01b039094168352600781528383209183525290812055565b600954600090611bb1906001906128ff565b6000838152600a602052604081205460098054939450909284908110611be757634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060098381548110611c1657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600a90915260408082208490558582528120556009805480611c5c57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611c8383610b37565b6001600160a01b039093166000908152600760209081526040808320868452825280832085905593825260089052919091209190915550565b6001600160a01b038216611ce25760405162461bcd60e51b815260040161068990612570565b611ceb8161111c565b15611d085760405162461bcd60e51b815260040161068990612358565b611d14600083836115dd565b6001600160a01b0382166000908152600460205260408120805460019290611d3d9084906128b4565b909155505060008181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611da790612942565b90600052602060002090601f016020900481019282611dc95760008555611e0f565b82601f10611de257805160ff1916838001178555611e0f565b82800160010185558215611e0f579182015b82811115611e0f578251825591602001919060010190611df4565b50611e1b929150611e57565b5090565b508054611e2b90612942565b6000825580601f10611e3d57506109aa565b601f0160209004906000526020600020908101906109aa91905b5b80821115611e1b5760008155600101611e58565b600067ffffffffffffffff80841115611e8757611e876129d8565b604051601f8501601f191681016020018281118282101715611eab57611eab6129d8565b604052848152915081838501861015611ec357600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b038116811461064557600080fd5b600060208284031215611f04578081fd5b61181a82611edc565b60008060408385031215611f1f578081fd5b611f2883611edc565b9150611f3660208401611edc565b90509250929050565b600080600060608486031215611f53578081fd5b611f5c84611edc565b9250611f6a60208501611edc565b9150604084013590509250925092565b60008060008060808587031215611f8f578081fd5b611f9885611edc565b9350611fa660208601611edc565b925060408501359150606085013567ffffffffffffffff811115611fc8578182fd5b8501601f81018713611fd8578182fd5b611fe787823560208401611e6c565b91505092959194509250565b60008060408385031215612005578182fd5b61200e83611edc565b9150602083013561201e816129ee565b809150509250929050565b6000806040838503121561203b578182fd5b61204483611edc565b946020939093013593505050565b600060208284031215612063578081fd5b815161181a816129ee565b60006020828403121561207f578081fd5b813561181a816129fc565b60006020828403121561209b578081fd5b815161181a816129fc565b6000602082840312156120b7578081fd5b813567ffffffffffffffff8111156120cd578182fd5b8201601f810184136120dd578182fd5b61122484823560208401611e6c565b6000602082840312156120fd578081fd5b5035919050565b6000815180845261211c816020860160208601612916565b601f01601f19169290920160200192915050565b60008351612142818460208801612916565b835190830190612156818360208801612916565b01949350505050565b60008251612171818460208701612916565b64173539b7b760d91b920191825250600501919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906121cf90830184612104565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b60006020825261181a6020830184612104565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601a908201527f4e46543a204d696e74206e6f7420737461727465642079657421000000000000604082015260600190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526031908201527f45524337323155524953746f726167653a2055524920717565727920666f72206040820152703737b732bc34b9ba32b73a103a37b5b2b760791b606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601c908201527f4e46543a20496e73756666696369656e74206d696e7420666565732100000000604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b6020808252601c908201527f4e46543a204d6178204e4654206c696d69742065786365656465642100000000604082015260600190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b600082198211156128c7576128c76129ac565b500190565b6000826128db576128db6129c2565b500490565b60008160001904831182151516156128fa576128fa6129ac565b500290565b600082821015612911576129116129ac565b500390565b60005b83811015612931578181015183820152602001612919565b83811115610e9c5750506000910152565b60028104600182168061295657607f821691505b6020821081141561297757634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612991576129916129ac565b5060010190565b6000826129a7576129a76129c2565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146109aa57600080fd5b6001600160e01b0319811681146109aa57600080fdfea2646970667358221220f42e0b70167d0ab33122e4ae91cda2e6e15b6b484e028989cf2dc3be7d97c64264736f6c63430008000033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000b43726f6f646c652041706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044341504500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Croodle Ape
Arg [1] : _symbol (string): CAPE
Arg [2] : _mintPrice (uint256): 5000000000000000000
Arg [3] : _maxNFT (uint256): 10000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000004563918244f40000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 43726f6f646c6520417065000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4341504500000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21560:3647:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22614:171;;;;;;;;;;-1:-1:-1;22614:171:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25043:161;;;;;;;;;;-1:-1:-1;25043:161:0;;;;;:::i;:::-;;:::i;:::-;;11016:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12046:219::-;;;;;;;;;;-1:-1:-1;12046:219:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11670:370::-;;;;;;;;;;-1:-1:-1;11670:370:0;;;;;:::i;:::-;;:::i;17907:113::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12740:250::-;;;;;;;;;;-1:-1:-1;12740:250:0;;;;;:::i;:::-;;:::i;17645:256::-;;;;;;;;;;-1:-1:-1;17645:256:0;;;;;:::i;:::-;;:::i;23180:65::-;;;;;;;;;;;;;:::i;12996:151::-;;;;;;;;;;-1:-1:-1;12996:151:0;;;;;:::i;:::-;;:::i;21361:192::-;;;;;;;;;;-1:-1:-1;21361:192:0;;;;;:::i;:::-;;:::i;18026:233::-;;;;;;;;;;-1:-1:-1;18026:233:0;;;;;:::i;:::-;;:::i;23447:98::-;;;;;;;;;;-1:-1:-1;23447:98:0;;;;;:::i;:::-;;:::i;5793:86::-;;;;;;;;;;;;;:::i;10771:239::-;;;;;;;;;;-1:-1:-1;10771:239:0;;;;;:::i;:::-;;:::i;21881:24::-;;;;;;;;;;;;;:::i;21940:21::-;;;;;;;;;;;;;:::i;10557:208::-;;;;;;;;;;-1:-1:-1;10557:208:0;;;;;:::i;:::-;;:::i;6877:148::-;;;;;;;;;;;;;:::i;23697:229::-;;;;;;;;;;-1:-1:-1;23697:229:0;;;;;:::i;:::-;;:::i;23113:61::-;;;;;;;;;;;;;:::i;6658:87::-;;;;;;;;;;;;;:::i;23932:374::-;;;;;;:::i;:::-;;:::i;11122:104::-;;;;;;;;;;;;;:::i;12271:293::-;;;;;;;;;;-1:-1:-1;12271:293:0;;;;;:::i;:::-;;:::i;22024:31::-;;;;;;;;;;;;;:::i;13153:285::-;;;;;;;;;;-1:-1:-1;13153:285:0;;;;;:::i;:::-;;:::i;21768:50::-;;;;;;;;;;-1:-1:-1;21768:50:0;;;;;:::i;:::-;;:::i;22418:190::-;;;;;;;;;;-1:-1:-1;22418:190:0;;;;;:::i;:::-;;:::i;21825:49::-;;;;;;;;;;-1:-1:-1;21825:49:0;;;;;:::i;:::-;;:::i;23251:84::-;;;;;;;;;;;;;:::i;21912:21::-;;;;;;;;;;;;;:::i;12570:164::-;;;;;;;;;;-1:-1:-1;12570:164:0;;;;;:::i;:::-;;:::i;7031:244::-;;;;;;;;;;-1:-1:-1;7031:244:0;;;;;:::i;:::-;;:::i;23341:100::-;;;;;;;;;;-1:-1:-1;23341:100:0;;;;;:::i;:::-;;:::i;24621:112::-;;;;;;;;;;;;;:::i;22614:171::-;22717:4;22741:36;22765:11;22741:23;:36::i;:::-;22734:43;;22614:171;;;;:::o;25043:161::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;;;;;;;;;25152:12:::1;-1:-1:-1::0;;;;;25146:28:0::1;;25175:7;:5;:7::i;:::-;25184:11;25146:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25043:161:::0;;:::o;11016:100::-;11070:13;11103:5;11096:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11016:100;:::o;12046:219::-;12122:7;12150:16;12158:7;12150;:16::i;:::-;12142:73;;;;-1:-1:-1;;;12142:73:0;;;;;;;:::i;:::-;-1:-1:-1;12233:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12233:24:0;;12046:219::o;11670:370::-;11751:13;11767:23;11782:7;11767:14;:23::i;:::-;11751:39;;11815:5;-1:-1:-1;;;;;11809:11:0;:2;-1:-1:-1;;;;;11809:11:0;;;11801:57;;;;-1:-1:-1;;;11801:57:0;;;;;;;:::i;:::-;11893:5;-1:-1:-1;;;;;11877:21:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11877:21:0;;:62;;;;11902:37;11919:5;11926:12;:10;:12::i;11902:37::-;11869:131;;;;-1:-1:-1;;;11869:131:0;;;;;;;:::i;:::-;12011:21;12020:2;12024:7;12011:8;:21::i;17907:113::-;17995:10;:17;17907:113;:::o;12740:250::-;12848:41;12867:12;:10;:12::i;:::-;12881:7;12848:18;:41::i;:::-;12840:103;;;;-1:-1:-1;;;12840:103:0;;;;;;;:::i;:::-;12954:28;12964:4;12970:2;12974:7;12954:9;:28::i;17645:256::-;17742:7;17778:23;17795:5;17778:16;:23::i;:::-;17770:5;:31;17762:87;;;;-1:-1:-1;;;17762:87:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17867:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;17645:256::o;23180:65::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23227:10:::1;:8;:10::i;:::-;23180:65::o:0;12996:151::-;13100:39;13117:4;13123:2;13127:7;13100:39;;;;;;;;;;;;:16;:39::i;21361:192::-;21426:41;21445:12;:10;:12::i;21426:41::-;21418:102;;;;-1:-1:-1;;;21418:102:0;;;;;;;:::i;:::-;21531:14;21537:7;21531:5;:14::i;:::-;21361:192;:::o;18026:233::-;18101:7;18137:30;:28;:30::i;:::-;18129:5;:38;18121:95;;;;-1:-1:-1;;;18121:95:0;;;;;;;:::i;:::-;18234:10;18245:5;18234:17;;;;;;-1:-1:-1;;;18234:17:0;;;;;;;;;;;;;;;;;18227:24;;18026:233;;;:::o;23447:98::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23519:18;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;23447:98:::0;:::o;5793:86::-;5840:4;5864:7;-1:-1:-1;;;5864:7:0;;;;;5793:86::o;10771:239::-;10843:7;10879:16;;;:7;:16;;;;;;-1:-1:-1;;;;;10879:16:0;10914:19;10906:73;;;;-1:-1:-1;;;10906:73:0;;;;;;;:::i;21881:24::-;;;;:::o;21940:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10557:208::-;10629:7;-1:-1:-1;;;;;10657:19:0;;10649:74;;;;-1:-1:-1;;;10649:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10741:16:0;;;;;:9;:16;;;;;;;10557:208::o;6877:148::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;6984:1:::1;6968:6:::0;;6947:40:::1;::::0;-1:-1:-1;;;;;6968:6:0;;::::1;::::0;6947:40:::1;::::0;6984:1;;6947:40:::1;7015:1;6998:19:::0;;-1:-1:-1;;;;;;6998:19:0::1;::::0;;6877:148::o;23697:229::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23781:6:::1;;23771;:16;;23763:57;;;;-1:-1:-1::0;;;23763:57:0::1;;;;;;;:::i;:::-;23836:9;23831:88;23855:6;23851:1;:10;23831:88;;;23883:24;23896:10;23883:12;:24::i;:::-;23863:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23831:88;;23113:61:::0;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23158:8:::1;:6;:8::i;6658:87::-:0;6704:7;6731:6;-1:-1:-1;;;;;6731:6:0;6658:87;:::o;23932:374::-;23999:11;;;;:19;;:11;:19;23991:58;;;;-1:-1:-1;;;23991:58:0;;;;;;;:::i;:::-;24093:6;24081:9;;:18;;;;:::i;:::-;24068:9;:31;;24060:72;;;;-1:-1:-1;;;24060:72:0;;;;;;;:::i;:::-;24161:6;;24151;:16;;24143:57;;;;-1:-1:-1;;;24143:57:0;;;;;;;:::i;:::-;24216:9;24211:88;24235:6;24231:1;:10;24211:88;;;24263:24;24276:10;24263:12;:24::i;:::-;24243:3;;;;:::i;:::-;;;;24211:88;;11122:104;11178:13;11211:7;11204:14;;;;;:::i;12271:293::-;12386:12;:10;:12::i;:::-;-1:-1:-1;;;;;12374:24:0;:8;-1:-1:-1;;;;;12374:24:0;;;12366:62;;;;-1:-1:-1;;;12366:62:0;;;;;;;:::i;:::-;12484:8;12439:18;:32;12458:12;:10;:12::i;:::-;-1:-1:-1;;;;;12439:32:0;;;;;;;;;;;;;;;;;-1:-1:-1;12439:32:0;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;12439:53:0;;;;;;;;;;;12523:12;:10;:12::i;:::-;-1:-1:-1;;;;;12508:48:0;;12547:8;12508:48;;;;;;:::i;:::-;;;;;;;;12271:293;;:::o;22024:31::-;;;;;;:::o;13153:285::-;13285:41;13304:12;:10;:12::i;:::-;13318:7;13285:18;:41::i;:::-;13277:103;;;;-1:-1:-1;;;13277:103:0;;;;;;;:::i;:::-;13391:39;13405:4;13411:2;13415:7;13424:5;13391:13;:39::i;:::-;13153:285;;;;:::o;21768:50::-;;;;;;;;;;;;;;;:::o;22418:190::-;22509:13;22566:23;22581:7;22566:14;:23::i;:::-;22549:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;22535:65;;22418:190;;;:::o;21825:49::-;;;;;;;;;;;;;;;:::o;23251:84::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23316:11:::1;::::0;;-1:-1:-1;;23301:26:0;::::1;23316:11;::::0;;::::1;23315:12;23301:26;::::0;;23251:84::o;21912:21::-;;;;:::o;12570:164::-;-1:-1:-1;;;;;12691:25:0;;;12667:4;12691:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;12570:164::o;7031:244::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7120:22:0;::::1;7112:73;;;;-1:-1:-1::0;;;7112:73:0::1;;;;;;;:::i;:::-;7222:6;::::0;;7201:38:::1;::::0;-1:-1:-1;;;;;7201:38:0;;::::1;::::0;7222:6;::::1;::::0;7201:38:::1;::::0;::::1;7250:6;:17:::0;;-1:-1:-1;;;;;;7250:17:0::1;-1:-1:-1::0;;;;;7250:17:0;;;::::1;::::0;;;::::1;::::0;;7031:244::o;23341:100::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;23411:9:::1;:22:::0;23341:100::o;24621:112::-;6802:12;:10;:12::i;:::-;-1:-1:-1;;;;;6791:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;6791:23:0;;6783:68;;;;-1:-1:-1;;;6783:68:0;;;;;;;:::i;:::-;24674:51:::1;::::0;24682:10:::1;::::0;24703:21:::1;24674:51:::0;::::1;;;::::0;::::1;::::0;;;24703:21;24682:10;24674:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;17415:224:::0;17517:4;-1:-1:-1;;;;;;17541:50:0;;-1:-1:-1;;;17541:50:0;;:90;;;17595:36;17619:11;17595:23;:36::i;5366:98::-;5446:10;5366:98;:::o;13722:127::-;13787:4;13811:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13811:16:0;:30;;;13722:127::o;15783:174::-;15858:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;15858:29:0;-1:-1:-1;;;;;15858:29:0;;;;;;;;:24;;15912:23;15858:24;15912:14;:23::i;:::-;-1:-1:-1;;;;;15903:46:0;;;;;;;;;;;15783:174;;:::o;13855:348::-;13948:4;13973:16;13981:7;13973;:16::i;:::-;13965:73;;;;-1:-1:-1;;;13965:73:0;;;;;;;:::i;:::-;14049:13;14065:23;14080:7;14065:14;:23::i;:::-;14049:39;;14118:5;-1:-1:-1;;;;;14107:16:0;:7;-1:-1:-1;;;;;14107:16:0;;:51;;;;14151:7;-1:-1:-1;;;;;14127:31:0;:20;14139:7;14127:11;:20::i;:::-;-1:-1:-1;;;;;14127:31:0;;14107:51;:87;;;;14162:32;14179:5;14186:7;14162:16;:32::i;:::-;14099:96;13855:348;-1:-1:-1;;;;13855:348:0:o;15293:484::-;15418:4;-1:-1:-1;;;;;15391:31:0;:23;15406:7;15391:14;:23::i;:::-;-1:-1:-1;;;;;15391:31:0;;15383:85;;;;-1:-1:-1;;;15383:85:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15487:16:0;;15479:65;;;;-1:-1:-1;;;15479:65:0;;;;;;;:::i;:::-;15555:39;15576:4;15582:2;15586:7;15555:20;:39::i;:::-;15605:29;15622:1;15626:7;15605:8;:29::i;:::-;-1:-1:-1;;;;;15645:15:0;;;;;;:9;:15;;;;;:20;;15664:1;;15645:15;:20;;15664:1;;15645:20;:::i;:::-;;;;-1:-1:-1;;;;;;;15676:13:0;;;;;;:9;:13;;;;;:18;;15693:1;;15676:13;:18;;15693:1;;15676:18;:::i;:::-;;;;-1:-1:-1;;15705:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;15705:21:0;-1:-1:-1;;;;;15705:21:0;;;;;;;;;15742:27;;15705:16;;15742:27;;;;;;;15293:484;;;:::o;6209:120::-;6026:8;:6;:8::i;:::-;6018:41;;;;-1:-1:-1;;;6018:41:0;;;;;;;:::i;:::-;6278:5:::1;6268:15:::0;;-1:-1:-1;;;;6268:15:0::1;::::0;;6299:22:::1;6308:12;:10;:12::i;:::-;6299:22;;;;;;:::i;:::-;;;;;;;;6209:120::o:0;22791:115::-;22878:20;22890:7;22878:11;:20::i;23551:140::-;23605:40;23615:2;23619:25;:15;:23;:25::i;:::-;23605:9;:40::i;:::-;23656:27;:15;:25;:27::i;6085:118::-;5930:8;:6;:8::i;:::-;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;;;;;;:::i;:::-;6145:7:::1;:14:::0;;-1:-1:-1;;;;6145:14:0::1;-1:-1:-1::0;;;6145:14:0::1;::::0;;6175:20:::1;6182:12;:10;:12::i;13444:272::-:0;13558:28;13568:4;13574:2;13578:7;13558:9;:28::i;:::-;13605:48;13628:4;13634:2;13638:7;13647:5;13605:22;:48::i;:::-;13597:111;;;;-1:-1:-1;;;13597:111:0;;;;;;;:::i;20338:524::-;20411:13;20445:16;20453:7;20445;:16::i;:::-;20437:78;;;;-1:-1:-1;;;20437:78:0;;;;;;;:::i;:::-;20526:23;20552:19;;;:10;:19;;;;;20526:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20582:18;20603:10;:8;:10::i;:::-;20582:31;;20634:4;20628:18;20650:1;20628:23;20624:72;;;-1:-1:-1;20675:9:0;-1:-1:-1;20668:16:0;;20624:72;20710:23;;:27;20706:108;;20785:4;20791:9;20768:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20754:48;;;;;;20706:108;20831:23;20846:7;20831:14;:23::i;10285:266::-;10387:4;-1:-1:-1;;;;;;10411:40:0;;-1:-1:-1;;;10411:40:0;;:92;;-1:-1:-1;;;;;;;10455:48:0;;-1:-1:-1;;;10455:48:0;10411:92;:132;;;;10507:36;10531:11;10507:23;:36::i;22912:195::-;5930:8;:6;:8::i;:::-;5929:9;5921:38;;;;-1:-1:-1;;;5921:38:0;;;;;;;:::i;:::-;23054:45:::1;23081:4;23087:2;23091:7;23054:26;:45::i;21091:204::-:0;21160:20;21172:7;21160:11;:20::i;:::-;21201:19;;;;:10;:19;;;;;21195:33;;;;;:::i;:::-;:38;;-1:-1:-1;21191:97:0;;21257:19;;;;:10;:19;;;;;21250:26;;;:::i;3415:114::-;3507:14;;3415:114::o;14209:110::-;14285:26;14295:2;14299:7;14285:26;;;;;;;;;;;;:9;:26::i;3535:127::-;3624:19;;3642:1;3624:19;;;3535:127::o;15963:760::-;16075:4;16096:15;:2;-1:-1:-1;;;;;16096:13:0;;:15::i;:::-;16092:624;;;16148:2;-1:-1:-1;;;;;16132:36:0;;16169:12;:10;:12::i;:::-;16183:4;16189:7;16198:5;16132:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16132:72:0;;;;;;;;-1:-1:-1;;16132:72:0;;;;;;;;;;;;:::i;:::-;;;16128:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16378:13:0;;16374:272;;16421:60;;-1:-1:-1;;;16421:60:0;;;;;;;:::i;16374:272::-;16596:6;16590:13;16581:6;16577:2;16573:15;16566:38;16128:533;-1:-1:-1;;;;;;16255:55:0;-1:-1:-1;;;16255:55:0;;-1:-1:-1;16248:62:0;;16092:624;-1:-1:-1;16700:4:0;15963:760;;;;;;:::o;22312:100::-;22364:13;22397:7;22390:14;;;;;:::i;11232:332::-;11305:13;11339:16;11347:7;11339;:16::i;:::-;11331:76;;;;-1:-1:-1;;;11331:76:0;;;;;;;:::i;:::-;11418:21;11442:10;:8;:10::i;:::-;11418:34;;11494:1;11476:7;11470:21;:25;:86;;;;;;;;;;;;;;;;;11522:7;11531:18;:7;:16;:18::i;:::-;11505:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11470:86;11463:93;11232:332;-1:-1:-1;;;11232:332:0:o;9571:157::-;-1:-1:-1;;;;;;9680:40:0;;-1:-1:-1;;;9680:40:0;9571:157;;;:::o;18265:553::-;18375:45;18402:4;18408:2;18412:7;18375:26;:45::i;:::-;-1:-1:-1;;;;;18435:18:0;;18431:187;;18470:40;18502:7;18470:31;:40::i;:::-;18431:187;;;18540:2;-1:-1:-1;;;;;18532:10:0;:4;-1:-1:-1;;;;;18532:10:0;;18528:90;;18559:47;18592:4;18598:7;18559:32;:47::i;:::-;-1:-1:-1;;;;;18632:16:0;;18628:183;;18665:45;18702:7;18665:36;:45::i;:::-;18628:183;;;18738:4;-1:-1:-1;;;;;18732:10:0;:2;-1:-1:-1;;;;;18732:10:0;;18728:83;;18759:40;18787:2;18791:7;18759:27;:40::i;14963:324::-;15023:13;15039:23;15054:7;15039:14;:23::i;:::-;15023:39;;15073:48;15094:5;15109:1;15113:7;15073:20;:48::i;:::-;15132:29;15149:1;15153:7;15132:8;:29::i;:::-;-1:-1:-1;;;;;15172:16:0;;;;;;:9;:16;;;;;:21;;15192:1;;15172:16;:21;;15192:1;;15172:21;:::i;:::-;;;;-1:-1:-1;;15211:16:0;;;;:7;:16;;;;;;15204:23;;-1:-1:-1;;;;;;15204:23:0;;;15243:36;15219:7;;15211:16;-1:-1:-1;;;;;15243:36:0;;;;;15211:16;;15243:36;14963:324;;:::o;14325:250::-;14421:18;14427:2;14431:7;14421:5;:18::i;:::-;14458:54;14489:1;14493:2;14497:7;14506:5;14458:22;:54::i;:::-;14450:117;;;;-1:-1:-1;;;14450:117:0;;;;;;;:::i;85:172::-;203:20;241:8;;;85:172::o;3995:532::-;4051:13;4081:10;4077:53;;-1:-1:-1;4108:10:0;;;;;;;;;;;;-1:-1:-1;;;4108:10:0;;;;;;4077:53;4155:5;4140:12;4196:78;4203:9;;4196:78;;4229:8;;;;:::i;:::-;;-1:-1:-1;4252:10:0;;-1:-1:-1;4260:2:0;4252:10;;:::i;:::-;;;4196:78;;;4284:19;4316:6;4306:17;;;;;;-1:-1:-1;;;4306:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4306:17:0;;4284:39;;4334:154;4341:10;;4334:154;;4368:11;4378:1;4368:11;;:::i;:::-;;-1:-1:-1;4437:10:0;4445:2;4437:5;:10;:::i;:::-;4424:24;;:2;:24;:::i;:::-;4411:39;;4394:6;4401;4394:14;;;;;;-1:-1:-1;;;4394:14:0;;;;;;;;;;;;:56;-1:-1:-1;;;;;4394:56:0;;;;;;;;-1:-1:-1;4465:11:0;4474:2;4465:11;;:::i;:::-;;;4334:154;;19051:164;19155:10;:17;;19128:24;;;;:15;:24;;;;;:44;;;19183:24;;;;;;;;;;;;19051:164::o;19221:549::-;19313:22;19363:1;19338:22;19355:4;19338:16;:22::i;:::-;:26;;;;:::i;:::-;19375:18;19396:26;;;:17;:26;;;;;;19313:51;;-1:-1:-1;19437:28:0;;;19433:234;;-1:-1:-1;;;;;19504:18:0;;19482:19;19504:18;;;:12;:18;;;;;;;;:34;;;;;;;;;19553:30;;;;;;:44;;;19612:30;;:17;:30;;;;;:43;;;19433:234;-1:-1:-1;19684:26:0;;;;:17;:26;;;;;;;;19677:33;;;-1:-1:-1;;;;;19728:18:0;;;;;:12;:18;;;;;:34;;;;;;;19721:41;19221:549::o;19776:419::-;19883:10;:17;19858:22;;19883:21;;19903:1;;19883:21;:::i;:::-;19915:18;19936:24;;;:15;:24;;;;;;19993:10;:26;;19858:46;;-1:-1:-1;19936:24:0;;19858:46;;19993:26;;;;-1:-1:-1;;;19993:26:0;;;;;;;;;;;;;;;;;19971:48;;20055:11;20030:10;20041;20030:22;;;;;;-1:-1:-1;;;20030:22:0;;;;;;;;;;;;;;;;;;;;:36;;;;20077:28;;;:15;:28;;;;;;;:41;;;20136:24;;;;;20129:31;20171:10;:16;;;;;-1:-1:-1;;;20171:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;19776:419;;;;:::o;18824:221::-;18909:14;18926:20;18943:2;18926:16;:20::i;:::-;-1:-1:-1;;;;;18957:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;19002:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;18824:221:0:o;14581:376::-;-1:-1:-1;;;;;14661:16:0;;14653:61;;;;-1:-1:-1;;;14653:61:0;;;;;;;:::i;:::-;14734:16;14742:7;14734;:16::i;:::-;14733:17;14725:58;;;;-1:-1:-1;;;14725:58:0;;;;;;;:::i;:::-;14794:45;14823:1;14827:2;14831:7;14794:20;:45::i;:::-;-1:-1:-1;;;;;14850:13:0;;;;;;:9;:13;;;;;:18;;14867:1;;14850:13;:18;;14867:1;;14850:18;:::i;:::-;;;;-1:-1:-1;;14879:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14879:21:0;-1:-1:-1;;;;;14879:21:0;;;;;;;;14916:33;;14879:16;;;14916:33;;14879:16;;14916:33;14581:376;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:607:1;;110:18;151:2;143:6;140:14;137:2;;;157:18;;:::i;:::-;206:2;200:9;279:2;256:17;;-1:-1:-1;;252:31:1;240:44;;286:4;236:55;306:18;;;326:22;;;303:46;300:2;;;352:18;;:::i;:::-;388:2;381:22;436;;;421:6;-1:-1:-1;421:6:1;473:16;;;470:25;-1:-1:-1;467:2:1;;;508:1;505;498:12;467:2;558:6;553:3;546:4;538:6;534:17;521:44;613:1;606:4;597:6;589;585:19;581:30;574:41;;;90:531;;;;;:::o;626:175::-;696:20;;-1:-1:-1;;;;;745:31:1;;735:42;;725:2;;791:1;788;781:12;806:198;;918:2;906:9;897:7;893:23;889:32;886:2;;;939:6;931;924:22;886:2;967:31;988:9;967:31;:::i;1009:274::-;;;1138:2;1126:9;1117:7;1113:23;1109:32;1106:2;;;1159:6;1151;1144:22;1106:2;1187:31;1208:9;1187:31;:::i;:::-;1177:41;;1237:40;1273:2;1262:9;1258:18;1237:40;:::i;:::-;1227:50;;1096:187;;;;;:::o;1288:342::-;;;;1434:2;1422:9;1413:7;1409:23;1405:32;1402:2;;;1455:6;1447;1440:22;1402:2;1483:31;1504:9;1483:31;:::i;:::-;1473:41;;1533:40;1569:2;1558:9;1554:18;1533:40;:::i;:::-;1523:50;;1620:2;1609:9;1605:18;1592:32;1582:42;;1392:238;;;;;:::o;1635:702::-;;;;;1807:3;1795:9;1786:7;1782:23;1778:33;1775:2;;;1829:6;1821;1814:22;1775:2;1857:31;1878:9;1857:31;:::i;:::-;1847:41;;1907:40;1943:2;1932:9;1928:18;1907:40;:::i;:::-;1897:50;;1994:2;1983:9;1979:18;1966:32;1956:42;;2049:2;2038:9;2034:18;2021:32;2076:18;2068:6;2065:30;2062:2;;;2113:6;2105;2098:22;2062:2;2141:22;;2194:4;2186:13;;2182:27;-1:-1:-1;2172:2:1;;2228:6;2220;2213:22;2172:2;2256:75;2323:7;2318:2;2305:16;2300:2;2296;2292:11;2256:75;:::i;:::-;2246:85;;;1765:572;;;;;;;:::o;2342:329::-;;;2468:2;2456:9;2447:7;2443:23;2439:32;2436:2;;;2489:6;2481;2474:22;2436:2;2517:31;2538:9;2517:31;:::i;:::-;2507:41;;2598:2;2587:9;2583:18;2570:32;2611:30;2635:5;2611:30;:::i;:::-;2660:5;2650:15;;;2426:245;;;;;:::o;2676:266::-;;;2805:2;2793:9;2784:7;2780:23;2776:32;2773:2;;;2826:6;2818;2811:22;2773:2;2854:31;2875:9;2854:31;:::i;:::-;2844:41;2932:2;2917:18;;;;2904:32;;-1:-1:-1;;;2763:179:1:o;2947:257::-;;3067:2;3055:9;3046:7;3042:23;3038:32;3035:2;;;3088:6;3080;3073:22;3035:2;3125:9;3119:16;3144:30;3168:5;3144:30;:::i;3209:257::-;;3320:2;3308:9;3299:7;3295:23;3291:32;3288:2;;;3341:6;3333;3326:22;3288:2;3385:9;3372:23;3404:32;3430:5;3404:32;:::i;3471:261::-;;3593:2;3581:9;3572:7;3568:23;3564:32;3561:2;;;3614:6;3606;3599:22;3561:2;3651:9;3645:16;3670:32;3696:5;3670:32;:::i;3737:482::-;;3859:2;3847:9;3838:7;3834:23;3830:32;3827:2;;;3880:6;3872;3865:22;3827:2;3925:9;3912:23;3958:18;3950:6;3947:30;3944:2;;;3995:6;3987;3980:22;3944:2;4023:22;;4076:4;4068:13;;4064:27;-1:-1:-1;4054:2:1;;4110:6;4102;4095:22;4054:2;4138:75;4205:7;4200:2;4187:16;4182:2;4178;4174:11;4138:75;:::i;4224:190::-;;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4357:6;4349;4342:22;4304:2;-1:-1:-1;4385:23:1;;4294:120;-1:-1:-1;4294:120:1:o;4419:259::-;;4500:5;4494:12;4527:6;4522:3;4515:19;4543:63;4599:6;4592:4;4587:3;4583:14;4576:4;4569:5;4565:16;4543:63;:::i;:::-;4660:2;4639:15;-1:-1:-1;;4635:29:1;4626:39;;;;4667:4;4622:50;;4470:208;-1:-1:-1;;4470:208:1:o;4683:470::-;;4900:6;4894:13;4916:53;4962:6;4957:3;4950:4;4942:6;4938:17;4916:53;:::i;:::-;5032:13;;4991:16;;;;5054:57;5032:13;4991:16;5088:4;5076:17;;5054:57;:::i;:::-;5127:20;;4870:283;-1:-1:-1;;;;4870:283:1:o;5158:443::-;;5428:6;5422:13;5444:53;5490:6;5485:3;5478:4;5470:6;5466:17;5444:53;:::i;:::-;-1:-1:-1;;;5519:16:1;;5544:22;;;-1:-1:-1;5593:1:1;5582:13;;5398:203;-1:-1:-1;5398:203:1:o;5606:::-;-1:-1:-1;;;;;5770:32:1;;;;5752:51;;5740:2;5725:18;;5707:102::o;5814:490::-;-1:-1:-1;;;;;6083:15:1;;;6065:34;;6135:15;;6130:2;6115:18;;6108:43;6182:2;6167:18;;6160:34;;;6230:3;6225:2;6210:18;;6203:31;;;5814:490;;6251:47;;6278:19;;6270:6;6251:47;:::i;:::-;6243:55;6017:287;-1:-1:-1;;;;;;6017:287:1:o;6309:274::-;-1:-1:-1;;;;;6501:32:1;;;;6483:51;;6565:2;6550:18;;6543:34;6471:2;6456:18;;6438:145::o;6588:187::-;6753:14;;6746:22;6728:41;;6716:2;6701:18;;6683:92::o;6780:221::-;;6929:2;6918:9;6911:21;6949:46;6991:2;6980:9;6976:18;6968:6;6949:46;:::i;7006:344::-;7208:2;7190:21;;;7247:2;7227:18;;;7220:30;-1:-1:-1;;;7281:2:1;7266:18;;7259:50;7341:2;7326:18;;7180:170::o;7355:407::-;7557:2;7539:21;;;7596:2;7576:18;;;7569:30;7635:34;7630:2;7615:18;;7608:62;-1:-1:-1;;;7701:2:1;7686:18;;7679:41;7752:3;7737:19;;7529:233::o;7767:414::-;7969:2;7951:21;;;8008:2;7988:18;;;7981:30;8047:34;8042:2;8027:18;;8020:62;-1:-1:-1;;;8113:2:1;8098:18;;8091:48;8171:3;8156:19;;7941:240::o;8186:402::-;8388:2;8370:21;;;8427:2;8407:18;;;8400:30;8466:34;8461:2;8446:18;;8439:62;-1:-1:-1;;;8532:2:1;8517:18;;8510:36;8578:3;8563:19;;8360:228::o;8593:350::-;8795:2;8777:21;;;8834:2;8814:18;;;8807:30;8873:28;8868:2;8853:18;;8846:56;8934:2;8919:18;;8767:176::o;8948:352::-;9150:2;9132:21;;;9189:2;9169:18;;;9162:30;9228;9223:2;9208:18;;9201:58;9291:2;9276:18;;9122:178::o;9305:400::-;9507:2;9489:21;;;9546:2;9526:18;;;9519:30;9585:34;9580:2;9565:18;;9558:62;-1:-1:-1;;;9651:2:1;9636:18;;9629:34;9695:3;9680:19;;9479:226::o;9710:349::-;9912:2;9894:21;;;9951:2;9931:18;;;9924:30;9990:27;9985:2;9970:18;;9963:55;10050:2;10035:18;;9884:175::o;10064:408::-;10266:2;10248:21;;;10305:2;10285:18;;;10278:30;10344:34;10339:2;10324:18;;10317:62;-1:-1:-1;;;10410:2:1;10395:18;;10388:42;10462:3;10447:19;;10238:234::o;10477:340::-;10679:2;10661:21;;;10718:2;10698:18;;;10691:30;-1:-1:-1;;;10752:2:1;10737:18;;10730:46;10808:2;10793:18;;10651:166::o;10822:420::-;11024:2;11006:21;;;11063:2;11043:18;;;11036:30;11102:34;11097:2;11082:18;;11075:62;11173:26;11168:2;11153:18;;11146:54;11232:3;11217:19;;10996:246::o;11247:406::-;11449:2;11431:21;;;11488:2;11468:18;;;11461:30;11527:34;11522:2;11507:18;;11500:62;-1:-1:-1;;;11593:2:1;11578:18;;11571:40;11643:3;11628:19;;11421:232::o;11658:405::-;11860:2;11842:21;;;11899:2;11879:18;;;11872:30;11938:34;11933:2;11918:18;;11911:62;-1:-1:-1;;;12004:2:1;11989:18;;11982:39;12053:3;12038:19;;11832:231::o;12068:356::-;12270:2;12252:21;;;12289:18;;;12282:30;12348:34;12343:2;12328:18;;12321:62;12415:2;12400:18;;12242:182::o;12429:413::-;12631:2;12613:21;;;12670:2;12650:18;;;12643:30;12709:34;12704:2;12689:18;;12682:62;-1:-1:-1;;;12775:2:1;12760:18;;12753:47;12832:3;12817:19;;12603:239::o;12847:408::-;13049:2;13031:21;;;13088:2;13068:18;;;13061:30;13127:34;13122:2;13107:18;;13100:62;-1:-1:-1;;;13193:2:1;13178:18;;13171:42;13245:3;13230:19;;13021:234::o;13260:356::-;13462:2;13444:21;;;13481:18;;;13474:30;13540:34;13535:2;13520:18;;13513:62;13607:2;13592:18;;13434:182::o;13621:405::-;13823:2;13805:21;;;13862:2;13842:18;;;13835:30;13901:34;13896:2;13881:18;;13874:62;-1:-1:-1;;;13967:2:1;13952:18;;13945:39;14016:3;14001:19;;13795:231::o;14031:411::-;14233:2;14215:21;;;14272:2;14252:18;;;14245:30;14311:34;14306:2;14291:18;;14284:62;-1:-1:-1;;;14377:2:1;14362:18;;14355:45;14432:3;14417:19;;14205:237::o;14447:397::-;14649:2;14631:21;;;14688:2;14668:18;;;14661:30;14727:34;14722:2;14707:18;;14700:62;-1:-1:-1;;;14793:2:1;14778:18;;14771:31;14834:3;14819:19;;14621:223::o;14849:413::-;15051:2;15033:21;;;15090:2;15070:18;;;15063:30;15129:34;15124:2;15109:18;;15102:62;-1:-1:-1;;;15195:2:1;15180:18;;15173:47;15252:3;15237:19;;15023:239::o;15267:352::-;15469:2;15451:21;;;15508:2;15488:18;;;15481:30;15547;15542:2;15527:18;;15520:58;15610:2;15595:18;;15441:178::o;15624:408::-;15826:2;15808:21;;;15865:2;15845:18;;;15838:30;15904:34;15899:2;15884:18;;15877:62;-1:-1:-1;;;15970:2:1;15955:18;;15948:42;16022:3;16007:19;;15798:234::o;16037:352::-;16239:2;16221:21;;;16278:2;16258:18;;;16251:30;16317;16312:2;16297:18;;16290:58;16380:2;16365:18;;16211:178::o;16394:412::-;16596:2;16578:21;;;16635:2;16615:18;;;16608:30;16674:34;16669:2;16654:18;;16647:62;-1:-1:-1;;;16740:2:1;16725:18;;16718:46;16796:3;16781:19;;16568:238::o;16811:177::-;16957:25;;;16945:2;16930:18;;16912:76::o;16993:128::-;;17064:1;17060:6;17057:1;17054:13;17051:2;;;17070:18;;:::i;:::-;-1:-1:-1;17106:9:1;;17041:80::o;17126:120::-;;17192:1;17182:2;;17197:18;;:::i;:::-;-1:-1:-1;17231:9:1;;17172:74::o;17251:168::-;;17357:1;17353;17349:6;17345:14;17342:1;17339:21;17334:1;17327:9;17320:17;17316:45;17313:2;;;17364:18;;:::i;:::-;-1:-1:-1;17404:9:1;;17303:116::o;17424:125::-;;17492:1;17489;17486:8;17483:2;;;17497:18;;:::i;:::-;-1:-1:-1;17534:9:1;;17473:76::o;17554:258::-;17626:1;17636:113;17650:6;17647:1;17644:13;17636:113;;;17726:11;;;17720:18;17707:11;;;17700:39;17672:2;17665:10;17636:113;;;17767:6;17764:1;17761:13;17758:2;;;-1:-1:-1;;17802:1:1;17784:16;;17777:27;17607:205::o;17817:380::-;17902:1;17892:12;;17949:1;17939:12;;;17960:2;;18014:4;18006:6;18002:17;17992:27;;17960:2;18067;18059:6;18056:14;18036:18;18033:38;18030:2;;;18113:10;18108:3;18104:20;18101:1;18094:31;18148:4;18145:1;18138:15;18176:4;18173:1;18166:15;18030:2;;17872:325;;;:::o;18202:135::-;;-1:-1:-1;;18262:17:1;;18259:2;;;18282:18;;:::i;:::-;-1:-1:-1;18329:1:1;18318:13;;18249:88::o;18342:112::-;;18400:1;18390:2;;18405:18;;:::i;:::-;-1:-1:-1;18439:9:1;;18380:74::o;18459:127::-;18520:10;18515:3;18511:20;18508:1;18501:31;18551:4;18548:1;18541:15;18575:4;18572:1;18565:15;18591:127;18652:10;18647:3;18643:20;18640:1;18633:31;18683:4;18680:1;18673:15;18707:4;18704:1;18697:15;18723:127;18784:10;18779:3;18775:20;18772:1;18765:31;18815:4;18812:1;18805:15;18839:4;18836:1;18829:15;18855:120;18943:5;18936:13;18929:21;18922:5;18919:32;18909:2;;18965:1;18962;18955:12;18980:133;-1:-1:-1;;;;;;19056:32:1;;19046:43;;19036:2;;19103:1;19100;19093:12

Swarm Source

ipfs://f42e0b70167d0ab33122e4ae91cda2e6e15b6b484e028989cf2dc3be7d97c642
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.