Contract 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x3addd45f086c53920b3c38d7a7779de7f3e382f0ac3e4fbad029f5df08ea2fe7Set Approval For...384231922023-01-23 9:07:56128 days 7 mins ago0x049b190aaa81c76cad439bd413fb153f38ee7f8d IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.002922112602 63.249190531
0xf6e7848887f82f781172971ce665d308b5366b831315dea21805591469fa1aedBuy384231702023-01-23 9:07:10128 days 7 mins ago0x049b190aaa81c76cad439bd413fb153f38ee7f8d IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d5 MATIC0.029760691484 58.49514416
0x1893b3d77bf6f55ae407c93680f76c4e74bbf1d7b8cc8a630400afd7562d1b23Set Approval For...349629642022-10-29 22:49:53213 days 10 hrs ago0x5479b905ab56341e96ad38386b947ab364c33d3f IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00149129337132.279077305
0x0569c1519b8569ab17b891e0547d79b51a71a15501d927126f4d1076fccac0d8Buy349628592022-10-29 22:46:15213 days 10 hrs ago0x5479b905ab56341e96ad38386b947ab364c33d3f IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d5 MATIC0.01785919331
0x36d2eb718973d57bb5f413227e1b896c1402c8a4e1359a0067f38f46eaa80911Buy349085932022-10-28 15:10:42214 days 18 hrs ago cryptodotman.wallet  IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d80 MATIC0.054283592978 151.768774771
0x0828562f3a1657a72eab14d2e1851e4820238db940e7b953ab393708e1517bfeBuy346885442022-10-23 5:39:28220 days 3 hrs ago0xdd6ce04ddae5d6377ce6a897cbf212315aaebe55 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d65 MATIC0.028125610938 78.544290864
0x01a20368087709726fd8f23257f102daf9b9aebb05ba8e52319d90abae4093c9Buy343374622022-10-14 14:40:08228 days 18 hrs ago0x14905045a31d76bc7e1ba26af02e86d0d8bc9ebd IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d35 MATIC0.056614096091 158.284511526
0x8e0d2db95913ff8f342c84fcb8a683879eef0f1d5f06efe6fd249bc16bcc281eBuy341287432022-10-09 13:47:21233 days 19 hrs ago0x4f62604d7d1f7fb19867cda16216e906596c430c IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d40 MATIC0.010730190005 30.000000014
0x96c91af91e820aafff59d5b45a18885b985cf0d0ab387d02dcdc10661ce14007Buy340137292022-10-06 18:39:07236 days 14 hrs ago0x4f62604d7d1f7fb19867cda16216e906596c430c IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d9 MATIC0.010730190005 30.000000016
0x5ba5e3ec5549896a3bfba92c51656d7e914ede54bfbf783abfed46f5e43491fbBuy339248022022-10-04 15:12:55238 days 18 hrs ago0x3b7de0ac2db755ac2c979116209ebee88d65af05 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00192942 90
0x135d007ed7d74fba6cbe1211451269c7cdb5bf989c02edd57ff4e2fd442135b5Buy339247472022-10-04 15:10:57238 days 18 hrs ago0x2f5898db89b165c9f554f31d6f815f916cc885d2 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00192942 90
0xeddcd87845dc726a7af116ad6ac95f0d852dc38d111cff263a3c842a096b6cdcBuy339247212022-10-04 15:10:01238 days 18 hrs ago0x735dbf280d93a925d4f047adcfca3899c92cffa3 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00192942 90
0xbb61add23233d213652cb02f90f5ee7daa8adf6310e8642f6a731e388bc616a8Buy339247012022-10-04 15:09:21238 days 18 hrs ago0xbc8f3601a613fd8193484e1ee305fb2f673d6098 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.01 MATIC0.00253242 90
0x5d615e13c7d4e597e9b8529d473ca5804ec0eeb97903c88606f3ea120af37c32Buy339246542022-10-04 15:07:43238 days 18 hrs ago0x218d03e9e798186db6a945cf61a9c6e4f3b36600 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00192942 90
0xb02fc317f979c8b33a1e70d8ec6833c4f224f1afed480580bad901275ac01bd6Buy339246142022-10-04 15:06:23238 days 18 hrs ago0x7c8379e2864fc486a8e22f6c4051d14d57354b10 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00192942 90
0xd131911c9599b59a0a2acee20de64cad45478bb5a0b85c8c53efbb027881cc0aBuy339246032022-10-04 15:05:57238 days 18 hrs ago0x7c8379e2864fc486a8e22f6c4051d14d57354b10 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.01 MATIC0.00253242 90
0xa97e2bfe77e738f19be4bd7f64d24e00539898e840837dd519db08e135af4d27Buy339245442022-10-04 15:03:59238 days 18 hrs ago0x411ff6bb799bc7bc164083a31f4e2dd65e9b2777 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
0x9b8b2b6e4d76cfa24330389c0c809065c8eb351a862a2784d19243336f11b6b1Buy339245432022-10-04 15:03:53238 days 18 hrs ago0x411ff6bb799bc7bc164083a31f4e2dd65e9b2777 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
0xbfa91fbb41ca5a05cec904d40a6f28e9a4014b62e14e26530c022344de31c314Buy339245172022-10-04 15:03:01238 days 18 hrs ago0x12fa533681200598596a74f106913238b48d8b31 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
0xb36c101b5d1ab4ed918a1dfd310e3ae8a82e4d06cc77b176a609a070a76d8e78Buy339244702022-10-04 15:01:23238 days 18 hrs ago0x7fe01b02f5c1dafa6983046fd027ae81b9137140 IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
0x9bfd4d40a64c7278fd582fcf4a2b4ab2166b63e80d28590f41a34f3008fc681fBuy339243502022-10-04 14:57:15238 days 18 hrs ago0x5dfeb7314b32c19d14542b43aeab1ee17b2c725a IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0 MATIC0.00192942 90
0x0c2314d23e9763b3c423b01b6465569ce37b20109fae9486682c68c06bc2059dBuy339243492022-10-04 14:57:13238 days 18 hrs ago0x5dfeb7314b32c19d14542b43aeab1ee17b2c725a IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.03 MATIC0.00253242 90
0x4265d3c33de604152b0c6bbd3ab455a2fcd7decb807d9ce971a0b41c2d6da153Buy339243442022-10-04 14:57:03238 days 18 hrs ago0x5dfeb7314b32c19d14542b43aeab1ee17b2c725a IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
0xa472fd8aba17e9626a9ec19534cca479e2960234197a34f9407824b095815985Buy339243422022-10-04 14:56:59238 days 18 hrs ago0x5dfeb7314b32c19d14542b43aeab1ee17b2c725a IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
0x3d3aa4512e305aaf8afec81363c8e6fb2f3aecf9276d6330e60d116915611861Buy339243352022-10-04 14:56:45238 days 18 hrs ago0x5dfeb7314b32c19d14542b43aeab1ee17b2c725a IN  0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0.02 MATIC0.00253242 90
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf6e7848887f82f781172971ce665d308b5366b831315dea21805591469fa1aed384231702023-01-23 9:07:10128 days 7 mins ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a4.25 MATIC
0xf6e7848887f82f781172971ce665d308b5366b831315dea21805591469fa1aed384231702023-01-23 9:07:10128 days 7 mins ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060770.5 MATIC
0xf6e7848887f82f781172971ce665d308b5366b831315dea21805591469fa1aed384231702023-01-23 9:07:10128 days 7 mins ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78880.25 MATIC
0x0569c1519b8569ab17b891e0547d79b51a71a15501d927126f4d1076fccac0d8349628592022-10-29 22:46:15213 days 10 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a4.25 MATIC
0x0569c1519b8569ab17b891e0547d79b51a71a15501d927126f4d1076fccac0d8349628592022-10-29 22:46:15213 days 10 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060770.5 MATIC
0x0569c1519b8569ab17b891e0547d79b51a71a15501d927126f4d1076fccac0d8349628592022-10-29 22:46:15213 days 10 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78880.25 MATIC
0x36d2eb718973d57bb5f413227e1b896c1402c8a4e1359a0067f38f46eaa80911349085932022-10-28 15:10:42214 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a68 MATIC
0x36d2eb718973d57bb5f413227e1b896c1402c8a4e1359a0067f38f46eaa80911349085932022-10-28 15:10:42214 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060778 MATIC
0x36d2eb718973d57bb5f413227e1b896c1402c8a4e1359a0067f38f46eaa80911349085932022-10-28 15:10:42214 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78884 MATIC
0x0828562f3a1657a72eab14d2e1851e4820238db940e7b953ab393708e1517bfe346885442022-10-23 5:39:28220 days 3 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a55.25 MATIC
0x0828562f3a1657a72eab14d2e1851e4820238db940e7b953ab393708e1517bfe346885442022-10-23 5:39:28220 days 3 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060776.5 MATIC
0x0828562f3a1657a72eab14d2e1851e4820238db940e7b953ab393708e1517bfe346885442022-10-23 5:39:28220 days 3 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78883.25 MATIC
0x01a20368087709726fd8f23257f102daf9b9aebb05ba8e52319d90abae4093c9343374622022-10-14 14:40:08228 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a29.75 MATIC
0x01a20368087709726fd8f23257f102daf9b9aebb05ba8e52319d90abae4093c9343374622022-10-14 14:40:08228 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060773.5 MATIC
0x01a20368087709726fd8f23257f102daf9b9aebb05ba8e52319d90abae4093c9343374622022-10-14 14:40:08228 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78881.75 MATIC
0x8e0d2db95913ff8f342c84fcb8a683879eef0f1d5f06efe6fd249bc16bcc281e341287432022-10-09 13:47:21233 days 19 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a34 MATIC
0x8e0d2db95913ff8f342c84fcb8a683879eef0f1d5f06efe6fd249bc16bcc281e341287432022-10-09 13:47:21233 days 19 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060774 MATIC
0x8e0d2db95913ff8f342c84fcb8a683879eef0f1d5f06efe6fd249bc16bcc281e341287432022-10-09 13:47:21233 days 19 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78882 MATIC
0x96c91af91e820aafff59d5b45a18885b985cf0d0ab387d02dcdc10661ce14007340137292022-10-06 18:39:07236 days 14 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d 0x56376b4c9f340927626f8a3fe533014231e96b5a7.65 MATIC
0x96c91af91e820aafff59d5b45a18885b985cf0d0ab387d02dcdc10661ce14007340137292022-10-06 18:39:07236 days 14 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x33dec1b9978934338b6cbdff0274682e3f6060770.9 MATIC
0x96c91af91e820aafff59d5b45a18885b985cf0d0ab387d02dcdc10661ce14007340137292022-10-06 18:39:07236 days 14 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x5e633cae917f2c8a8e59498011b7c906478c78880.45 MATIC
0xbb61add23233d213652cb02f90f5ee7daa8adf6310e8642f6a731e388bc616a8339247012022-10-04 15:09:21238 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0xbc8f3601a613fd8193484e1ee305fb2f673d60980.01 MATIC
0xd131911c9599b59a0a2acee20de64cad45478bb5a0b85c8c53efbb027881cc0a339246032022-10-04 15:05:57238 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x7c8379e2864fc486a8e22f6c4051d14d57354b100.01 MATIC
0xa97e2bfe77e738f19be4bd7f64d24e00539898e840837dd519db08e135af4d27339245442022-10-04 15:03:59238 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x411ff6bb799bc7bc164083a31f4e2dd65e9b27770.02 MATIC
0x9b8b2b6e4d76cfa24330389c0c809065c8eb351a862a2784d19243336f11b6b1339245432022-10-04 15:03:53238 days 18 hrs ago 0x3ed23cdb2999a8d52e6d1e797561b4cc8212d01d0x411ff6bb799bc7bc164083a31f4e2dd65e9b27770.02 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
POSDuckNFT

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-09-07
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0;


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,
        bytes calldata data
    ) external;

    
    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 setApprovalForAll(address operator, bool _approved) external;

    
    function getApproved(uint256 tokenId) external view returns (address operator);

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

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);
}

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

        return account.code.length > 0;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                
                
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    uint8 private constant _ADDRESS_LENGTH = 20;

    
    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] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    
    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }
}

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: address zero is not a valid owner");
        return _balances[owner];
    }

    
    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: invalid token ID");
        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) {
        _requireMinted(tokenId);

        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 token owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    
    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        _requireMinted(tokenId);

        return _tokenApprovals[tokenId];
    }

    
    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_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: caller is not token 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: caller is not token 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) {
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == 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);

        _afterTokenTransfer(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);

        _afterTokenTransfer(owner, address(0), tokenId);
    }

    
    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner");
        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);

        _afterTokenTransfer(from, to, tokenId);
    }

    
    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    
    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC721: approve to caller");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    
    function _requireMinted(uint256 tokenId) internal view virtual {
        require(_exists(tokenId), "ERC721: invalid token ID");
    }

    
    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.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 {}

    
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}
}

library Constants {

  

  uint256 internal constant PERCENT_PRECISION = 1e4;

  
  uint256 public constant MIN_PRICE = 5 ether;
  uint256 public constant FEE_PERCENT = 1000; 

  
  uint256 public constant MIN_INVESTMENT_TO_GET_BOOST = 50 ether;

  
  uint256 public constant STAKES_LIMIT = 100;

}

library Boosts {

  enum BoostType{ PROFIT, TIME, TEAM }

  struct Boost {
    BoostType boostType;
    uint256 boostTimePercent;
    uint256 boostProfitPercent;
  }

}

library Models {

  struct Buyer {
    uint256[] purchases;
    uint256 totalSpent;
    address referrer;
    address[] referrals;
    uint256 bonus;
    uint256[10] refs;
    uint256[10] refsNumber;
    uint8 refLevel;
    uint256 refTurnover;

    uint8 leaderLevel;
    bool mayBecomeLeader;
    bool isLeader;
  }

  struct StakeType {
    uint256 dailyPercent;
    uint256 term;
  }

  struct Stake {
    uint8 stakeTypeIdx;
    uint256 startTime;
    uint256 tokenId;
    mapping(uint8 => Boosts.Boost) boosts;
    uint8 boostsSize;
    uint256 lastWithdrawalTime;
    bool isExpired;
  }

}

library Events {
  event NFTBought(
    address indexed buyer,
    address indexed referrer,
    uint256 amount,
    uint256 indexed tokenId,
    uint256 timestamp
  );

  event NewBoost(
    address indexed buyer,
    Boosts.BoostType indexed boostType,
    uint256 indexed tokenId,
    string currency,
    uint256 amount,
    uint256 timePercent,
    uint256 profitPercent,
    uint256 timestamp
  );

  event Staked(
    address indexed investor,
    uint8 indexed stakeTypeIdx,
    uint256 indexed stakeIdx,
    uint256 tokenId,
    uint256 amount,
    uint256 timestamp
  );

  event Withdrawn(
    address indexed investor,
    uint8 indexed stakeTypeIdx,
    uint256 indexed stakeIdx,
    uint256 tokenId,
    uint256 reward,
    uint256 timestamp
  );

  event Unstaked(
    address indexed investor,
    uint8 indexed stakeTypeIdx,
    uint256 indexed stakeIdx,
    uint256 tokenId,
    uint256 timestamp
  );

  event ReferralBonusReceived(
    address indexed referrer,
    address indexed referral,
    uint256 indexed level,
    uint256 amount,
    uint256 timestamp
  );

  event BoostApplied(
    address indexed buyer,
    uint256 indexed stakeIdx,
    uint256 indexed boostTokenId,
    uint256 timestamp
  );

  event NewLeader(
    address indexed buyer,
    uint8 indexed leaderLevel,
    uint256 timestamp
  );

}

interface CommonInterface {

  

  function getPrice(uint256 tokenId) external view returns(uint256);

  function buy(address[] calldata referrerAddrs_) external payable;

  

  function mintBoost(address receiver, Boosts.BoostType boostType, uint8 boostLevel) external;

  function mintLeaderBoost(address receiver, uint8 boostLevel) external;

  function getBoost(uint256 boostId) external view returns(Boosts.Boost memory boost);

  

  function ownerOf(uint256 tokenId) external view returns (address);

  function safeTransferFrom(address from, address to, uint256 tokenId) external;

}

contract ReferralProgram {

  address payable public immutable DEFAULT_REFERRER;
  address public immutable BOOST_NFT_CONTRACT_ADDRESS;

  uint256[] public REFERRAL_LEVELS_PERCENTS = [500, 700, 900, 1100, 1400, 1600, 1800, 2000];
  uint256[] public REFERRAL_LEVELS_MILESTONES = [0, 10_500 ether, 35_000 ether, 105_000 ether, 175_000 ether, 350_000 ether, 1_050_000 ether, 3_500_000 ether];
  uint256[] public LEADER_LEVELS_MILESTONES = [0, 5 ether, 10_500 ether, 35_000 ether, 105_000 ether, 175_000 ether, 350_000 ether, 1_050_000 ether, 3_500_000 ether, 7_000_000 ether, 17_000_000 ether];
  uint256[] public LEADER_LEVELS_USERS_MILESTONES = [0, 10, 15, 25, 50, 100, 150, 300, 500, 1_000, 2_500];
  uint8 constant public REFERRAL_DEPTH = 10;
  uint8 constant public REFERRAL_TURNOVER_DEPTH = 5;

  mapping (address => Models.Buyer) public buyers;

  mapping(address => mapping(uint8 => bool)) boostsReceived;

  constructor(address boostNFTContractAddress, address defaultReferrerAddress) {
    require(Address.isContract(boostNFTContractAddress), "01");

    BOOST_NFT_CONTRACT_ADDRESS = boostNFTContractAddress;
    DEFAULT_REFERRER = payable(defaultReferrerAddress);
  }

  function _distributeReferralReward(address buyerAddr_, address[] memory referrerAddrs_, uint256 amount_) internal {
    require(referrerAddrs_.length > 0 || buyers[buyerAddr_].referrer != address(0x0), "04");

    Models.Buyer storage buyer = buyers[buyerAddr_];

    bool isNewUser = false;
    if (buyer.referrer == address(0x0)) {
      isNewUser = true;
      if (referrerAddrs_[0] == address(0x0) || referrerAddrs_[0] == buyerAddr_) {
        buyer.referrer = DEFAULT_REFERRER;
        buyers[DEFAULT_REFERRER].referrals.push(buyerAddr_);
      } else {
        buyer.referrer = referrerAddrs_[0];
        buyers[referrerAddrs_[0]].referrals.push(buyerAddr_);
      }

      if (referrerAddrs_.length > 1 && buyer.referrer != DEFAULT_REFERRER) { 
        for (uint8 i = 0; i < REFERRAL_DEPTH && i < referrerAddrs_.length - 1; i++) {
          if (buyers[referrerAddrs_[i]].referrer == address(0x0)) { 
            if (referrerAddrs_[i + 1] != address(0x0) && referrerAddrs_[i + 1] != referrerAddrs_[i]) {
              buyers[referrerAddrs_[i]].referrer = referrerAddrs_[i + 1];
              buyers[referrerAddrs_[i + 1]].referrals.push(referrerAddrs_[i]);

              for (uint8 j = 0; j < i; j++) {
                buyers[referrerAddrs_[i + 1]].refsNumber[j]++;
              }
            } else {
              buyers[referrerAddrs_[i]].referrer = DEFAULT_REFERRER;
              buyers[DEFAULT_REFERRER].referrals.push(referrerAddrs_[i]);

              for (uint8 j = 0; j < i; j++) {
                buyers[DEFAULT_REFERRER].refsNumber[j]++;
              }

              break;
            }
          }
        }
      }
    }

    bool[] memory distributedLevels = new bool[](REFERRAL_LEVELS_PERCENTS.length);

    address current = buyerAddr_;
    address upline = buyer.referrer;
    uint8 maxRefLevel = 0;
    for (uint8 i = 0; i < REFERRAL_DEPTH; i++) {
        uint256 refPercent = 0;
        if (i == 0) {
          refPercent = REFERRAL_LEVELS_PERCENTS[buyers[upline].refLevel];

          maxRefLevel = buyers[upline].refLevel;
          for (uint8 j = buyers[upline].refLevel; j >= 0; j--) {
            distributedLevels[j] = true;

            if (j == 0) {
              break;
            }
          }
        } else if (buyers[upline].refLevel > maxRefLevel && !distributedLevels[buyers[upline].refLevel]) {
          refPercent = REFERRAL_LEVELS_PERCENTS[buyers[upline].refLevel] - REFERRAL_LEVELS_PERCENTS[maxRefLevel];

          maxRefLevel = buyers[upline].refLevel;
          for (uint8 j = buyers[upline].refLevel; j >= 0; j--) {
            distributedLevels[j] = true;

            if (j == 0) {
              break;
            }
          }
        }

        uint256 amount = amount_ * refPercent / Constants.PERCENT_PRECISION;
        if (amount > 0) {
          if (buyers[upline].totalSpent > 0) {
            payable(upline).transfer(amount);
            buyers[upline].bonus+= amount;

            emit Events.ReferralBonusReceived(upline, buyerAddr_, i, amount, block.timestamp);
          } else {
            DEFAULT_REFERRER.transfer(amount);

            emit Events.ReferralBonusReceived(DEFAULT_REFERRER, buyerAddr_, i, amount, block.timestamp);
          }
        }

        buyers[upline].refs[i]++;
        if (isNewUser) {
          buyers[upline].refsNumber[i]++;
        }

        current = upline;
        upline = buyers[upline].referrer;
    }

    upline = buyerAddr_; 
    for (uint256 i = 0; i <= REFERRAL_TURNOVER_DEPTH; i++) {
        if (upline == address(0)) {
          break;
        }

        _updateReferralLevel(upline, amount_);
        _updateLeaderLevel(upline);

        upline = buyers[upline].referrer;
    }
  }

  function _updateReferralLevel(address buyerAddr_, uint256 amount_) private {
    buyers[buyerAddr_].refTurnover+= amount_;

    for (uint8 level = uint8(REFERRAL_LEVELS_MILESTONES.length - 1); level > 0; level--) {
      if (buyers[buyerAddr_].refTurnover >= REFERRAL_LEVELS_MILESTONES[level]) {
        buyers[buyerAddr_].refLevel = level;

        break;
      }
    }
  }

  function _updateLeaderLevel(address buyerAddr_) private {
    

    if (buyerAddr_ == DEFAULT_REFERRER) {
      return;
    }
    uint256 totalUsersAttracted = getTotalAttractedUsers(buyerAddr_);

    for (uint8 level = uint8(LEADER_LEVELS_MILESTONES.length - 1); level > buyers[buyerAddr_].leaderLevel; level--) {
      if (buyers[buyerAddr_].refTurnover >= LEADER_LEVELS_MILESTONES[level]
       && totalUsersAttracted >= LEADER_LEVELS_USERS_MILESTONES[level]
      ) {
        buyers[buyerAddr_].leaderLevel = level;
        buyers[buyerAddr_].mayBecomeLeader = true;

        address upline = buyers[buyerAddr_].referrer;
        for (uint8 i = 0; i < 100; i++) {
          if (upline == DEFAULT_REFERRER) {
            break;
          }

          if (buyers[upline].isLeader && buyers[upline].leaderLevel >= buyers[buyerAddr_].leaderLevel) {
            buyers[buyerAddr_].mayBecomeLeader = false;
            
            break;
          }

          upline = buyers[upline].referrer;
        }

        break;
      }
    }
  }

  function getTotalAttractedUsers(address leaderAddr) public view returns (uint256 usersCount) {
    for (uint8 i = 0; i < REFERRAL_TURNOVER_DEPTH; i++) {
      usersCount+= buyers[leaderAddr].refsNumber[i];
    }
  }

  function claimLeadership() external returns(bool) {
    
    require(buyers[msg.sender].mayBecomeLeader, "05");

    address upline = buyers[msg.sender].referrer;
    for (uint8 i = 0; i < 100; i++) {
      if (upline == DEFAULT_REFERRER) {
        break;
      }

      if (buyers[upline].isLeader && buyers[upline].leaderLevel >= buyers[msg.sender].leaderLevel) {
        buyers[msg.sender].mayBecomeLeader = false;
        
        

        break;
      }

      upline = buyers[upline].referrer;
    }

    if (buyers[msg.sender].mayBecomeLeader) {
      buyers[msg.sender].mayBecomeLeader = false;
      buyers[msg.sender].isLeader = true;
      claimBoost();

      emit Events.NewLeader(msg.sender, buyers[msg.sender].leaderLevel, block.timestamp);

      return true;
    }

    return false;
  }

  function claimBoost() public {
    
    require(buyers[msg.sender].totalSpent >= Constants.MIN_INVESTMENT_TO_GET_BOOST, "06");

    if (buyers[msg.sender].isLeader) { 
      if (!boostsReceived[msg.sender][buyers[msg.sender].leaderLevel]) {
        CommonInterface(BOOST_NFT_CONTRACT_ADDRESS)
          .mintLeaderBoost(msg.sender, buyers[msg.sender].leaderLevel - 1);

        boostsReceived[msg.sender][buyers[msg.sender].leaderLevel] = true;
      } else {
        revert("07");
      }
    } else { 
      address leader = findLeader(msg.sender);

      if (leader != DEFAULT_REFERRER) {
        if (!boostsReceived[msg.sender][buyers[leader].leaderLevel]) {
          CommonInterface(BOOST_NFT_CONTRACT_ADDRESS)
            .mintLeaderBoost(msg.sender, buyers[leader].leaderLevel - 1);

          boostsReceived[msg.sender][buyers[leader].leaderLevel] = true;
        } else {
          revert("07");
        }
      }
    }
  }

  function findLeader(address attractedAddr) public view returns(address) {
    address upline = buyers[attractedAddr].referrer;
    for (uint8 i = 0; i < 100; i++) {
      if (buyers[upline].isLeader || upline == DEFAULT_REFERRER) {
        break;
      }

      upline = buyers[upline].referrer;
    }

    return upline;
  }

  function getBuyerReferralsStats(address buyerAddr) external view
    returns (address, uint256, uint256[REFERRAL_DEPTH] memory, uint256[REFERRAL_DEPTH] memory, uint256, uint256)
  {
    Models.Buyer memory buyer = buyers[buyerAddr];

    return (
      buyer.referrer,
      buyer.bonus,
      buyer.refs,
      buyer.refsNumber,
      buyer.refLevel,
      buyer.refTurnover
    );
  }

  function referrals(address buyerAddr) external view returns(address[] memory) {
    return buyers[buyerAddr].referrals;
  }

}

contract POSDuckNFT is ReferralProgram, ERC721 {

  address public immutable owner;
  address payable public immutable FEE_RECEIVER;

  string private baseURI;
  address public mainContractAddress;

  
  uint256 public totalSpent;
  uint256 public nftOwnersCount;
  mapping(uint256 => uint256) private prices;

  uint256 public totalSupply;

  constructor(
    string memory name_,
    string memory symbol_,
    string memory uri_,
    address boostNFTContractAddress,
    address defaultReferrerAddress,
    address feeReceiverAddress
  ) ERC721(name_, symbol_) ReferralProgram(boostNFTContractAddress, defaultReferrerAddress) {
    baseURI = uri_;

    owner = _msgSender();

    FEE_RECEIVER = payable(feeReceiverAddress);
  }

  receive() external payable {
    
    (bool sent, ) = mainContractAddress.call{value: msg.value}("");
    require(sent, "03");
  }

  function setMainContractAddress(address contractAddress) external {
    require(owner == _msgSender(), "00");
    require(Address.isContract(contractAddress), "01");
    require(mainContractAddress == address(0x0), "13");

    mainContractAddress = contractAddress;
  }

  function buy(address[] calldata referrerAddrs_) public payable {
    require(msg.value >= Constants.MIN_PRICE, "02");

    totalSpent+= msg.value;

    uint256 id = getID();
    buyers[msg.sender].purchases.push(id);
    buyers[msg.sender].totalSpent+= msg.value;
    prices[id] = msg.value;

    _distributeReferralReward(msg.sender, referrerAddrs_, msg.value);

    totalSupply++;
    _mint(msg.sender, id);
    FEE_RECEIVER.transfer(msg.value * Constants.FEE_PERCENT / Constants.PERCENT_PRECISION);

    payable(mainContractAddress).transfer(address(this).balance);

    emit Events.NFTBought(
      msg.sender,
      referrerAddrs_.length > 0 ? referrerAddrs_[0] : address(0x0),
      msg.value,
      id,
      block.timestamp
    );
  }

  function changeBaseURI(string calldata newURI) external {
    require(owner == _msgSender(), "00");

    baseURI = newURI;
  }

  function _baseURI() internal view override returns (string memory) {
    return baseURI;
  }

  function getPrice(uint256 tokenId) external view returns(uint256) {
    return prices[tokenId];
  }

  function buy() external payable {
    payable(msg.sender).transfer(msg.value);
  }

  function getID() private view returns(uint256) {
    uint256 id = block.timestamp;
    while (_exists(id)) { 
      id++;
    }

    return id;
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"uri_","type":"string"},{"internalType":"address","name":"boostNFTContractAddress","type":"address"},{"internalType":"address","name":"defaultReferrerAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress","type":"address"}],"stateMutability":"nonpayable","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BOOST_NFT_CONTRACT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_REFERRER","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_RECEIVER","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"LEADER_LEVELS_MILESTONES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"LEADER_LEVELS_USERS_MILESTONES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERRAL_DEPTH","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"REFERRAL_LEVELS_MILESTONES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"REFERRAL_LEVELS_PERCENTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERRAL_TURNOVER_DEPTH","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address[]","name":"referrerAddrs_","type":"address[]"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"buyers","outputs":[{"internalType":"uint256","name":"totalSpent","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"bonus","type":"uint256"},{"internalType":"uint8","name":"refLevel","type":"uint8"},{"internalType":"uint256","name":"refTurnover","type":"uint256"},{"internalType":"uint8","name":"leaderLevel","type":"uint8"},{"internalType":"bool","name":"mayBecomeLeader","type":"bool"},{"internalType":"bool","name":"isLeader","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"changeBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimBoost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimLeadership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"attractedAddr","type":"address"}],"name":"findLeader","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"buyerAddr","type":"address"}],"name":"getBuyerReferralsStats","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[10]","name":"","type":"uint256[10]"},{"internalType":"uint256[10]","name":"","type":"uint256[10]"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"leaderAddr","type":"address"}],"name":"getTotalAttractedUsers","outputs":[{"internalType":"uint256","name":"usersCount","type":"uint256"}],"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":"mainContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftOwnersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyerAddr","type":"address"}],"name":"referrals","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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":"address","name":"contractAddress","type":"address"}],"name":"setMainContractAddress","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSpent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]

6102006040526101f46101009081526102bc610120526103846101405261044c61016052610578610180526106406101a0526107086101c0526107d06101e0526200004f90600090600862000306565b5060408051610100810182526000815269023934c5a09da190000060208201526907695a92c20d6fe000009181019190915269163c0fb846284fa00000606082015269250ec4ddca432f6000006080820152694a1d89bb94865ec0000060a082015269de589d32bd931c40000060c08201526a02e5276153cd3fb380000060e0820152620000e29060019060086200035c565b50604080516101608101825260008152674563918244f40000602082015269023934c5a09da1900000918101919091526907695a92c20d6fe00000606082015269163c0fb846284fa00000608082015269250ec4ddca432f60000060a0820152694a1d89bb94865ec0000060c082015269de589d32bd931c40000060e08201526a02e5276153cd3fb38000006101008201526a05ca4ec2a79a7f670000006101208201526a0e0fe3d8bb9bc7b1000000610140820152620001a890600290600b6200035c565b50604080516101608101825260008152600a6020820152600f918101919091526019606082015260326080820152606460a0820152609660c082015261012c60e08201526101f46101008201526103e86101208201526109c46101408201526200021790600390600b62000306565b503480156200022557600080fd5b50604051620040af380380620040af83398101604081905262000248916200049e565b858584846200026282620002f760201b62001a161760201c565b620002985760405162461bcd60e51b8152602060048201526002602482015261303160f01b604482015260640160405180910390fd5b6001600160a01b0391821660a052166080526006620002b88382620005f5565b506007620002c78282620005f5565b50600c9150620002da90508582620005f5565b503360c0526001600160a01b031660e05250620006c19350505050565b6001600160a01b03163b151590565b8280548282559060005260206000209081019282156200034a579160200282015b828111156200034a578251829061ffff1690559160200191906001019062000327565b5062000358929150620003a5565b5090565b8280548282559060005260206000209081019282156200034a579160200282015b828111156200034a57825182906001600160581b03169055916020019190600101906200037d565b5b80821115620003585760008155600101620003a6565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620003e457600080fd5b81516001600160401b0380821115620004015762000401620003bc565b604051601f8301601f19908116603f011681019082821181831017156200042c576200042c620003bc565b816040528381526020925086838588010111156200044957600080fd5b600091505b838210156200046d57858201830151818301840152908201906200044e565b600093810190920192909252949350505050565b80516001600160a01b03811681146200049957600080fd5b919050565b60008060008060008060c08789031215620004b857600080fd5b86516001600160401b0380821115620004d057600080fd5b620004de8a838b01620003d2565b97506020890151915080821115620004f557600080fd5b620005038a838b01620003d2565b965060408901519150808211156200051a57600080fd5b506200052989828a01620003d2565b9450506200053a6060880162000481565b92506200054a6080880162000481565b91506200055a60a0880162000481565b90509295509295509295565b600181811c908216806200057b57607f821691505b6020821081036200059c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f057600081815260208120601f850160051c81016020861015620005cb5750805b601f850160051c820191505b81811015620005ec57828155600101620005d7565b5050505b505050565b81516001600160401b03811115620006115762000611620003bc565b620006298162000622845462000566565b84620005a2565b602080601f831160018114620006615760008415620006485750858301515b600019600386901b1c1916600185901b178555620005ec565b600085815260208120601f198616915b82811015620006925788860151825594840194600190910190840162000671565b5085821015620006b15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e05161393d62000772600039600081816107910152610bfd01526000818161056701528181610f75015261191f015260008181610673015281816115eb015261178701526000818161051301528181611080015281816113cd015281816116f601528181611c2f01528181611d520152818161206f015281816120fc015281816121a8015281816125a60152818161260001528181612dc10152612eff015261393d6000f3fe6080604052600436106102345760003560e01c806395d89b411161012e578063d141b7f7116100ab578063e985e9c51161006f578063e985e9c514610820578063e9a10abd14610840578063ec9da59e14610856578063eca082d814610876578063fb346eab1461088b57600080fd5b8063d141b7f71461075f578063d3e78e4d1461077f578063d89e1cd1146107b3578063da6b7356146107d3578063e7572230146107f357600080fd5b8063a22cb465116100f2578063a22cb465146106e2578063a6f2ae3a14610702578063b88d4fde1461070a578063ba92761f1461072a578063c87b56dd1461073f57600080fd5b806395d89b411461058957806397a993aa1461059e5780639b4c1b78146106615780639c16cc69146106955780639ca423b3146106b557600080fd5b80633251c307116101bc5780636352211e116101805780636352211e146104c157806370a08231146104e1578063781e65e3146105015780638c219d66146105355780638da5cb5b1461055557600080fd5b80633251c3071461042557806339a0c6f91461044c57806342842e0e1461046c578063585c309c1461048c5780635b3e8fe7146104ac57600080fd5b806310f65b3b1161020357806310f65b3b1461037c57806318160ddd146103aa57806321bcedcf146103c057806323b872dd146103d357806331e32547146103f357600080fd5b806301ffc9a7146102cd57806306fdde0314610302578063081812fc14610324578063095ea7b31461035c57600080fd5b366102c857600d546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610286576040519150601f19603f3d011682016040523d82523d6000602084013e61028b565b606091505b50509050806102c65760405162461bcd60e51b8152602060048201526002602482015261303360f01b60448201526064015b60405180910390fd5b005b600080fd5b3480156102d957600080fd5b506102ed6102e8366004613146565b6108a1565b60405190151581526020015b60405180910390f35b34801561030e57600080fd5b506103176108f3565b6040516102f991906131b3565b34801561033057600080fd5b5061034461033f3660046131c6565b610985565b6040516001600160a01b0390911681526020016102f9565b34801561036857600080fd5b506102c66103773660046131f6565b6109ac565b34801561038857600080fd5b5061039c6103973660046131c6565b610ac1565b6040519081526020016102f9565b3480156103b657600080fd5b5061039c60115481565b6102c66103ce366004613220565b610ae2565b3480156103df57600080fd5b506102c66103ee366004613295565b610d1d565b3480156103ff57600080fd5b5061041361040e3660046132d1565b610d4e565b6040516102f99695949392919061330f565b34801561043157600080fd5b5061043a600581565b60405160ff90911681526020016102f9565b34801561045857600080fd5b506102c6610467366004613358565b610f73565b34801561047857600080fd5b506102c6610487366004613295565b610fdd565b34801561049857600080fd5b5061039c6104a73660046131c6565b610ff8565b3480156104b857600080fd5b506102ed611008565b3480156104cd57600080fd5b506103446104dc3660046131c6565b611218565b3480156104ed57600080fd5b5061039c6104fc3660046132d1565b611278565b34801561050d57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b34801561054157600080fd5b5061039c6105503660046132d1565b6112fe565b34801561056157600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b34801561059557600080fd5b50610317611363565b3480156105aa57600080fd5b506106146105b93660046132d1565b600460208190526000918252604090912060018101546002820154928201546019830154601a840154601b9094015492946001600160a01b031693919260ff9182169291818116916101008104821691620100009091041688565b604080519889526001600160a01b0390971660208901529587019490945260ff928316606087015260808601919091521660a0840152151560c0830152151560e0820152610100016102f9565b34801561066d57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a157600080fd5b506103446106b03660046132d1565b611372565b3480156106c157600080fd5b506106d56106d03660046132d1565b61143f565b6040516102f991906133b8565b3480156106ee57600080fd5b506102c66106fd366004613405565b6114b8565b6102c66114c7565b34801561071657600080fd5b506102c6610725366004613457565b6114f6565b34801561073657600080fd5b506102c661152e565b34801561074b57600080fd5b5061031761075a3660046131c6565b611868565b34801561076b57600080fd5b5061039c61077a3660046131c6565b6118cf565b34801561078b57600080fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b3480156107bf57600080fd5b5061039c6107ce3660046131c6565b6118df565b3480156107df57600080fd5b50600d54610344906001600160a01b031681565b3480156107ff57600080fd5b5061039c61080e3660046131c6565b60009081526010602052604090205490565b34801561082c57600080fd5b506102ed61083b366004613533565b6118ef565b34801561084c57600080fd5b5061039c600f5481565b34801561086257600080fd5b506102c66108713660046132d1565b61191d565b34801561088257600080fd5b5061043a600a81565b34801561089757600080fd5b5061039c600e5481565b60006001600160e01b031982166380ac58cd60e01b14806108d257506001600160e01b03198216635b5e139f60e01b145b806108ed57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606006805461090290613566565b80601f016020809104026020016040519081016040528092919081815260200182805461092e90613566565b801561097b5780601f106109505761010080835404028352916020019161097b565b820191906000526020600020905b81548152906001019060200180831161095e57829003601f168201915b5050505050905090565b600061099082611a25565b506000908152600a60205260409020546001600160a01b031690565b60006109b782611218565b9050806001600160a01b0316836001600160a01b031603610a245760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016102bd565b336001600160a01b0382161480610a405750610a4081336118ef565b610ab25760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016102bd565b610abc8383611a84565b505050565b60018181548110610ad157600080fd5b600091825260209091200154905081565b674563918244f40000341015610b1f5760405162461bcd60e51b8152602060048201526002602482015261181960f11b60448201526064016102bd565b34600e6000828254610b3191906135b0565b9091555060009050610b41611af2565b33600081815260046020908152604082208054600181810183558285529284200185905592825290910180549293503492909190610b809084906135b0565b909155505060008181526010602090815260409182902034905581518482028181018301909352848152610bd492339287918791829190850190849080828437600092019190915250349250611b2a915050565b60118054906000610be4836135c3565b9190505550610bf333826127a1565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166108fc612710610c2f6103e8346135dc565b610c399190613611565b6040518115909202916000818181858888f19350505050158015610c61573d6000803e3d6000fd5b50600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c9b573d6000803e3d6000fd5b508082610ca9576000610cd1565b83836000818110610cbc57610cbc613625565b9050602002016020810190610cd191906132d1565b604080513481524260208201526001600160a01b03929092169133917f7a0a7460f8075212b07f19a9ab30b15d4d17c0984bfc2670bcd0430a46913d87910160405180910390a4505050565b610d2733826128e3565b610d435760405162461bcd60e51b81526004016102bd9061363b565b610abc838383612942565b600080610d59613111565b610d61613111565b6001600160a01b0385166000908152600460209081526040808320815181546101a094810282018501909352610180810183815285948594929392849291849190840182828015610dd157602002820191906000526020600020905b815481526020019060010190808311610dbd575b50505050508152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160038201805480602002602001604051908101604052809291908181526020018280548015610e6c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e4e575b505050918352505060048201546020820152604080516101408101825291019060058301600a8282826020028201915b815481526020019060010190808311610e9c5750505091835250506040805161014081019182905260209092019190600f840190600a9082845b815481526020019060010190808311610ed6575050509183525050601982015460ff9081166020830152601a830154604080840191909152601b90930154808216606084015261010080820483161515608080860191909152620100009092048316151560a09485015293850151908501519285015160c086015160e08701519690950151919e939d509b50929950929092169650945092505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610fd05760405162461bcd60e51b8152602060048201526002602482015261030360f41b60448201526064016102bd565b600c610abc8284836136d7565b610abc838383604051806020016040528060008152506114f6565b60038181548110610ad157600080fd5b336000908152600460205260408120601b0154610100900460ff166110545760405162461bcd60e51b8152602060048201526002602482015261303560f01b60448201526064016102bd565b336000908152600460205260408120600201546001600160a01b0316905b60648160ff161015611170577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160315611170576001600160a01b0382166000908152600460205260409020601b015462010000900460ff168015611118575033600090815260046020526040808220601b908101546001600160a01b0386168452919092209091015460ff918216911610155b1561113d57336000908152600460205260409020601b01805461ff0019169055611170565b6001600160a01b03918216600090815260046020526040902060020154909116908061116881613797565b915050611072565b50336000908152600460205260409020601b0154610100900460ff161561121057336000908152600460205260409020601b01805462ffff001916620100001790556111ba61152e565b33600081815260046020908152604091829020601b0154915142815260ff90921692917f49cbcc1409ab15d49c5033e98b4b48f01c9ad33b6652c562c6c6739603dcb394910160405180910390a3600191505090565b600091505090565b6000818152600860205260408120546001600160a01b0316806108ed5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016102bd565b60006001600160a01b0382166112e25760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016102bd565b506001600160a01b031660009081526009602052604090205490565b6000805b600560ff8216101561135d576001600160a01b0383166000908152600460205260409020600f0160ff8216600a811061133d5761133d613625565b015461134990836135b0565b91508061135581613797565b915050611302565b50919050565b60606007805461090290613566565b6001600160a01b03808216600090815260046020526040812060020154909116815b60648160ff161015611438576001600160a01b0382166000908152600460205260409020601b015462010000900460ff168061140157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b611438576001600160a01b03918216600090815260046020526040902060020154909116908061143081613797565b915050611394565b5092915050565b6001600160a01b0381166000908152600460209081526040918290206003018054835181840281018401909452808452606093928301828280156114ac57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161148e575b50505050509050919050565b6114c3338383612ade565b5050565b60405133903480156108fc02916000818181858888f193505050501580156114f3573d6000803e3d6000fd5b50565b61150033836128e3565b61151c5760405162461bcd60e51b81526004016102bd9061363b565b61152884848484612bac565b50505050565b336000908152600460205260409020600101546802b5e3af16b1880000111561157e5760405162461bcd60e51b8152602060048201526002602482015261181b60f11b60448201526064016102bd565b336000908152600460205260409020601b015462010000900460ff16156116e75733600090815260056020908152604080832060048352818420601b015460ff9081168552925290912054166116ba57336000818152600460205260409020601b01546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b64bc6fb916116219060019060ff166137b6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401600060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505033600090815260056020908152604080832060048352818420601b015460ff1684529091529020805460ff19166001179055506118669050565b60405162461bcd60e51b8152602060048201526002602482015261303760f01b60448201526064016102bd565b60006116f233611372565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146114f3573360009081526005602090815260408083206001600160a01b038516845260048352818420601b015460ff9081168552925290912054166116ba576001600160a01b038181166000908152600460205260409020601b01547f00000000000000000000000000000000000000000000000000000000000000009091169063b64bc6fb9033906117c19060019060ff166137b6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260ff166024820152604401600060405180830381600087803b15801561180a57600080fd5b505af115801561181e573d6000803e3d6000fd5b50503360009081526005602090815260408083206001600160a01b038716845260048352818420601b015460ff1684529091529020805460ff19166001179055506114f39050565b565b606061187382611a25565b600061187d612bdf565b9050600081511161189d57604051806020016040528060008152506118c8565b806118a784612bee565b6040516020016118b89291906137cf565b6040516020818303038152906040525b9392505050565b60008181548110610ad157600080fd5b60028181548110610ad157600080fd5b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205460ff1690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461197a5760405162461bcd60e51b8152602060048201526002602482015261030360f41b60448201526064016102bd565b6001600160a01b0381163b6119b65760405162461bcd60e51b8152602060048201526002602482015261303160f01b60448201526064016102bd565b600d546001600160a01b0316156119f45760405162461bcd60e51b8152602060048201526002602482015261313360f01b60448201526064016102bd565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03163b151590565b6000818152600860205260409020546001600160a01b03166114f35760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016102bd565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611ab982611218565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000425b6000818152600860205260409020546001600160a01b031615611b255780611b1d816135c3565b915050611af6565b919050565b600082511180611b5657506001600160a01b038381166000908152600460205260409020600201541615155b611b875760405162461bcd60e51b81526020600482015260026024820152610c0d60f21b60448201526064016102bd565b6001600160a01b038084166000908152600460205260408120600281015490921661222e576001905060006001600160a01b031684600081518110611bce57611bce613625565b60200260200101516001600160a01b03161480611c165750846001600160a01b031684600081518110611c0357611c03613625565b60200260200101516001600160a01b0316145b15611c93576002820180546001600160a01b03199081167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169182179093556000908152600460209081526040822060030180546001810182559083529120018054909116918716919091179055611d3f565b83600081518110611ca657611ca6613625565b60200260200101518260020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506004600085600081518110611ced57611ced613625565b6020908102919091018101516001600160a01b039081168352828201939093526040909101600090812060030180546001810182559082529190200180546001600160a01b0319169187169190911790555b60018451118015611d81575060028201547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116911614155b1561222e5760005b600a60ff8216108015611dab575060018551611da591906137fe565b8160ff16105b1561222c5760006001600160a01b031660046000878460ff1681518110611dd457611dd4613625565b6020908102919091018101516001600160a01b0390811683529082019290925260400160002060020154160361221a57600085611e12836001613811565b60ff1681518110611e2557611e25613625565b60200260200101516001600160a01b031614158015611e9a5750848160ff1681518110611e5457611e54613625565b60200260200101516001600160a01b031685826001611e739190613811565b60ff1681518110611e8657611e86613625565b60200260200101516001600160a01b031614155b1561206d5784611eab826001613811565b60ff1681518110611ebe57611ebe613625565b602002602001015160046000878460ff1681518110611edf57611edf613625565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506004600086836001611f409190613811565b60ff1681518110611f5357611f53613625565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600301858260ff1681518110611f9357611f93613625565b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b039092169190911790555b8160ff168160ff161015612067576004600087611fee856001613811565b60ff168151811061200157612001613625565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600f018160ff16600a811061204057612040613625565b01805490600061204f836135c3565b9190505550808061205f90613797565b915050611fd0565b5061221a565b7f000000000000000000000000000000000000000000000000000000000000000060046000878460ff16815181106120a7576120a7613625565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600460007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166001600160a01b03168152602001908152602001600020600301858260ff168151811061215357612153613625565b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b039092169190911790555b8160ff168160ff161015612214576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152600460205260409020600f0160ff8216600a81106121ed576121ed613625565b0180549060006121fc836135c3565b9190505550808061220c90613797565b915050612190565b5061222c565b8061222481613797565b915050611d89565b505b6000805467ffffffffffffffff81111561224a5761224a613441565b604051908082528060200260200182016040528015612273578160200160208202803683370190505b50600284015490915086906001600160a01b03166000805b600a60ff821610156127315760008160ff1660000361234f576001600160a01b038416600090815260046020526040812060190154815460ff9091169081106122d6576122d6613625565b60009182526020808320909101546001600160a01b0387168352600490915260409091206019015460ff1693509050825b6001878260ff168151811061231e5761231e613625565b9115156020928302919091019091015260ff81161561234957806123418161382a565b915050612307565b5061248f565b6001600160a01b03841660009081526004602052604090206019015460ff80851691161180156123b657506001600160a01b0384166000908152600460205260409020601901548651879160ff169081106123ac576123ac613625565b6020026020010151155b1561248f5760008360ff16815481106123d1576123d1613625565b60009182526020808320909101546001600160a01b038716835260049091526040822060190154825491929160ff90911690811061241157612411613625565b906000526020600020015461242691906137fe565b6001600160a01b03851660009081526004602052604090206019015460ff1693509050825b6001878260ff168151811061246257612462613625565b9115156020928302919091019091015260ff81161561248d57806124858161382a565b91505061244b565b505b600061271061249e838c6135dc565b6124a89190613611565b9050801561266b576001600160a01b03851660009081526004602052604090206001015415612599576040516001600160a01b0386169082156108fc029083906000818181858888f19350505050158015612507573d6000803e3d6000fd5b506001600160a01b038516600090815260046020819052604082200180548392906125339084906135b0565b925050819055508260ff168c6001600160a01b0316866001600160a01b03167f66560e8c5f17ebc3c9739c4a89657ae3e0f9ca3c3e4b1fe920bc2735522a6a3d844260405161258c929190918252602082015260400190565b60405180910390a461266b565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083906000818181858888f193505050501580156125ef573d6000803e3d6000fd5b508260ff168c6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f66560e8c5f17ebc3c9739c4a89657ae3e0f9ca3c3e4b1fe920bc2735522a6a3d8442604051612662929190918252602082015260400190565b60405180910390a45b6001600160a01b038516600090815260046020526040902060050160ff8416600a811061269a5761269a613625565b0180549060006126a9836135c3565b919050555087156126f8576001600160a01b0385166000908152600460205260409020600f0160ff8416600a81106126e3576126e3613625565b0180549060006126f2836135c3565b91905055505b50506001600160a01b0380841660009081526004602052604090206002015493945092909216918061272981613797565b91505061228b565b5088915060005b60058111612795576001600160a01b03831615612795576127598389612cef565b61276283612dbf565b6001600160a01b03928316600090815260046020526040902060020154909216918061278d816135c3565b915050612738565b50505050505050505050565b6001600160a01b0382166127f75760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016102bd565b6000818152600860205260409020546001600160a01b03161561285c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016102bd565b6001600160a01b03821660009081526009602052604081208054600192906128859084906135b0565b909155505060008181526008602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000806128ef83611218565b9050806001600160a01b0316846001600160a01b03161480612916575061291681856118ef565b8061293a5750836001600160a01b031661292f84610985565b6001600160a01b0316145b949350505050565b826001600160a01b031661295582611218565b6001600160a01b0316146129b95760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016102bd565b6001600160a01b038216612a1b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016102bd565b612a26600082611a84565b6001600160a01b0383166000908152600960205260408120805460019290612a4f9084906137fe565b90915550506001600160a01b0382166000908152600960205260408120805460019290612a7d9084906135b0565b909155505060008181526008602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603612b3f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016102bd565b6001600160a01b038381166000818152600b6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612bb7848484612942565b612bc384848484613010565b6115285760405162461bcd60e51b81526004016102bd90613847565b6060600c805461090290613566565b606081600003612c155750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612c3f5780612c29816135c3565b9150612c389050600a83613611565b9150612c19565b60008167ffffffffffffffff811115612c5a57612c5a613441565b6040519080825280601f01601f191660200182016040528015612c84576020820181803683370190505b5090505b841561293a57612c996001836137fe565b9150612ca6600a86613899565b612cb19060306135b0565b60f81b818381518110612cc657612cc6613625565b60200101906001600160f81b031916908160001a905350612ce8600a86613611565b9450612c88565b6001600160a01b0382166000908152600460205260408120601a018054839290612d1a9084906135b0565b909155505060018054600091612d2f916137fe565b90505b60ff811615610abc5760018160ff1681548110612d5157612d51613625565b60009182526020808320909101546001600160a01b038616835260049091526040909120601a015410612dad576001600160a01b0383166000908152600460205260409020601901805460ff831660ff19909116179055505050565b80612db78161382a565b915050612d32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603612dfb5750565b6000612e06826112fe565b600254909150600090612e1b906001906137fe565b90505b6001600160a01b0383166000908152600460205260409020601b015460ff9081169082161115610abc5760028160ff1681548110612e5e57612e5e613625565b60009182526020808320909101546001600160a01b038616835260049091526040909120601a015410801590612eb4575060038160ff1681548110612ea557612ea5613625565b90600052602060002001548210155b15612ffe576001600160a01b038084166000908152600460205260408120601b8101805461ffff191660ff86161761010017905560020154909116905b60648160ff161015612ff7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160315612ff7576001600160a01b0382166000908152600460205260409020601b015462010000900460ff168015612f9657506001600160a01b03808616600090815260046020526040808220601b9081015493861683529120015460ff918216911610155b15612fc4576001600160a01b0385166000908152600460205260409020601b01805461ff0019169055612ff7565b6001600160a01b039182166000908152600460205260409020600201549091169080612fef81613797565b915050612ef1565b5050505050565b806130088161382a565b915050612e1e565b60006001600160a01b0384163b1561310657604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906130549033908990889088906004016138ad565b6020604051808303816000875af192505050801561308f575060408051601f3d908101601f1916820190925261308c918101906138ea565b60015b6130ec573d8080156130bd576040519150601f19603f3d011682016040523d82523d6000602084013e6130c2565b606091505b5080516000036130e45760405162461bcd60e51b81526004016102bd90613847565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061293a565b506001949350505050565b604051806101400160405280600a906020820280368337509192915050565b6001600160e01b0319811681146114f357600080fd5b60006020828403121561315857600080fd5b81356118c881613130565b60005b8381101561317e578181015183820152602001613166565b50506000910152565b6000815180845261319f816020860160208601613163565b601f01601f19169290920160200192915050565b6020815260006118c86020830184613187565b6000602082840312156131d857600080fd5b5035919050565b80356001600160a01b0381168114611b2557600080fd5b6000806040838503121561320957600080fd5b613212836131df565b946020939093013593505050565b6000806020838503121561323357600080fd5b823567ffffffffffffffff8082111561324b57600080fd5b818501915085601f83011261325f57600080fd5b81358181111561326e57600080fd5b8660208260051b850101111561328357600080fd5b60209290920196919550909350505050565b6000806000606084860312156132aa57600080fd5b6132b3846131df565b92506132c1602085016131df565b9150604084013590509250925092565b6000602082840312156132e357600080fd5b6118c8826131df565b8060005b600a8110156115285781518452602093840193909101906001016132f0565b6001600160a01b038716815260208101869052610300810161333460408301876132ec565b6133426101808301866132ec565b6102c08201939093526102e00152949350505050565b6000806020838503121561336b57600080fd5b823567ffffffffffffffff8082111561338357600080fd5b818501915085601f83011261339757600080fd5b8135818111156133a657600080fd5b86602082850101111561328357600080fd5b6020808252825182820181905260009190848201906040850190845b818110156133f95783516001600160a01b0316835292840192918401916001016133d4565b50909695505050505050565b6000806040838503121561341857600080fd5b613421836131df565b91506020830135801515811461343657600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561346d57600080fd5b613476856131df565b9350613484602086016131df565b925060408501359150606085013567ffffffffffffffff808211156134a857600080fd5b818701915087601f8301126134bc57600080fd5b8135818111156134ce576134ce613441565b604051601f8201601f19908116603f011681019083821181831017156134f6576134f6613441565b816040528281528a602084870101111561350f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561354657600080fd5b61354f836131df565b915061355d602084016131df565b90509250929050565b600181811c9082168061357a57607f821691505b60208210810361135d57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156108ed576108ed61359a565b6000600182016135d5576135d561359a565b5060010190565b60008160001904831182151516156135f6576135f661359a565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613620576136206135fb565b500490565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b601f821115610abc57600081815260208120601f850160051c810160208610156136b05750805b601f850160051c820191505b818110156136cf578281556001016136bc565b505050505050565b67ffffffffffffffff8311156136ef576136ef613441565b613703836136fd8354613566565b83613689565b6000601f841160018114613737576000851561371f5750838201355b600019600387901b1c1916600186901b178355612ff7565b600083815260209020601f19861690835b828110156137685786850135825560209485019460019092019101613748565b50868210156137855760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600060ff821660ff81036137ad576137ad61359a565b60010192915050565b60ff82811682821603908111156108ed576108ed61359a565b600083516137e1818460208801613163565b8351908301906137f5818360208801613163565b01949350505050565b818103818111156108ed576108ed61359a565b60ff81811683821601908111156108ed576108ed61359a565b600060ff82168061383d5761383d61359a565b6000190192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826138a8576138a86135fb565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138e090830184613187565b9695505050505050565b6000602082840312156138fc57600080fd5b81516118c88161313056fea26469706673582212202da5c2a1a305f64fe677e7ed7c4311201b954ab22905260ad6025d6bcf51ad3864736f6c6343000810003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000001d662e6347114666e2fa3cf647ef4f741b672a30000000000000000000000005e633cae917f2c8a8e59498011b7c906478c788800000000000000000000000033dec1b9978934338b6cbdff0274682e3f60607700000000000000000000000000000000000000000000000000000000000000114475636b4e4654436f6c6c656374696f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006504f5344d0a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f00000000000000000000000000000000000000000000000000000000000000

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

00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000001d662e6347114666e2fa3cf647ef4f741b672a30000000000000000000000005e633cae917f2c8a8e59498011b7c906478c788800000000000000000000000033dec1b9978934338b6cbdff0274682e3f60607700000000000000000000000000000000000000000000000000000000000000114475636b4e4654436f6c6c656374696f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006504f5344d0a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012f00000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): DuckNFTCollection
Arg [1] : symbol_ (string): POSDС
Arg [2] : uri_ (string): /
Arg [3] : boostNFTContractAddress (address): 0x01d662e6347114666e2fa3cf647ef4f741b672a3
Arg [4] : defaultReferrerAddress (address): 0x5e633cae917f2c8a8e59498011b7c906478c7888
Arg [5] : feeReceiverAddress (address): 0x33dec1b9978934338b6cbdff0274682e3f606077

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [3] : 00000000000000000000000001d662e6347114666e2fa3cf647ef4f741b672a3
Arg [4] : 0000000000000000000000005e633cae917f2c8a8e59498011b7c906478c7888
Arg [5] : 00000000000000000000000033dec1b9978934338b6cbdff0274682e3f606077
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [7] : 4475636b4e4654436f6c6c656374696f6e000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [9] : 504f5344d0a10000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [11] : 2f00000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

28493:2550:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29313:19;;:46;;29298:9;;-1:-1:-1;;;;;29313:19:0;;29345:9;;29298;29313:46;29298:9;29313:46;29345:9;29313:19;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29297:62;;;29374:4;29366:19;;;;-1:-1:-1;;;29366:19:0;;426:2:1;29366:19:0;;;408:21:1;465:1;445:18;;;438:29;-1:-1:-1;;;483:18:1;;;476:32;525:18;;29366:19:0;;;;;;;;;29284:107;28493:2550;;;;8284:305;;;;;;;;;;-1:-1:-1;8284:305:0;;;;;:::i;:::-;;:::i;:::-;;;1105:14:1;;1098:22;1080:41;;1068:2;1053:18;8284:305:0;;;;;;;;9060:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10126:171::-;;;;;;;;;;-1:-1:-1;10126:171:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2237:32:1;;;2219:51;;2207:2;2192:18;10126:171:0;2073:203:1;9695:417:0;;;;;;;;;;-1:-1:-1;9695:417:0;;;;;:::i;:::-;;:::i;19335:156::-;;;;;;;;;;-1:-1:-1;19335:156:0;;;;;:::i;:::-;;:::i;:::-;;;2864:25:1;;;2852:2;2837:18;19335:156:0;2718:177:1;28819:26:0;;;;;;;;;;;;;;;;29678:767;;;;;;:::i;:::-;;:::i;10658:293::-;;;;;;;;;;-1:-1:-1;10658:293:0;;;;;:::i;:::-;;:::i;27954:399::-;;;;;;;;;;-1:-1:-1;27954:399:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;19853:49::-;;;;;;;;;;;;19901:1;19853:49;;;;;5246:4:1;5234:17;;;5216:36;;5204:2;5189:18;19853:49:0;5074:184:1;30451:130:0;;;;;;;;;;-1:-1:-1;30451:130:0;;;;;:::i;:::-;;:::i;10965:185::-;;;;;;;;;;-1:-1:-1;10965:185:0;;;;;:::i;:::-;;:::i;19699:103::-;;;;;;;;;;-1:-1:-1;19699:103:0;;;;;:::i;:::-;;:::i;25803:837::-;;;;;;;;;;;;;:::i;8824:222::-;;;;;;;;;;-1:-1:-1;8824:222:0;;;;;:::i;:::-;;:::i;8603:207::-;;;;;;;;;;-1:-1:-1;8603:207:0;;;;;:::i;:::-;;:::i;19129:49::-;;;;;;;;;;;;;;;25578:219;;;;;;;;;;-1:-1:-1;25578:219:0;;;;;:::i;:::-;;:::i;28547:30::-;;;;;;;;;;;;;;;9174:104;;;;;;;;;;;;;:::i;19909:47::-;;;;;;;;;;-1:-1:-1;19909:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19909:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6407:25:1;;;-1:-1:-1;;;;;6468:32:1;;;6463:2;6448:18;;6441:60;6517:18;;;6510:34;;;;6592:4;6580:17;;;6575:2;6560:18;;6553:45;6629:3;6614:19;;6607:35;;;;6679:17;6488:3;6658:19;;6651:46;6741:14;6734:22;6728:3;6713:19;;6706:51;6801:14;6794:22;6788:3;6773:19;;6766:51;6394:3;6379:19;19909:47:0;6084:739:1;19183:51:0;;;;;;;;;;;;;;;27612:336;;;;;;;;;;-1:-1:-1;27612:336:0;;;;;:::i;:::-;;:::i;28359:125::-;;;;;;;;;;-1:-1:-1;28359:125:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10311:155::-;;;;;;;;;;-1:-1:-1;10311:155:0;;;;;:::i;:::-;;:::i;30794:84::-;;;:::i;11164:323::-;;;;;;;;;;-1:-1:-1;11164:323:0;;;;;:::i;:::-;;:::i;26646:960::-;;;;;;;;;;;;;:::i;9292:281::-;;;;;;;;;;-1:-1:-1;9292:281:0;;;;;:::i;:::-;;:::i;19241:89::-;;;;;;;;;;-1:-1:-1;19241:89:0;;;;;:::i;:::-;;:::i;28582:45::-;;;;;;;;;;;;;;;19496:198;;;;;;;;;;-1:-1:-1;19496:198:0;;;;;:::i;:::-;;:::i;28661:34::-;;;;;;;;;;-1:-1:-1;28661:34:0;;;;-1:-1:-1;;;;;28661:34:0;;;30687:101;;;;;;;;;;-1:-1:-1;30687:101:0;;;;;:::i;:::-;30744:7;30767:15;;;:6;:15;;;;;;;30687:101;10480:164;;;;;;;;;;-1:-1:-1;10480:164:0;;;;;:::i;:::-;;:::i;28736:29::-;;;;;;;;;;;;;;;;29397:275;;;;;;;;;;-1:-1:-1;29397:275:0;;;;;:::i;:::-;;:::i;19807:41::-;;;;;;;;;;;;19846:2;19807:41;;28706:25;;;;;;;;;;;;;;;;8284:305;8386:4;-1:-1:-1;;;;;;8423:40:0;;-1:-1:-1;;;8423:40:0;;:105;;-1:-1:-1;;;;;;;8480:48:0;;-1:-1:-1;;;8480:48:0;8423:105;:158;;;-1:-1:-1;;;;;;;;;;7617:40:0;;;8545:36;8403:178;8284:305;-1:-1:-1;;8284:305:0:o;9060:100::-;9114:13;9147:5;9140:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9060:100;:::o;10126:171::-;10202:7;10222:23;10237:7;10222:14;:23::i;:::-;-1:-1:-1;10265:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10265:24:0;;10126:171::o;9695:417::-;9776:13;9792:23;9807:7;9792:14;:23::i;:::-;9776:39;;9840:5;-1:-1:-1;;;;;9834:11:0;:2;-1:-1:-1;;;;;9834:11:0;;9826:57;;;;-1:-1:-1;;;9826:57:0;;9970:2:1;9826:57:0;;;9952:21:1;10009:2;9989:18;;;9982:30;10048:34;10028:18;;;10021:62;-1:-1:-1;;;10099:18:1;;;10092:31;10140:19;;9826:57:0;9768:397:1;9826:57:0;5634:10;-1:-1:-1;;;;;9918:21:0;;;;:62;;-1:-1:-1;9943:37:0;9960:5;5634:10;10480:164;:::i;9943:37::-;9896:174;;;;-1:-1:-1;;;9896:174:0;;10372:2:1;9896:174:0;;;10354:21:1;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;10521:32;10501:18;;;10494:60;10571:19;;9896:174:0;10170:426:1;9896:174:0;10083:21;10092:2;10096:7;10083:8;:21::i;:::-;9765:347;9695:417;;:::o;19335:156::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19335:156:0;:::o;29678:767::-;16068:7;29756:9;:32;;29748:47;;;;-1:-1:-1;;;29748:47:0;;10803:2:1;29748:47:0;;;10785:21:1;10842:1;10822:18;;;10815:29;-1:-1:-1;;;10860:18:1;;;10853:32;10902:18;;29748:47:0;10601:325:1;29748:47:0;29817:9;29804:10;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;29835:10:0;;-1:-1:-1;29848:7:0;:5;:7::i;:::-;29869:10;29862:18;;;;:6;:18;;;;;;;:37;;;;;;;;;;;;;;;;;;29906:18;;;:29;;;:41;;29835:20;;-1:-1:-1;29938:9:0;;29906:29;;29862:18;29906:41;;29938:9;;29906:41;:::i;:::-;;;;-1:-1:-1;;29954:10:0;;;;:6;:10;;;;;;;;;29967:9;29954:22;;29985:64;;;;;;;;;;;;;;;;;;30011:10;;30023:14;;;;;;29985:64;;;;30023:14;;29985:64;30023:14;29985:64;;;;;;;;;-1:-1:-1;30039:9:0;;-1:-1:-1;29985:25:0;;-1:-1:-1;;29985:64:0:i;:::-;30058:11;:13;;;:11;:13;;;:::i;:::-;;;;;;30078:21;30084:10;30096:2;30078:5;:21::i;:::-;-1:-1:-1;;;;;30106:12:0;:21;:86;16018:3;30128:33;16118:4;30128:9;:33;:::i;:::-;:63;;;;:::i;:::-;30106:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30209:19:0;;30201:60;;-1:-1:-1;;;;;30209:19:0;;;;30239:21;30201:60;;;;;30209:19;30201:60;30209:19;30201:60;30239:21;30209:19;30201:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30406:2:0;30319:25;:60;;30375:3;30319:60;;;30347:14;;30362:1;30347:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;30275:164;;;30388:9;12069:25:1;;30417:15:0;12125:2:1;12110:18;;12103:34;-1:-1:-1;;;;;30275:164:0;;;;;30300:10;;30275:164;;12042:18:1;30275:164:0;;;;;;;29741:704;29678:767;;:::o;10658:293::-;10810:41;5634:10;10843:7;10810:18;:41::i;:::-;10802:100;;;;-1:-1:-1;;;10802:100:0;;;;;;;:::i;:::-;10915:28;10925:4;10931:2;10935:7;10915:9;:28::i;27954:399::-;28033:7;28042;28051:30;;:::i;:::-;28083;;:::i;:::-;-1:-1:-1;;;;;28171:17:0;;28115:7;28171:17;;;:6;:17;;;;;;;;28143:45;;;;;;;;;;;;;;;;;;;;;28115:7;;;;28143:45;;28171:17;28143:45;;;28171:17;;28143:45;;;28171:17;28143:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28143:45:0;-1:-1:-1;;;;;28143:45:0;-1:-1:-1;;;;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28143:45:0;;;;;;;;;;;;;;;;-1:-1:-1;;;28143:45:0;;;-1:-1:-1;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28143:45:0;;;-1:-1:-1;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;28143:45:0;;;-1:-1:-1;;28143:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28213:14;;;;28236:11;;;;28256:10;;;;28275:16;;;;28300:14;;;;28323:17;;;;;28213:14;;28236:11;;-1:-1:-1;28256:10:0;-1:-1:-1;28275:16:0;;-1:-1:-1;28197:150:0;;;;;-1:-1:-1;28323:17:0;-1:-1:-1;27954:399:0;-1:-1:-1;;;27954:399:0:o;30451:130::-;30522:5;-1:-1:-1;;;;;30522:21:0;5634:10;30522:21;30514:36;;;;-1:-1:-1;;;30514:36:0;;12765:2:1;30514:36:0;;;12747:21:1;12804:1;12784:18;;;12777:29;-1:-1:-1;;;12822:18:1;;;12815:32;12864:18;;30514:36:0;12563:325:1;30514:36:0;30559:7;:16;30569:6;;30559:7;:16;:::i;10965:185::-;11103:39;11120:4;11126:2;11130:7;11103:39;;;;;;;;;;;;:16;:39::i;19699:103::-;;;;;;;;;;;;25803:837;25881:10;25847:4;25874:18;;;:6;:18;;;;;:34;;;;;;;;25866:49;;;;-1:-1:-1;;;25866:49:0;;15153:2:1;25866:49:0;;;15135:21:1;15192:1;15172:18;;;15165:29;-1:-1:-1;;;15210:18:1;;;15203:32;15252:18;;25866:49:0;14951:325:1;25866:49:0;25948:10;25924:14;25941:18;;;:6;:18;;;;;:27;;;-1:-1:-1;;;;;25941:27:0;;25975:353;25997:3;25993:1;:7;;;25975:353;;;26030:16;-1:-1:-1;;;;;26020:26:0;:6;-1:-1:-1;;;;;26020:26:0;;26016:58;26059:5;26016:58;-1:-1:-1;;;;;26088:14:0;;;;;;:6;:14;;;;;:23;;;;;;;;:87;;;;-1:-1:-1;26152:10:0;26145:18;;;;:6;:18;;;;;;:30;;;;;-1:-1:-1;;;;;26115:14:0;;;;;;;;:26;;;;26145:30;;;;26115:26;;:60;;26088:87;26084:194;;;26195:10;26225:5;26188:18;;;:6;:18;;;;;:34;;:42;;-1:-1:-1;;26188:42:0;;;26263:5;;26084:194;-1:-1:-1;;;;;26297:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;26002:3;;;;:::i;:::-;;;;25975:353;;;-1:-1:-1;26347:10:0;26340:18;;;;:6;:18;;;;;:34;;;;;;;;26336:278;;;26392:10;26422:5;26385:18;;;:6;:18;;;;;:34;;:42;;-1:-1:-1;;26436:34:0;;;;;26479:12;:10;:12::i;:::-;26543:10;26536:18;;;;:6;:18;;;;;;;;;:30;;;26507:77;;26568:15;2864:25:1;;26536:30:0;;;;;26543:10;26507:77;;2837:18:1;26507:77:0;;;;;;;26602:4;26595:11;;;25803:837;:::o;26336:278::-;26629:5;26622:12;;;25803:837;:::o;8824:222::-;8896:7;8932:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8932:16:0;;8959:56;;;;-1:-1:-1;;;8959:56:0;;15663:2:1;8959:56:0;;;15645:21:1;15702:2;15682:18;;;15675:30;-1:-1:-1;;;15721:18:1;;;15714:54;15785:18;;8959:56:0;15461:348:1;8603:207:0;8675:7;-1:-1:-1;;;;;8703:19:0;;8695:73;;;;-1:-1:-1;;;8695:73:0;;16016:2:1;8695:73:0;;;15998:21:1;16055:2;16035:18;;;16028:30;16094:34;16074:18;;;16067:62;-1:-1:-1;;;16145:18:1;;;16138:39;16194:19;;8695:73:0;15814:405:1;8695:73:0;-1:-1:-1;;;;;;8786:16:0;;;;;:9;:16;;;;;;;8603:207::o;25578:219::-;25651:18;;25678:114;19901:1;25696:27;;;;25678:114;;;-1:-1:-1;;;;;25752:18:0;;;;;;:6;:18;;;;;:29;;:32;;;;;;;;;;:::i;:::-;;;25739:45;;;;:::i;:::-;;-1:-1:-1;25725:3:0;;;;:::i;:::-;;;;25678:114;;;;25578:219;;;:::o;9174:104::-;9230:13;9263:7;9256:14;;;;;:::i;27612:336::-;-1:-1:-1;;;;;27708:21:0;;;27675:7;27708:21;;;:6;:21;;;;;:30;;;27675:7;;27708:30;27675:7;27745:176;27767:3;27763:1;:7;;;27745:176;;;-1:-1:-1;;;;;27790:14:0;;;;;;:6;:14;;;;;:23;;;;;;;;;:53;;;27827:16;-1:-1:-1;;;;;27817:26:0;:6;-1:-1:-1;;;;;27817:26:0;;27790:53;27856:5;27786:85;-1:-1:-1;;;;;27890:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;27772:3;;;;:::i;:::-;;;;27745:176;;;-1:-1:-1;27936:6:0;27612:336;-1:-1:-1;;27612:336:0:o;28359:125::-;-1:-1:-1;;;;;28451:17:0;;;;;;:6;:17;;;;;;;;;:27;;28444:34;;;;;;;;;;;;;;;;;28419:16;;28444:34;;;28451:27;28444:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28444:34:0;;;;;;;;;;;;;;;;;;;;;;;28359:125;;;:::o;10311:155::-;10406:52;5634:10;10439:8;10449;10406:18;:52::i;:::-;10311:155;;:::o;30794:84::-;30833:39;;30841:10;;30862:9;30833:39;;;;;;;;;30862:9;30841:10;30833:39;;;;;;;;;;;;;;;;;;;;;30794:84::o;11164:323::-;11338:41;5634:10;11371:7;11338:18;:41::i;:::-;11330:100;;;;-1:-1:-1;;;11330:100:0;;;;;;;:::i;:::-;11441:38;11455:4;11461:2;11465:7;11474:4;11441:13;:38::i;:::-;11164:323;;;;:::o;26646:960::-;26703:10;26696:18;;;;:6;:18;;;;;:29;;;16188:8;-1:-1:-1;26696:70:0;26688:85;;;;-1:-1:-1;;;26688:85:0;;16426:2:1;26688:85:0;;;16408:21:1;16465:1;16445:18;;;16438:29;-1:-1:-1;;;16483:18:1;;;16476:32;16525:18;;26688:85:0;16224:325:1;26688:85:0;26793:10;26786:18;;;;:6;:18;;;;;:27;;;;;;;;26782:819;;;26845:10;26830:26;;;;:14;:26;;;;;;;;26857:6;:18;;;;;:30;;;;;;;26830:58;;;;;;;;;26825:322;;26973:10;26985:18;;;;:6;:18;;;;;:30;;;-1:-1:-1;;;;;26917:26:0;26901:71;;;;26985:34;;27018:1;;26985:30;;:34;:::i;:::-;26901:119;;-1:-1:-1;;;;;;26901:119:0;;;;;;;-1:-1:-1;;;;;16898:32:1;;;26901:119:0;;;16880:51:1;16979:4;16967:17;16947:18;;;16940:45;16853:18;;26901:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27048:10:0;27033:26;;;;:14;:26;;;;;;;;27060:6;:18;;;;;:30;;;;;27033:58;;;;;;;:65;;-1:-1:-1;;27033:65:0;27094:4;27033:65;;;-1:-1:-1;26782:819:0;;-1:-1:-1;26782:819:0;26825:322;27125:12;;-1:-1:-1;;;27125:12:0;;17198:2:1;27125:12:0;;;17180:21:1;17237:1;17217:18;;;17210:29;-1:-1:-1;;;17255:18:1;;;17248:32;17297:18;;27125:12:0;16996:325:1;26782:819:0;27170:14;27187:22;27198:10;27187;:22::i;:::-;27170:39;;27234:16;-1:-1:-1;;;;;27224:26:0;:6;-1:-1:-1;;;;;27224:26:0;;27220:374;;27283:10;27268:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;27295:14:0;;;;:6;:14;;;;;:26;;;;;;;27268:54;;;;;;;;;27263:322;;-1:-1:-1;;;;;27423:14:0;;;;;;;:6;:14;;;;;:26;;;27353;27337:73;;;;;;27411:10;;27423:30;;27452:1;;27423:26;;:30;:::i;:::-;27337:117;;-1:-1:-1;;;;;;27337:117:0;;;;;;;-1:-1:-1;;;;;16898:32:1;;;27337:117:0;;;16880:51:1;16979:4;16967:17;16947:18;;;16940:45;16853:18;;27337:117:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27484:10:0;27469:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;27496:14:0;;;;:6;:14;;;;;:26;;;;;27469:54;;;;;;;:61;;-1:-1:-1;;27469:61:0;27526:4;27469:61;;;-1:-1:-1;27263:322:0;;-1:-1:-1;27263:322:0;26782:819;26646:960::o;9292:281::-;9365:13;9391:23;9406:7;9391:14;:23::i;:::-;9427:21;9451:10;:8;:10::i;:::-;9427:34;;9503:1;9485:7;9479:21;:25;:86;;;;;;;;;;;;;;;;;9531:7;9540:18;:7;:16;:18::i;:::-;9514:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9479:86;9472:93;9292:281;-1:-1:-1;;;9292:281:0:o;19241:89::-;;;;;;;;;;;;19496:198;;;;;;;;;;;;10480:164;-1:-1:-1;;;;;10601:25:0;;;10577:4;10601:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;10480:164::o;29397:275::-;29478:5;-1:-1:-1;;;;;29478:21:0;5634:10;29478:21;29470:36;;;;-1:-1:-1;;;29470:36:0;;12765:2:1;29470:36:0;;;12747:21:1;12804:1;12784:18;;;12777:29;-1:-1:-1;;;12822:18:1;;;12815:32;12864:18;;29470:36:0;12563:325:1;29470:36:0;-1:-1:-1;;;;;2062:19:0;;;29513:50;;;;-1:-1:-1;;;29513:50:0;;18029:2:1;29513:50:0;;;18011:21:1;18068:1;18048:18;;;18041:29;-1:-1:-1;;;18086:18:1;;;18079:32;18128:18;;29513:50:0;17827:325:1;29513:50:0;29578:19;;-1:-1:-1;;;;;29578:19:0;:35;29570:50;;;;-1:-1:-1;;;29570:50:0;;18359:2:1;29570:50:0;;;18341:21:1;18398:1;18378:18;;;18371:29;-1:-1:-1;;;18416:18:1;;;18409:32;18458:18;;29570:50:0;18157:325:1;29570:50:0;29629:19;:37;;-1:-1:-1;;;;;;29629:37:0;-1:-1:-1;;;;;29629:37:0;;;;;;;;;;29397:275::o;1946:147::-;-1:-1:-1;;;;;2062:19:0;;:23;;;1946:147::o;14687:135::-;11893:4;11917:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11917:16:0;14761:53;;;;-1:-1:-1;;;14761:53:0;;15663:2:1;14761:53:0;;;15645:21:1;15702:2;15682:18;;;15675:30;-1:-1:-1;;;15721:18:1;;;15714:54;15785:18;;14761:53:0;15461:348:1;14170:174:0;14245:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;14245:29:0;-1:-1:-1;;;;;14245:29:0;;;;;;;;:24;;14299:23;14245:24;14299:14;:23::i;:::-;-1:-1:-1;;;;;14290:46:0;;;;;;;;;;;14170:174;;:::o;30884:154::-;30922:7;30951:15;30973:42;11893:4;11917:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11917:16:0;:30;30973:42;;31003:4;;;;:::i;:::-;;;;30973:42;;;31030:2;30884:154;-1:-1:-1;30884:154:0:o;20299:3807::-;20452:1;20428:14;:21;:25;:72;;;-1:-1:-1;;;;;;20457:18:0;;;20496:3;20457:18;;;:6;:18;;;;;:27;;;;:43;;20428:72;20420:87;;;;-1:-1:-1;;;20420:87:0;;18689:2:1;20420:87:0;;;18671:21:1;18728:1;18708:18;;;18701:29;-1:-1:-1;;;18746:18:1;;;18739:32;18788:18;;20420:87:0;18487:325:1;20420:87:0;-1:-1:-1;;;;;20545:18:0;;;20516:26;20545:18;;;:6;:18;;;;;20605:14;;;;20545:18;;20605:14;20601:1382;;20658:4;20646:16;;20704:3;-1:-1:-1;;;;;20675:33:0;:14;20690:1;20675:17;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;20675:33:0;;:68;;;;20733:10;-1:-1:-1;;;;;20712:31:0;:14;20727:1;20712:17;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;20712:31:0;;20675:68;20671:314;;;20756:14;;;:33;;-1:-1:-1;;;;;;20756:33:0;;;20773:16;-1:-1:-1;;;;;20756:33:0;;;;;;;;;-1:-1:-1;20800:24:0;;;:6;:24;;;;;;;:34;;:51;;-1:-1:-1;20800:51:0;;;;;;;;;;;;;;;;;;;;;;;;20671:314;;;20895:14;20910:1;20895:17;;;;;;;;:::i;:::-;;;;;;;20878:5;:14;;;:34;;;;;-1:-1:-1;;;;;20878:34:0;;;;;-1:-1:-1;;;;;20878:34:0;;;;;;20923:6;:25;20930:14;20945:1;20930:17;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;20923:25:0;;;;;;;;;;;;;;;;-1:-1:-1;20923:25:0;;;:35;;:52;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20923:52:0;;;;;;;;;;20671:314;21023:1;20999:14;:21;:25;:63;;;;-1:-1:-1;21028:14:0;;;;21046:16;-1:-1:-1;;;;;21028:34:0;;;:14;;:34;;20999:63;20995:981;;;21081:7;21076:891;19846:2;21094:18;;;;:51;;;;;21144:1;21120:14;:21;:25;;;;:::i;:::-;21116:1;:29;;;21094:51;21076:891;;;21215:3;-1:-1:-1;;;;;21169:50:0;:6;:25;21176:14;21191:1;21176:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;21169:25:0;;;;;;;;;;;;;;-1:-1:-1;21169:25:0;:34;;;;:50;21165:791;;21274:3;21241:14;21256:5;:1;21260;21256:5;:::i;:::-;21241:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21241:37:0;;;:83;;;;;21307:14;21322:1;21307:17;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21282:42:0;:14;21297:1;21301;21297:5;;;;:::i;:::-;21282:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21282:42:0;;;21241:83;21237:706;;;21380:14;21395:5;:1;21399;21395:5;:::i;:::-;21380:21;;;;;;;;;;:::i;:::-;;;;;;;21343:6;:25;21350:14;21365:1;21350:17;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21343:25:0;-1:-1:-1;;;;;21343:25:0;;;;;;;;;;;;:34;;;:58;;;;;-1:-1:-1;;;;;21343:58:0;;;;;-1:-1:-1;;;;;21343:58:0;;;;;;21418:6;:29;21425:14;21440:1;21444;21440:5;;;;:::i;:::-;21425:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21418:29:0;-1:-1:-1;;;;;21418:29:0;;;;;;;;;;;;:39;;21463:14;21478:1;21463:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;21418:63;;;;;;;-1:-1:-1;21418:63:0;;;;;;;;;;;-1:-1:-1;;;;;;21418:63:0;-1:-1:-1;;;;;21418:63:0;;;;;;;;;21500:112;21522:1;21518:5;;:1;:5;;;21500:112;;;21549:6;:29;21556:14;21571:5;:1;21575;21571:5;:::i;:::-;21556:21;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21549:29:0;-1:-1:-1;;;;;21549:29:0;;;;;;;;;;;;:40;;21590:1;21549:43;;;;;;;;;:::i;:::-;;:45;;;:43;:45;;;:::i;:::-;;;;;;21525:3;;;;;:::i;:::-;;;;21500:112;;;;21237:706;;;21687:16;21650:6;:25;21657:14;21672:1;21657:17;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;21650:25:0;-1:-1:-1;;;;;21650:25:0;;;;;;;;;;;;:34;;;:53;;;;;-1:-1:-1;;;;;21650:53:0;;;;;-1:-1:-1;;;;;21650:53:0;;;;;;21720:6;:24;21727:16;-1:-1:-1;;;;;21720:24:0;-1:-1:-1;;;;;21720:24:0;;;;;;;;;;;;:34;;21760:14;21775:1;21760:17;;;;;;;;;;:::i;:::-;;;;;;;;;;;;21720:58;;;;;;;-1:-1:-1;21720:58:0;;;;;;;;;;;-1:-1:-1;;;;;;21720:58:0;-1:-1:-1;;;;;21720:58:0;;;;;;;;;21797:107;21819:1;21815:5;;:1;:5;;;21797:107;;;-1:-1:-1;;;;;21853:16:0;21846:24;;;;;:6;:24;;;;;:35;;:38;;;;;;;;;;:::i;:::-;;:40;;;:38;:40;;;:::i;:::-;;;;;;21822:3;;;;;:::i;:::-;;;;21797:107;;;;21922:5;;21237:706;21147:3;;;;:::i;:::-;;;;21076:891;;;;20995:981;21991:31;22036;;22025:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22025:43:0;-1:-1:-1;22129:14:0;;;;21991:77;;-1:-1:-1;22095:10:0;;-1:-1:-1;;;;;22129:14:0;22077:15;;22178:1627;19846:2;22196:18;;;;22178:1627;;;22232:18;22269:1;:6;;22274:1;22269:6;22265:800;;-1:-1:-1;;;;;22328:14:0;;22303:24;22328:14;;;:6;:14;;;;;:23;;;22303:49;;22328:23;;;;;22303:49;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22381:14:0;;;;:6;:14;;;;;;;:23;;;;;;-1:-1:-1;22303:49:0;-1:-1:-1;22381:23:0;22417:175;22508:4;22485:17;22503:1;22485:20;;;;;;;;;;:::i;:::-;:27;;;:20;;;;;;;;;;;:27;22533:6;;;22529:50;22558:5;22529:50;22465:3;;;;:::i;:::-;;;;22417:175;;;;22265:800;;;-1:-1:-1;;;;;22613:14:0;;;;;;:6;:14;;;;;:23;;;:37;;;;:23;;:37;:84;;;;-1:-1:-1;;;;;;22673:14:0;;;;;;:6;:14;;;;;:23;;;22655:42;;:17;;22673:23;;;22655:42;;;;;;:::i;:::-;;;;;;;22654:43;22613:84;22609:456;;;22777:24;22802:11;22777:37;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;22750:14:0;;;;:6;:14;;;;;;:23;;;22725:49;;22777:37;;;22750:23;;;;;22725:49;;;;;;:::i;:::-;;;;;;;;;:89;;;;:::i;:::-;-1:-1:-1;;;;;22843:14:0;;;;;;:6;:14;;;;;:23;;;;;;-1:-1:-1;22712:102:0;-1:-1:-1;22843:23:0;22879:175;22970:4;22947:17;22965:1;22947:20;;;;;;;;;;:::i;:::-;:27;;;:20;;;;;;;;;;;:27;22995:6;;;22991:50;23020:5;22991:50;22927:3;;;;:::i;:::-;;;;22879:175;;;;22609:456;23077:14;16018:3;23094:20;23104:10;23094:7;:20;:::i;:::-;:50;;;;:::i;:::-;23077:67;-1:-1:-1;23159:10:0;;23155:454;;-1:-1:-1;;;;;23188:14:0;;23216:1;23188:14;;;:6;:14;;;;;:25;;;:29;23184:414;;23234:32;;-1:-1:-1;;;;;23234:24:0;;;:32;;;;;23259:6;;23234:32;;;;23259:6;23234:24;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23281:14:0;;;;;;:6;:14;;;;;;;:20;:29;;23304:6;;23281:14;:29;;23304:6;;23281:29;:::i;:::-;;;;;;;;23381:1;23332:76;;23369:10;-1:-1:-1;;;;;23332:76:0;23361:6;-1:-1:-1;;;;;23332:76:0;;23384:6;23392:15;23332:76;;;;;;12069:25:1;;;12125:2;12110:18;;12103:34;12057:2;12042:18;;11895:248;23332:76:0;;;;;;;;23184:414;;;23443:33;;-1:-1:-1;;;;;23443:16:0;:25;;:33;;;;;23469:6;;23443:33;;;;23469:6;23443:25;:33;;;;;;;;;;;;;;;;;;;;;23557:1;23498:86;;23545:10;-1:-1:-1;;;;;23498:86:0;23527:16;-1:-1:-1;;;;;23498:86:0;;23560:6;23568:15;23498:86;;;;;;12069:25:1;;;12125:2;12110:18;;12103:34;12057:2;12042:18;;11895:248;23498:86:0;;;;;;;;23184:414;-1:-1:-1;;;;;23621:14:0;;;;;;:6;:14;;;;;:19;;:22;;;;;;;;;;:::i;:::-;;:24;;;:22;:24;;;:::i;:::-;;;;;;23660:9;23656:70;;;-1:-1:-1;;;;;23684:14:0;;;;;;:6;:14;;;;;:25;;:28;;;;;;;;;;:::i;:::-;;:30;;;:28;:30;;;:::i;:::-;;;;;;23656:70;-1:-1:-1;;;;;;;23774:14:0;;;;;;;:6;:14;;;;;:23;;;23748:6;;-1:-1:-1;23774:23:0;;;;;22216:3;;;;:::i;:::-;;;;22178:1627;;;;23822:10;23813:19;;23845:9;23840:261;19901:1;23860:28;;23840:261;;-1:-1:-1;;;;;23910:20:0;;23906:56;23945:5;23906:56;23974:37;23995:6;24003:7;23974:20;:37::i;:::-;24022:26;24041:6;24022:18;:26::i;:::-;-1:-1:-1;;;;;24070:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;23890:3;;;;:::i;:::-;;;;23840:261;;;;20413:3693;;;;;;20299:3807;;;:::o;12704:439::-;-1:-1:-1;;;;;12784:16:0;;12776:61;;;;-1:-1:-1;;;12776:61:0;;19488:2:1;12776:61:0;;;19470:21:1;;;19507:18;;;19500:30;19566:34;19546:18;;;19539:62;19618:18;;12776:61:0;19286:356:1;12776:61:0;11893:4;11917:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11917:16:0;:30;12848:58;;;;-1:-1:-1;;;12848:58:0;;19849:2:1;12848:58:0;;;19831:21:1;19888:2;19868:18;;;19861:30;19927;19907:18;;;19900:58;19975:18;;12848:58:0;19647:352:1;12848:58:0;-1:-1:-1;;;;;12977:13:0;;;;;;:9;:13;;;;;:18;;12994:1;;12977:13;:18;;12994:1;;12977:18;:::i;:::-;;;;-1:-1:-1;;13006:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;13006:21:0;-1:-1:-1;;;;;13006:21:0;;;;;;;;13045:33;;13006:16;;;13045:33;;13006:16;;13045:33;10311:155;;:::o;11969:264::-;12062:4;12079:13;12095:23;12110:7;12095:14;:23::i;:::-;12079:39;;12148:5;-1:-1:-1;;;;;12137:16:0;:7;-1:-1:-1;;;;;12137:16:0;;:52;;;;12157:32;12174:5;12181:7;12157:16;:32::i;:::-;12137:87;;;;12217:7;-1:-1:-1;;;;;12193:31:0;:20;12205:7;12193:11;:20::i;:::-;-1:-1:-1;;;;;12193:31:0;;12137:87;12129:96;11969:264;-1:-1:-1;;;;11969:264:0:o;13573:583::-;13732:4;-1:-1:-1;;;;;13705:31:0;:23;13720:7;13705:14;:23::i;:::-;-1:-1:-1;;;;;13705:31:0;;13697:81;;;;-1:-1:-1;;;13697:81:0;;20206:2:1;13697:81:0;;;20188:21:1;20245:2;20225:18;;;20218:30;20284:34;20264:18;;;20257:62;-1:-1:-1;;;20335:18:1;;;20328:35;20380:19;;13697:81:0;20004:401:1;13697:81:0;-1:-1:-1;;;;;13797:16:0;;13789:65;;;;-1:-1:-1;;;13789:65:0;;20612:2:1;13789:65:0;;;20594:21:1;20651:2;20631:18;;;20624:30;20690:34;20670:18;;;20663:62;-1:-1:-1;;;20741:18:1;;;20734:34;20785:19;;13789:65:0;20410:400:1;13789:65:0;13929:29;13946:1;13950:7;13929:8;:29::i;:::-;-1:-1:-1;;;;;13971:15:0;;;;;;:9;:15;;;;;:20;;13990:1;;13971:15;:20;;13990:1;;13971:20;:::i;:::-;;;;-1:-1:-1;;;;;;;14002:13:0;;;;;;:9;:13;;;;;:18;;14019:1;;14002:13;:18;;14019:1;;14002:18;:::i;:::-;;;;-1:-1:-1;;14031:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14031:21:0;-1:-1:-1;;;;;14031:21:0;;;;;;;;;14070:27;;14031:16;;14070:27;;;;;;;9765:347;9695:417;;:::o;14358:315::-;14513:8;-1:-1:-1;;;;;14504:17:0;:5;-1:-1:-1;;;;;14504:17:0;;14496:55;;;;-1:-1:-1;;;14496:55:0;;21017:2:1;14496:55:0;;;20999:21:1;21056:2;21036:18;;;21029:30;21095:27;21075:18;;;21068:55;21140:18;;14496:55:0;20815:349:1;14496:55:0;-1:-1:-1;;;;;14562:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;14562:46:0;;;;;;;;;;14624:41;;1080::1;;;14624::0;;1053:18:1;14624:41:0;;;;;;;14358:315;;;:::o;11501:313::-;11657:28;11667:4;11673:2;11677:7;11657:9;:28::i;:::-;11704:47;11727:4;11733:2;11737:7;11746:4;11704:22;:47::i;:::-;11696:110;;;;-1:-1:-1;;;11696:110:0;;;;;;;:::i;30587:94::-;30639:13;30668:7;30661:14;;;;;:::i;5914:554::-;5970:13;6022:5;6031:1;6022:10;6018:53;;-1:-1:-1;;6049:10:0;;;;;;;;;;;;-1:-1:-1;;;6049:10:0;;;;;5914:554::o;6018:53::-;6096:5;6081:12;6137:78;6144:9;;6137:78;;6170:8;;;;:::i;:::-;;-1:-1:-1;6193:10:0;;-1:-1:-1;6201:2:0;6193:10;;:::i;:::-;;;6137:78;;;6225:19;6257:6;6247:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6247:17:0;;6225:39;;6275:154;6282:10;;6275:154;;6309:11;6319:1;6309:11;;:::i;:::-;;-1:-1:-1;6378:10:0;6386:2;6378:5;:10;:::i;:::-;6365:24;;:2;:24;:::i;:::-;6352:39;;6335:6;6342;6335:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;6335:56:0;;;;;;;;-1:-1:-1;6406:11:0;6415:2;6406:11;;:::i;:::-;;;6275:154;;24112:384;-1:-1:-1;;;;;24194:18:0;;;;;;:6;:18;;;;;:30;;:40;;24227:7;;24194:18;:40;;24227:7;;24194:40;:::i;:::-;;;;-1:-1:-1;;24304:1:0;24268:33;;24248:11;;24268:37;;;:::i;:::-;24248:58;;24243:248;24308:9;;;;24243:248;;24375:26;24402:5;24375:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24341:18:0;;;;:6;:18;;;;;;;:30;;;:67;24337:147;;-1:-1:-1;;;;;24421:18:0;;;;;;:6;:18;;;;;:27;;:35;;;;;-1:-1:-1;;24421:35:0;;;;;;9765:347;9695:417;;:::o;24337:147::-;24319:7;;;;:::i;:::-;;;;24243:248;;24502:1070;24591:16;-1:-1:-1;;;;;24577:30:0;:10;-1:-1:-1;;;;;24577:30:0;;24573:59;;24502:1070;:::o;24573:59::-;24638:27;24668:34;24691:10;24668:22;:34::i;:::-;24736:24;:31;24638:64;;-1:-1:-1;24716:11:0;;24736:35;;24770:1;;24736:35;:::i;:::-;24716:56;;24711:856;-1:-1:-1;;;;;24782:18:0;;;;;;:6;:18;;;;;:30;;;;;;;24774:38;;;;24711:856;;;24870:24;24895:5;24870:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24836:18:0;;;;:6;:18;;;;;;;:30;;;:65;;;;:137;;;24936:30;24967:5;24936:37;;;;;;;;;;:::i;:::-;;;;;;;;;24913:19;:60;;24836:137;24832:728;;;-1:-1:-1;;;;;24994:18:0;;;;;;;:6;:18;;;;;:30;;;:38;;-1:-1:-1;;25043:41:0;24994:38;;;25043:41;24994:38;25043:41;;;25114:27;;;;;;;25152:381;25174:3;25170:1;:7;;;25152:381;;;25211:16;-1:-1:-1;;;;;25201:26:0;:6;-1:-1:-1;;;;;25201:26:0;;25197:66;25244:5;25197:66;-1:-1:-1;;;;;25281:14:0;;;;;;:6;:14;;;;;:23;;;;;;;;:87;;;;-1:-1:-1;;;;;;25338:18:0;;;;;;;:6;:18;;;;;;:30;;;;;25308:14;;;;;;;:26;;25338:30;;;;25308:26;;:60;;25281:87;25277:198;;;-1:-1:-1;;;;;25385:18:0;;25422:5;25385:18;;;:6;:18;;;;;:34;;:42;;-1:-1:-1;;25385:42:0;;;25456:5;;25277:198;-1:-1:-1;;;;;25498:14:0;;;;;;;:6;:14;;;;;:23;;;;;;;25179:3;;;;:::i;:::-;;;;25152:381;;;;25545:5;9765:347;9695:417;;:::o;24832:728::-;24814:7;;;;:::i;:::-;;;;24711:856;;14836:819;14990:4;-1:-1:-1;;;;;15011:13:0;;2062:19;:23;15007:641;;15047:71;;-1:-1:-1;;;15047:71:0;;-1:-1:-1;;;;;15047:36:0;;;;;:71;;5634:10;;15098:4;;15104:7;;15113:4;;15047:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15047:71:0;;;;;;;;-1:-1:-1;;15047:71:0;;;;;;;;;;;;:::i;:::-;;;15043:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15288:6;:13;15305:1;15288:18;15284:294;;15331:60;;-1:-1:-1;;;15331:60:0;;;;;;;:::i;15284:294::-;15528:6;15522:13;15513:6;15509:2;15505:15;15498:38;15043:550;-1:-1:-1;;;;;;15169:51:0;-1:-1:-1;;;15169:51:0;;-1:-1:-1;15162:58:0;;15007:641;-1:-1:-1;15632:4:0;14836:819;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;554:131:1:-;-1:-1:-1;;;;;;628:32:1;;618:43;;608:71;;675:1;672;665:12;690:245;748:6;801:2;789:9;780:7;776:23;772:32;769:52;;;817:1;814;807:12;769:52;856:9;843:23;875:30;899:5;875:30;:::i;1132:250::-;1217:1;1227:113;1241:6;1238:1;1235:13;1227:113;;;1317:11;;;1311:18;1298:11;;;1291:39;1263:2;1256:10;1227:113;;;-1:-1:-1;;1374:1:1;1356:16;;1349:27;1132:250::o;1387:271::-;1429:3;1467:5;1461:12;1494:6;1489:3;1482:19;1510:76;1579:6;1572:4;1567:3;1563:14;1556:4;1549:5;1545:16;1510:76;:::i;:::-;1640:2;1619:15;-1:-1:-1;;1615:29:1;1606:39;;;;1647:4;1602:50;;1387:271;-1:-1:-1;;1387:271:1:o;1663:220::-;1812:2;1801:9;1794:21;1775:4;1832:45;1873:2;1862:9;1858:18;1850:6;1832:45;:::i;1888:180::-;1947:6;2000:2;1988:9;1979:7;1975:23;1971:32;1968:52;;;2016:1;2013;2006:12;1968:52;-1:-1:-1;2039:23:1;;1888:180;-1:-1:-1;1888:180:1:o;2281:173::-;2349:20;;-1:-1:-1;;;;;2398:31:1;;2388:42;;2378:70;;2444:1;2441;2434:12;2459:254;2527:6;2535;2588:2;2576:9;2567:7;2563:23;2559:32;2556:52;;;2604:1;2601;2594:12;2556:52;2627:29;2646:9;2627:29;:::i;:::-;2617:39;2703:2;2688:18;;;;2675:32;;-1:-1:-1;;;2459:254:1:o;2900:615::-;2986:6;2994;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3103:9;3090:23;3132:18;3173:2;3165:6;3162:14;3159:34;;;3189:1;3186;3179:12;3159:34;3227:6;3216:9;3212:22;3202:32;;3272:7;3265:4;3261:2;3257:13;3253:27;3243:55;;3294:1;3291;3284:12;3243:55;3334:2;3321:16;3360:2;3352:6;3349:14;3346:34;;;3376:1;3373;3366:12;3346:34;3429:7;3424:2;3414:6;3411:1;3407:14;3403:2;3399:23;3395:32;3392:45;3389:65;;;3450:1;3447;3440:12;3389:65;3481:2;3473:11;;;;;3503:6;;-1:-1:-1;2900:615:1;;-1:-1:-1;;;;2900:615:1:o;3520:328::-;3597:6;3605;3613;3666:2;3654:9;3645:7;3641:23;3637:32;3634:52;;;3682:1;3679;3672:12;3634:52;3705:29;3724:9;3705:29;:::i;:::-;3695:39;;3753:38;3787:2;3776:9;3772:18;3753:38;:::i;:::-;3743:48;;3838:2;3827:9;3823:18;3810:32;3800:42;;3520:328;;;;;:::o;3853:186::-;3912:6;3965:2;3953:9;3944:7;3940:23;3936:32;3933:52;;;3981:1;3978;3971:12;3933:52;4004:29;4023:9;4004:29;:::i;4044:326::-;4137:5;4160:1;4170:194;4184:4;4181:1;4178:11;4170:194;;;4243:13;;4231:26;;4280:4;4304:12;;;;4339:15;;;;4204:1;4197:9;4170:194;;4375:694;-1:-1:-1;;;;;4776:32:1;;4758:51;;4840:2;4825:18;;4818:34;;;4745:3;4730:19;;4861:52;4909:2;4894:18;;4886:6;4861:52;:::i;:::-;4922:53;4970:3;4959:9;4955:19;4947:6;4922:53;:::i;:::-;5006:3;4991:19;;4984:35;;;;5050:3;5035:19;5028:35;4375:694;;-1:-1:-1;;;;4375:694:1:o;5263:592::-;5334:6;5342;5395:2;5383:9;5374:7;5370:23;5366:32;5363:52;;;5411:1;5408;5401:12;5363:52;5451:9;5438:23;5480:18;5521:2;5513:6;5510:14;5507:34;;;5537:1;5534;5527:12;5507:34;5575:6;5564:9;5560:22;5550:32;;5620:7;5613:4;5609:2;5605:13;5601:27;5591:55;;5642:1;5639;5632:12;5591:55;5682:2;5669:16;5708:2;5700:6;5697:14;5694:34;;;5724:1;5721;5714:12;5694:34;5769:7;5764:2;5755:6;5751:2;5747:15;5743:24;5740:37;5737:57;;;5790:1;5787;5780:12;6828:658;6999:2;7051:21;;;7121:13;;7024:18;;;7143:22;;;6970:4;;6999:2;7222:15;;;;7196:2;7181:18;;;6970:4;7265:195;7279:6;7276:1;7273:13;7265:195;;;7344:13;;-1:-1:-1;;;;;7340:39:1;7328:52;;7435:15;;;;7400:12;;;;7376:1;7294:9;7265:195;;;-1:-1:-1;7477:3:1;;6828:658;-1:-1:-1;;;;;;6828:658:1:o;7491:347::-;7556:6;7564;7617:2;7605:9;7596:7;7592:23;7588:32;7585:52;;;7633:1;7630;7623:12;7585:52;7656:29;7675:9;7656:29;:::i;:::-;7646:39;;7735:2;7724:9;7720:18;7707:32;7782:5;7775:13;7768:21;7761:5;7758:32;7748:60;;7804:1;7801;7794:12;7748:60;7827:5;7817:15;;;7491:347;;;;;:::o;7843:127::-;7904:10;7899:3;7895:20;7892:1;7885:31;7935:4;7932:1;7925:15;7959:4;7956:1;7949:15;7975:1138;8070:6;8078;8086;8094;8147:3;8135:9;8126:7;8122:23;8118:33;8115:53;;;8164:1;8161;8154:12;8115:53;8187:29;8206:9;8187:29;:::i;:::-;8177:39;;8235:38;8269:2;8258:9;8254:18;8235:38;:::i;:::-;8225:48;;8320:2;8309:9;8305:18;8292:32;8282:42;;8375:2;8364:9;8360:18;8347:32;8398:18;8439:2;8431:6;8428:14;8425:34;;;8455:1;8452;8445:12;8425:34;8493:6;8482:9;8478:22;8468:32;;8538:7;8531:4;8527:2;8523:13;8519:27;8509:55;;8560:1;8557;8550:12;8509:55;8596:2;8583:16;8618:2;8614;8611:10;8608:36;;;8624:18;;:::i;:::-;8699:2;8693:9;8667:2;8753:13;;-1:-1:-1;;8749:22:1;;;8773:2;8745:31;8741:40;8729:53;;;8797:18;;;8817:22;;;8794:46;8791:72;;;8843:18;;:::i;:::-;8883:10;8879:2;8872:22;8918:2;8910:6;8903:18;8958:7;8953:2;8948;8944;8940:11;8936:20;8933:33;8930:53;;;8979:1;8976;8969:12;8930:53;9035:2;9030;9026;9022:11;9017:2;9009:6;9005:15;8992:46;9080:1;9075:2;9070;9062:6;9058:15;9054:24;9047:35;9101:6;9091:16;;;;;;;7975:1138;;;;;;;:::o;9118:260::-;9186:6;9194;9247:2;9235:9;9226:7;9222:23;9218:32;9215:52;;;9263:1;9260;9253:12;9215:52;9286:29;9305:9;9286:29;:::i;:::-;9276:39;;9334:38;9368:2;9357:9;9353:18;9334:38;:::i;:::-;9324:48;;9118:260;;;;;:::o;9383:380::-;9462:1;9458:12;;;;9505;;;9526:61;;9580:4;9572:6;9568:17;9558:27;;9526:61;9633:2;9625:6;9622:14;9602:18;9599:38;9596:161;;9679:10;9674:3;9670:20;9667:1;9660:31;9714:4;9711:1;9704:15;9742:4;9739:1;9732:15;10931:127;10992:10;10987:3;10983:20;10980:1;10973:31;11023:4;11020:1;11013:15;11047:4;11044:1;11037:15;11063:125;11128:9;;;11149:10;;;11146:36;;;11162:18;;:::i;11193:135::-;11232:3;11253:17;;;11250:43;;11273:18;;:::i;:::-;-1:-1:-1;11320:1:1;11309:13;;11193:135::o;11333:168::-;11373:7;11439:1;11435;11431:6;11427:14;11424:1;11421:21;11416:1;11409:9;11402:17;11398:45;11395:71;;;11446:18;;:::i;:::-;-1:-1:-1;11486:9:1;;11333:168::o;11506:127::-;11567:10;11562:3;11558:20;11555:1;11548:31;11598:4;11595:1;11588:15;11622:4;11619:1;11612:15;11638:120;11678:1;11704;11694:35;;11709:18;;:::i;:::-;-1:-1:-1;11743:9:1;;11638:120::o;11763:127::-;11824:10;11819:3;11815:20;11812:1;11805:31;11855:4;11852:1;11845:15;11879:4;11876:1;11869:15;12148:410;12350:2;12332:21;;;12389:2;12369:18;;;12362:30;12428:34;12423:2;12408:18;;12401:62;-1:-1:-1;;;12494:2:1;12479:18;;12472:44;12548:3;12533:19;;12148:410::o;13019:545::-;13121:2;13116:3;13113:11;13110:448;;;13157:1;13182:5;13178:2;13171:17;13227:4;13223:2;13213:19;13297:2;13285:10;13281:19;13278:1;13274:27;13268:4;13264:38;13333:4;13321:10;13318:20;13315:47;;;-1:-1:-1;13356:4:1;13315:47;13411:2;13406:3;13402:12;13399:1;13395:20;13389:4;13385:31;13375:41;;13466:82;13484:2;13477:5;13474:13;13466:82;;;13529:17;;;13510:1;13499:13;13466:82;;;13470:3;;;13019:545;;;:::o;13740:1206::-;13864:18;13859:3;13856:27;13853:53;;;13886:18;;:::i;:::-;13915:94;14005:3;13965:38;13997:4;13991:11;13965:38;:::i;:::-;13959:4;13915:94;:::i;:::-;14035:1;14060:2;14055:3;14052:11;14077:1;14072:616;;;;14732:1;14749:3;14746:93;;;-1:-1:-1;14805:19:1;;;14792:33;14746:93;-1:-1:-1;;13697:1:1;13693:11;;;13689:24;13685:29;13675:40;13721:1;13717:11;;;13672:57;14852:78;;14045:895;;14072:616;12966:1;12959:14;;;13003:4;12990:18;;-1:-1:-1;;14108:17:1;;;14209:9;14231:229;14245:7;14242:1;14239:14;14231:229;;;14334:19;;;14321:33;14306:49;;14441:4;14426:20;;;;14394:1;14382:14;;;;14261:12;14231:229;;;14235:3;14488;14479:7;14476:16;14473:159;;;14612:1;14608:6;14602:3;14596;14593:1;14589:11;14585:21;14581:34;14577:39;14564:9;14559:3;14555:19;14542:33;14538:79;14530:6;14523:95;14473:159;;;14675:1;14669:3;14666:1;14662:11;14658:19;14652:4;14645:33;14045:895;;13740:1206;;;:::o;15281:175::-;15318:3;15362:4;15355:5;15351:16;15391:4;15382:7;15379:17;15376:43;;15399:18;;:::i;:::-;15448:1;15435:15;;15281:175;-1:-1:-1;;15281:175:1:o;16554:151::-;16644:4;16637:12;;;16623;;;16619:31;;16662:14;;16659:40;;;16679:18;;:::i;17326:496::-;17505:3;17543:6;17537:13;17559:66;17618:6;17613:3;17606:4;17598:6;17594:17;17559:66;:::i;:::-;17688:13;;17647:16;;;;17710:70;17688:13;17647:16;17757:4;17745:17;;17710:70;:::i;:::-;17796:20;;17326:496;-1:-1:-1;;;;17326:496:1:o;18817:128::-;18884:9;;;18905:11;;;18902:37;;;18919:18;;:::i;18950:148::-;19038:4;19017:12;;;19031;;;19013:31;;19056:13;;19053:39;;;19072:18;;:::i;19103:178::-;19140:3;19184:4;19177:5;19173:16;19208:7;19198:41;;19219:18;;:::i;:::-;-1:-1:-1;;19255:20:1;;19103:178;-1:-1:-1;;19103:178:1:o;21169:414::-;21371:2;21353:21;;;21410:2;21390:18;;;21383:30;21449:34;21444:2;21429:18;;21422:62;-1:-1:-1;;;21515:2:1;21500:18;;21493:48;21573:3;21558:19;;21169:414::o;21588:112::-;21620:1;21646;21636:35;;21651:18;;:::i;:::-;-1:-1:-1;21685:9:1;;21588:112::o;21705:489::-;-1:-1:-1;;;;;21974:15:1;;;21956:34;;22026:15;;22021:2;22006:18;;21999:43;22073:2;22058:18;;22051:34;;;22121:3;22116:2;22101:18;;22094:31;;;21899:4;;22142:46;;22168:19;;22160:6;22142:46;:::i;:::-;22134:54;21705:489;-1:-1:-1;;;;;;21705:489:1:o;22199:249::-;22268:6;22321:2;22309:9;22300:7;22296:23;22292:32;22289:52;;;22337:1;22334;22327:12;22289:52;22369:9;22363:16;22388:30;22412:5;22388:30;:::i

Swarm Source

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