Contract 0x37e6dfd22163a9dc3637b8d169e47e40a95c06e5 3

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xd4ddcae9b5d371e5a35cd762420d283bc4ce00280d90e6427657822c1ab3a5e4Claim Balance404958322023-03-18 16:26:1473 days 17 hrs ago0x4c2ca932c4b975a5c1eb5b95fe9a7442a9e9533f IN  Polyflip: MATIC House Wallet0 MATIC0.0064862 164
0x6bb51333bf2fb68e7ec4ac6f8b18fff96503b8c9648512176cb0070973b2df9dClaim Balance401894732023-03-10 16:23:4681 days 17 hrs ago0x35ab9b8c7105fb32f8850ee0a7f09821232d9a41 IN  Polyflip: MATIC House Wallet0 MATIC0.00881965 223
0xd44b482f7af5e3f2ed71514f3e16cb5de4403fdae8d3012893b89edc1a925d90Claim Balance398665242023-03-02 4:13:5890 days 5 hrs ago0x27c8b9ff2e7b33ee6a9773124ed34aa8328e7492 IN  Polyflip: MATIC House Wallet0 MATIC0.0056952 144
0xbffa998971648dd6d951e30ac29fe60c9808b2b9f7b0f794717f46ae89b0a6cdClaim Balance397756892023-02-27 17:34:5992 days 16 hrs ago0x3934c1555ec334ad9abda18ccd2f2204266a7b39 IN  Polyflip: MATIC House Wallet0 MATIC0.00510195 129
0xef42cb459720b41c30f995ef225500f6ddbb13cdfbea7bdd01d44d81a3a3d62dClaim Balance395517032023-02-21 14:28:1298 days 19 hrs ago0x3501512665a90b99d3b5772540c2f614a2faa196 IN  Polyflip: MATIC House Wallet0 MATIC0.01087625 275
0x0e8fe9993de8bb3e3a020bb6acfb721222b54597a8c301f71a03d67c9714ecc1Claim Balance395241072023-02-20 21:24:1599 days 12 hrs ago0x3332faa3bd51e8b3bfafc89ea02b5f3f8d9bd47e IN  Polyflip: MATIC House Wallet0 MATIC0.00597205 151
0x4d92024d6cd5318090da07e5928043f07bea1a11afdd456207ebd8ef5599afbeClaim Balance394824872023-02-19 20:10:36100 days 13 hrs ago0x90f9c75b04479560532ecfedae7d77e30d24303b IN  Polyflip: MATIC House Wallet0 MATIC0.006260494347 158.293156711
0x9aa88c1e7725ac39e186a0fd77905381df47e36200292846a0e15412f10d891fClaim Balance393736152023-02-16 22:38:33103 days 11 hrs ago0xf56325b7ae7d23df5a82e05a2376ed4f0db1387c IN  Polyflip: MATIC House Wallet0 MATIC0.013933037441 352.289189417
0x85083219e3580e98c308ddef4c641292f8aa53bf7f2c9e85f16f52d566febdbeClaim Balance392563052023-02-13 19:36:23106 days 14 hrs ago0xfba4a56275ae274a78a2b3b784e83016bdbae2aa IN  Polyflip: MATIC House Wallet0 MATIC0.012897935271 326.117200281
0x62b7ee0b963bd4e0bf764570ed01d8f42b8c46966a5dacc616b535874db94f24Claim Balance390633082023-02-08 16:23:32111 days 17 hrs ago0x57af88d673b62603471e1ef824de1a222b0f2a3e IN  Polyflip: MATIC House Wallet0 MATIC0.0189049 478
0xce04bbc838d8963853776f59e2becdf33a477ae850ee3ab347f4d4ed31bf29f5Claim Balance390175542023-02-07 12:38:14112 days 21 hrs ago0x67da5ee19a8315a67bd4dcab2666822b89433872 IN  Polyflip: MATIC House Wallet0 MATIC0.00684215 173
0xfe811ee5c2575a63c9b4bf9f3b7f1a2abd7aebd1151e3856b78eeadaf106afd6Claim Balance389593202023-02-06 0:38:51114 days 9 hrs ago letslearncrypto.wallet  IN  Polyflip: MATIC House Wallet0 MATIC0.0080682 204
0x76c4a3fa520d645e1d73a443dae397cace1631b13b4ac06ff85bf24bc226ccc1Claim Balance388297372023-02-02 16:50:39117 days 16 hrs ago0x9315d05c2a0a3aff2ab49766940202f9a715c8ec IN  Polyflip: MATIC House Wallet0 MATIC0.0085428 216
0xeb51e80fc4092dd818b1354857891fc77ef519d31a5a78c3e9c59f3fd6be84daClaim Balance387928962023-02-01 18:26:24118 days 15 hrs ago0x96b769682e050f4abcc245eb2ee3f90614b3358f IN  Polyflip: MATIC House Wallet0 MATIC0.00510195 129
0xbfab273f05d745a513cd8534c7c863375912a3eacd28d765a30d127160d0ba92Claim Balance387920242023-02-01 17:54:58118 days 15 hrs ago0xe0323678088860a9c42e4ce11c78ecddc61954fd IN  Polyflip: MATIC House Wallet0 MATIC0.2373 6,000
0x6acc68234b426c9c3397ea3703f0198d859184419489dad9bfc8e9c3c8023aeaClaim Balance387665062023-02-01 2:24:57119 days 7 hrs ago0xa595a532a01f313cca8c5f6705263214a46dd4e7 IN  Polyflip: MATIC House Wallet0 MATIC0.00383635 97
0xb5b6d8d0395cf928f91214f390fb1ff026149cbb03888ce0aca86156c0a023adClaim Balance385713492023-01-27 2:29:25124 days 7 hrs ago0x2878484e80704c219fe05a7a2ff98f86a1011244 IN  Polyflip: MATIC House Wallet0 MATIC0.00280805 71
0xd5a4d4494ce1530ea0d64a4f9d4dc6f057e3649a44eeecca94b13008ebc6b7f9Claim Balance383521562023-01-21 14:15:34129 days 19 hrs ago0xcd95f20eff387ca418c0d9c0314397ba320109d2 IN  Polyflip: MATIC House Wallet0 MATIC0.00423185 107
0x0aea1f50ea9b50225988fbb4b2d5ce489e61115ab392ae46ed6cb4dca6090fdaClaim Balance381826732023-01-17 6:59:43134 days 2 hrs ago0x5d53969ce8bf273aa5baae6a97912708dc999bd8 IN  Polyflip: MATIC House Wallet0 MATIC0.00328265 83
0x802fb3e7ee6542f0fef821fe9f8aa04d66036c4eae207575eea0871ca7997618Claim Balance381505512023-01-16 12:18:05134 days 21 hrs ago0x3bcffce48ef2f1f699a677c15d2539727e848c0f IN  Polyflip: MATIC House Wallet0 MATIC0.00296625 75
0xf622059979af92dc9fbf39132366f90db108e14d5337fbed94caecda49a49929Claim Balance380517512023-01-14 3:15:18137 days 6 hrs ago0x088bfa6aed025e945d9d72949f8d56e4f583d0f8 IN  Polyflip: MATIC House Wallet0 MATIC0.0038759 98
0xe1d873ffde25d0a069c490a89da546680aca581a11414ae8a4c7b8fb86ca92e4Claim Balance376429632023-01-04 0:54:48147 days 8 hrs ago0xf235ed127bd468dedd09cb10eb824446c67b5ccc IN  Polyflip: MATIC House Wallet0 MATIC0.001781051697 45.032912694
0x9171c77c82fdfabcf738525d2dfaf3fdc9cbdf362a1f683d7847d06ba218d08eClaim Balance375401712023-01-01 11:41:39149 days 22 hrs ago0x3dfa1c42175712de37b131273ea5a785f32831ba IN  Polyflip: MATIC House Wallet0 MATIC0.001631477147 41.251002465
0x84b7e7153fc4376e55d0111e691a8ce3a6252eeaced22e57da43fbf7ffc0cf6bClaim Balance373670162022-12-28 5:34:48154 days 4 hrs ago0x095b8538f53d344705319efb97607f28753616ea IN  Polyflip: MATIC House Wallet0 MATIC0.002098285575 53.053996844
0x99227aac3b001ddf240d9bdd851b88d249d640e0ddba72eb279300776a480b27Claim Balance373017062022-12-26 14:15:37155 days 19 hrs ago0xb25da7651394a0deecab582aa8a69fa7c3ccaae4 IN  Polyflip: MATIC House Wallet0 MATIC0.00446915 113
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd4ddcae9b5d371e5a35cd762420d283bc4ce00280d90e6427657822c1ab3a5e4404958322023-03-18 16:26:1473 days 17 hrs ago Polyflip: MATIC House Wallet0x4c2ca932c4b975a5c1eb5b95fe9a7442a9e9533f12.1803857494481542 MATIC
0x6bb51333bf2fb68e7ec4ac6f8b18fff96503b8c9648512176cb0070973b2df9d401894732023-03-10 16:23:4681 days 17 hrs ago Polyflip: MATIC House Wallet0x35ab9b8c7105fb32f8850ee0a7f09821232d9a415.8147830310880829 MATIC
0xd44b482f7af5e3f2ed71514f3e16cb5de4403fdae8d3012893b89edc1a925d90398665242023-03-02 4:13:5890 days 5 hrs ago Polyflip: MATIC House Wallet0x27c8b9ff2e7b33ee6a9773124ed34aa8328e749210.0928857494481542 MATIC
0xbffa998971648dd6d951e30ac29fe60c9808b2b9f7b0f794717f46ae89b0a6cd397756892023-02-27 17:34:5992 days 16 hrs ago Polyflip: MATIC House Wallet0x3934c1555ec334ad9abda18ccd2f2204266a7b397.813741364421416233 MATIC
0xef42cb459720b41c30f995ef225500f6ddbb13cdfbea7bdd01d44d81a3a3d62d395517032023-02-21 14:28:1298 days 19 hrs ago Polyflip: MATIC House Wallet0x3501512665a90b99d3b5772540c2f614a2faa19620.1857714988963084 MATIC
0x0e8fe9993de8bb3e3a020bb6acfb721222b54597a8c301f71a03d67c9714ecc1395241072023-02-20 21:24:1599 days 12 hrs ago Polyflip: MATIC House Wallet0x3332faa3bd51e8b3bfafc89ea02b5f3f8d9bd47e0.861139896373056994 MATIC
0x4d92024d6cd5318090da07e5928043f07bea1a11afdd456207ebd8ef5599afbe394824872023-02-19 20:10:36100 days 13 hrs ago Polyflip: MATIC House Wallet0x90f9c75b04479560532ecfedae7d77e30d24303b5.8147830310880829 MATIC
0x9aa88c1e7725ac39e186a0fd77905381df47e36200292846a0e15412f10d891f393736152023-02-16 22:38:33103 days 11 hrs ago Polyflip: MATIC House Wallet0xf56325b7ae7d23df5a82e05a2376ed4f0db1387c29.541341720649212306 MATIC
0x85083219e3580e98c308ddef4c641292f8aa53bf7f2c9e85f16f52d566febdbe392563052023-02-13 19:36:23106 days 14 hrs ago Polyflip: MATIC House Wallet0xfba4a56275ae274a78a2b3b784e83016bdbae2aa28.694768545885595282 MATIC
0x62b7ee0b963bd4e0bf764570ed01d8f42b8c46966a5dacc616b535874db94f24390633082023-02-08 16:23:32111 days 17 hrs ago Polyflip: MATIC House Wallet0x57af88d673b62603471e1ef824de1a222b0f2a3e5.8147830310880829 MATIC
0xce04bbc838d8963853776f59e2becdf33a477ae850ee3ab347f4d4ed31bf29f5390175542023-02-07 12:38:14112 days 21 hrs ago Polyflip: MATIC House Wallet0x67da5ee19a8315a67bd4dcab2666822b894338724.143005181347150256 MATIC
0xfe811ee5c2575a63c9b4bf9f3b7f1a2abd7aebd1151e3856b78eeadaf106afd6389593202023-02-06 0:38:51114 days 9 hrs ago Polyflip: MATIC House Wallet letslearncrypto.wallet 0.861139896373056994 MATIC
0x76c4a3fa520d645e1d73a443dae397cace1631b13b4ac06ff85bf24bc226ccc1388297372023-02-02 16:50:39117 days 16 hrs ago Polyflip: MATIC House Wallet0x9315d05c2a0a3aff2ab49766940202f9a715c8ec20.71502590673575128 MATIC
0xeb51e80fc4092dd818b1354857891fc77ef519d31a5a78c3e9c59f3fd6be84da387928962023-02-01 18:26:24118 days 15 hrs ago Polyflip: MATIC House Wallet0x96b769682e050f4abcc245eb2ee3f90614b3358f57.389537091771190564 MATIC
0xbfab273f05d745a513cd8534c7c863375912a3eacd28d765a30d127160d0ba92387920242023-02-01 17:54:58118 days 15 hrs ago Polyflip: MATIC House Wallet0xe0323678088860a9c42e4ce11c78ecddc61954fd23.2591321243523316 MATIC
0x6acc68234b426c9c3397ea3703f0198d859184419489dad9bfc8e9c3c8023aea387665062023-02-01 2:24:57119 days 7 hrs ago Polyflip: MATIC House Wallet0xa595a532a01f313cca8c5f6705263214a46dd4e72.071502590673575128 MATIC
0xb5b6d8d0395cf928f91214f390fb1ff026149cbb03888ce0aca86156c0a023ad385713492023-01-27 2:29:25124 days 7 hrs ago Polyflip: MATIC House Wallet0x2878484e80704c219fe05a7a2ff98f86a101124410.0928857494481542 MATIC
0xd5a4d4494ce1530ea0d64a4f9d4dc6f057e3649a44eeecca94b13008ebc6b7f9383521562023-01-21 14:15:34129 days 19 hrs ago Polyflip: MATIC House Wallet0xcd95f20eff387ca418c0d9c0314397ba320109d273.0823144966889252 MATIC
0x0aea1f50ea9b50225988fbb4b2d5ce489e61115ab392ae46ed6cb4dca6090fda381826732023-01-17 6:59:43134 days 2 hrs ago Polyflip: MATIC House Wallet0x5d53969ce8bf273aa5baae6a97912708dc999bd8194.8861719911704672 MATIC
0x802fb3e7ee6542f0fef821fe9f8aa04d66036c4eae207575eea0871ca7997618381505512023-01-16 12:18:05134 days 21 hrs ago Polyflip: MATIC House Wallet0x3bcffce48ef2f1f699a677c15d2539727e848c0f10.0928857494481542 MATIC
0xf622059979af92dc9fbf39132366f90db108e14d5337fbed94caecda49a49929380517512023-01-14 3:15:18137 days 6 hrs ago Polyflip: MATIC House Wallet0x088bfa6aed025e945d9d72949f8d56e4f583d0f89.049255181347150256 MATIC
0xe1d873ffde25d0a069c490a89da546680aca581a11414ae8a4c7b8fb86ca92e4376429632023-01-04 0:54:48147 days 8 hrs ago Polyflip: MATIC House Wallet0xf235ed127bd468dedd09cb10eb824446c67b5ccc2.071502590673575128 MATIC
0x9171c77c82fdfabcf738525d2dfaf3fdc9cbdf362a1f683d7847d06ba218d08e375401712023-01-01 11:41:39149 days 22 hrs ago Polyflip: MATIC House Wallet0x3dfa1c42175712de37b131273ea5a785f32831ba15.627482728842832466 MATIC
0x84b7e7153fc4376e55d0111e691a8ce3a6252eeaced22e57da43fbf7ffc0cf6b373670162022-12-28 5:34:48154 days 4 hrs ago Polyflip: MATIC House Wallet0x095b8538f53d344705319efb97607f28753616ea0.861139896373056994 MATIC
0x99227aac3b001ddf240d9bdd851b88d249d640e0ddba72eb279300776a480b27373017062022-12-26 14:15:37155 days 19 hrs ago Polyflip: MATIC House Wallet0xb25da7651394a0deecab582aa8a69fa7c3ccaae40.861139896373056994 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
House

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-03-27
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.11;

abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     *
     * [IMPORTANT]
     * ====
     * You shouldn't rely on `isContract` to protect against flash loan attacks!
     *
     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
     * constructor.
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    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");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    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");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    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);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    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);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    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);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface IHouse {
    function placeBet(address player, uint amount, bool isBonus, uint nftHolderRewardsAmount, uint winnableAmount) payable external;
    function settleBet(address player, uint winnableAmount, bool win) external;
    function refundBet(address player, uint amount, uint winnableAmount) external;
}

contract House is ReentrancyGuard, Ownable, IHouse {
    using SafeERC20 for IERC20;

    bool public houseLive = true;
    uint public lockedInBets;
    uint public lockedInRewards;
    uint public nftHoldersRewardsToDistribute;
    uint public balanceMaxProfitRatio = 1;
    address public polyflipAddress = 0x6Fdba1A4f28D7077Cfd3080f70C13020BC5B5865;

    mapping(address => bool) private addressAdmin;
    mapping(address => uint) public playerBalance;

    // Events
    event Donation(address indexed player, uint amount);
    event BalanceClaimed(address indexed player, uint amount);
    event RewardsDistributed(uint nPlayers, uint amount);

    fallback() external payable { emit Donation(msg.sender, msg.value); }
    receive() external payable { emit Donation(msg.sender, msg.value); }

    modifier admin {
        require(addressAdmin[msg.sender] == true, "You are not an admin");
        _;
    }

    modifier isHouseLive {
        require(houseLive == true, "House not live");
        _;
    }

    // Getter
    function balance() public view returns (uint) {
        return address(this).balance;
    }

    function polyflipBalance() public view returns (uint) {
        return IERC20(polyflipAddress).balanceOf(address(this));
    }

    // Setter
    function toggleHouseLive() external onlyOwner {
        houseLive = !houseLive;
    }

    function setBalanceMaxProfitRatio(uint _balanceMaxProfitRatio) external onlyOwner {
        balanceMaxProfitRatio = _balanceMaxProfitRatio;
    }

    function setPolyflipAddress(address _polyflipAddress) external onlyOwner {
        polyflipAddress = _polyflipAddress;
    }

    // Methods
    function addAdmin(address _address) external onlyOwner {
        addressAdmin[_address] = true;
    }

    function removeAdmin(address _address) external onlyOwner {
        addressAdmin[_address] = false;
    }

    // Game methods
    function balanceAvailableForBet() public view returns (uint) {
        return balance() - lockedInBets - lockedInRewards;
    }

    function maxProfit() public view returns (uint) {
        return balanceAvailableForBet() / balanceMaxProfitRatio;
    }

    function placeBet(address player, uint amount, bool isBonus, uint nftHolderRewardsAmount, uint winnableAmount) payable external isHouseLive admin nonReentrant {
        require(winnableAmount <= maxProfit(), "MaxProfit violation");
        uint polyflipRewards = amount * 5;
        require(polyflipRewards <= polyflipBalance(), "Not enough polyflip tokens");
        if (isBonus == true) {
            require(playerBalance[player] >= amount, "Not enough bonus");
            playerBalance[player] -= amount;
            lockedInRewards -= amount;
        }
        else {
            require(amount == msg.value, "Not right amount sent");
        }
        
        lockedInBets += winnableAmount;
        nftHoldersRewardsToDistribute += nftHolderRewardsAmount;
        lockedInRewards += nftHolderRewardsAmount;
        IERC20(polyflipAddress).safeTransfer(player, polyflipRewards);
    }

    function settleBet(address player, uint winnableAmount, bool win) external isHouseLive admin nonReentrant {
        lockedInBets -= winnableAmount;
        if (win == true) {
            payable(player).transfer(winnableAmount);
        }
    }

    function payPlayer(address player, uint amount) external isHouseLive admin nonReentrant {
        require(amount <= maxProfit(), "MaxProfit violation");
        payable(player).transfer(amount);
    }

    function sendPolyflipTokens(address player, uint amount) external isHouseLive admin nonReentrant {
        require(amount <= polyflipBalance(), "Not enough polyflip tokens");
        IERC20(polyflipAddress).safeTransfer(player, amount);
    }

    function refundBet(address player, uint amount, uint winnableAmount) external isHouseLive admin nonReentrant {
        lockedInBets -= winnableAmount;
        payable(player).transfer(amount);
    }

    function claimBalance() external isHouseLive nonReentrant {
        uint gBalance = playerBalance[msg.sender];
        require(gBalance > 0, "No funds to claim");
        payable(msg.sender).transfer(gBalance);
        playerBalance[msg.sender] = 0;
        lockedInRewards -= gBalance;
        emit BalanceClaimed(msg.sender, gBalance);
    }

    function distributeNftHoldersRewards(address[] memory addresses) external onlyOwner {
        require(nftHoldersRewardsToDistribute > 0, "No rewards to distribute");
        uint nHolders = addresses.length;
        uint singleReward = nftHoldersRewardsToDistribute / nHolders;
        for (uint i = 0; i < nHolders; i++) {
            playerBalance[addresses[i]] += singleReward;
        }
        emit RewardsDistributed(nHolders, nftHoldersRewardsToDistribute);
        nftHoldersRewardsToDistribute = 0;
    }

    function withdrawFunds(address payable beneficiary, uint withdrawAmount) external onlyOwner {
        require(withdrawAmount <= balanceAvailableForBet(), "Withdrawal exceeds limit");
        beneficiary.transfer(withdrawAmount);
    }

    function withdrawPolyflipFunds(address beneficiary, uint withdrawAmount) external onlyOwner {
        require(withdrawAmount <= polyflipBalance(), "Polyflip token withdrawal exceeds limit");
        IERC20(polyflipAddress).safeTransfer(beneficiary, withdrawAmount);
    }

    function withdrawCustomTokenFunds(address beneficiary, uint withdrawAmount, address token) external onlyOwner {
        require(withdrawAmount <= IERC20(token).balanceOf(address(this)), "Withdrawal exceeds limit");
        IERC20(token).safeTransfer(beneficiary, withdrawAmount);
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Donation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"nPlayers","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsDistributed","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceAvailableForBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceMaxProfitRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"distributeNftHoldersRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"houseLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedInBets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedInRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftHoldersRewardsToDistribute","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":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"payPlayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"isBonus","type":"bool"},{"internalType":"uint256","name":"nftHolderRewardsAmount","type":"uint256"},{"internalType":"uint256","name":"winnableAmount","type":"uint256"}],"name":"placeBet","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polyflipAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polyflipBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"winnableAmount","type":"uint256"}],"name":"refundBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendPolyflipTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_balanceMaxProfitRatio","type":"uint256"}],"name":"setBalanceMaxProfitRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_polyflipAddress","type":"address"}],"name":"setPolyflipAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"winnableAmount","type":"uint256"},{"internalType":"bool","name":"win","type":"bool"}],"name":"settleBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleHouseLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"withdrawCustomTokenFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"name":"withdrawPolyflipFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001805460ff60a01b1916600160a01b178155600555600680546001600160a01b031916736fdba1a4f28d7077cfd3080f70c13020bc5b586517905534801561004c57600080fd5b50600160005561005b33610060565b6100b2565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61295f806100c16000396000f3fe6080604052600436106101c65760003560e01c80638da5cb5b116100f7578063d5f4cd8211610095578063ec75180b11610064578063ec75180b14610563578063f1b981f014610578578063f2fde38b1461058e578063f7cf8b24146105ae57610203565b8063d5f4cd82146104e0578063df88126f1461050d578063e013ea6214610523578063e43393931461054357610203565b8063b69ef8a8116100d1578063b69ef8a814610482578063c107532914610495578063c28a4262146104b5578063d0e0ae3f146104ca57610203565b80638da5cb5b14610401578063b14c80091461044d578063b539cd551461046d57610203565b8063519168c611610164578063704802751161013e578063704802751461038c578063715018a6146103ac5780637ce4a2bd146103c15780638b121403146103e157610203565b8063519168c6146103175780635d1837b81461032a5780636d4df8611461034a57610203565b806327b54889116101a057806327b548891461029757806330509bca146102c05780633b97e44e146102d55780634e33f83b146102ea57610203565b806314a1ce67146102355780631785f53c146102575780632363f4241461027757610203565b366102035760405134815233907f5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e906020015b60405180910390a2005b60405134815233907f5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e906020016101f9565b34801561024157600080fd5b50610255610250366004612496565b6105ce565b005b34801561026357600080fd5b506102556102723660046124c2565b610713565b34801561028357600080fd5b506102556102923660046124df565b6107e0565b3480156102a357600080fd5b506102ad60055481565b6040519081526020015b60405180910390f35b3480156102cc57600080fd5b506102556109c0565b3480156102e157600080fd5b506102ad610bc4565b3480156102f657600080fd5b506102ad6103053660046124c2565b60086020526000908152604090205481565b610255610325366004612522565b610bec565b34801561033657600080fd5b50610255610345366004612574565b61102b565b34801561035657600080fd5b5060015461037c9074010000000000000000000000000000000000000000900460ff1681565b60405190151581526020016102b7565b34801561039857600080fd5b506102556103a73660046124c2565b6110b1565b3480156103b857600080fd5b50610255611181565b3480156103cd57600080fd5b506102556103dc3660046124c2565b61120e565b3480156103ed57600080fd5b506102556103fc366004612496565b6112d6565b34801561040d57600080fd5b5060015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102b7565b34801561045957600080fd5b5061025561046836600461258d565b6114ec565b34801561047957600080fd5b506102ad61168a565b34801561048e57600080fd5b50476102ad565b3480156104a157600080fd5b506102556104b0366004612496565b6116a1565b3480156104c157600080fd5b506102556117d6565b3480156104d657600080fd5b506102ad60035481565b3480156104ec57600080fd5b506006546104289073ffffffffffffffffffffffffffffffffffffffff1681565b34801561051957600080fd5b506102ad60025481565b34801561052f57600080fd5b5061025561053e3660046125fe565b6118a4565b34801561054f57600080fd5b5061025561055e3660046126e1565b611a79565b34801561056f57600080fd5b506102ad611c63565b34801561058457600080fd5b506102ad60045481565b34801561059a57600080fd5b506102556105a93660046124c2565b611cf6565b3480156105ba57600080fd5b506102556105c9366004612496565b611e26565b60015473ffffffffffffffffffffffffffffffffffffffff163314610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61065c611c63565b8111156106eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f506f6c79666c697020746f6b656e207769746864726177616c2065786365656460448201527f73206c696d697400000000000000000000000000000000000000000000000000606482015260840161064b565b60065461070f9073ffffffffffffffffffffffffffffffffffffffff168383612052565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff16600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6001805474010000000000000000000000000000000000000000900460ff16151514610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff1615156001146108e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600081905550806002600082825461096d9190612747565b909155505060405173ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f193505050501580156109b5573d6000803e3d6000fd5b505060016000555050565b6001805474010000000000000000000000000000000000000000900460ff16151514610a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b60026000541415610ab5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b600260009081553381526008602052604090205480610b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f2066756e647320746f20636c61696d000000000000000000000000000000604482015260640161064b565b604051339082156108fc029083906000818181858888f19350505050158015610b5d573d6000803e3d6000fd5b5033600090815260086020526040812081905560038054839290610b82908490612747565b909155505060405181815233907fe64799e036cf6322d0c3b6d11f4e2fc9d1bd9bb5938dd3d6835921a427c89b8f9060200160405180910390a2506001600055565b6000600354600254610bd34790565b610bdd9190612747565b610be79190612747565b905090565b6001805474010000000000000000000000000000000000000000900460ff16151514610c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff161515600114610cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415610d5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600055610d6c61168a565b811115610dd5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4d617850726f6669742076696f6c6174696f6e00000000000000000000000000604482015260640161064b565b6000610de285600561275e565b9050610dec611c63565b811115610e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f7420656e6f75676820706f6c79666c697020746f6b656e73000000000000604482015260640161064b565b60018415151415610f485773ffffffffffffffffffffffffffffffffffffffff8616600090815260086020526040902054851115610eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7420656e6f75676820626f6e757300000000000000000000000000000000604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff861660009081526008602052604081208054879290610f24908490612747565b925050819055508460036000828254610f3d9190612747565b90915550610fb19050565b348514610fb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f7420726967687420616d6f756e742073656e740000000000000000000000604482015260640161064b565b8160026000828254610fc3919061279b565b925050819055508260046000828254610fdc919061279b565b925050819055508260036000828254610ff5919061279b565b909155505060065461101e9073ffffffffffffffffffffffffffffffffffffffff168783612052565b5050600160005550505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146110ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600555565b60015473ffffffffffffffffffffffffffffffffffffffff163314611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff16600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611202576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b61120c60006120df565b565b60015473ffffffffffffffffffffffffffffffffffffffff16331461128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6001805474010000000000000000000000000000000000000000900460ff1615151461135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff1615156001146113dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600055611456611c63565b8111156114bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f7420656e6f75676820706f6c79666c697020746f6b656e73000000000000604482015260640161064b565b6006546114e39073ffffffffffffffffffffffffffffffffffffffff168383612052565b50506001600055565b60015473ffffffffffffffffffffffffffffffffffffffff16331461156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8216906370a0823190602401602060405180830381865afa1580156115d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fb91906127b3565b821115611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5769746864726177616c2065786365656473206c696d69740000000000000000604482015260640161064b565b61168573ffffffffffffffffffffffffffffffffffffffff82168484612052565b505050565b6000600554611697610bc4565b610be791906127cc565b60015473ffffffffffffffffffffffffffffffffffffffff163314611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b61172a610bc4565b811115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5769746864726177616c2065786365656473206c696d69740000000000000000604482015260640161064b565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611685573d6000803e3d6000fd5b60015473ffffffffffffffffffffffffffffffffffffffff163314611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900460ff1615909102179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b600060045411611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e6f207265776172647320746f20646973747269627574650000000000000000604482015260640161064b565b80516004546000906119a49083906127cc565b905060005b82811015611a315781600860008684815181106119c8576119c8612807565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a19919061279b565b90915550819050611a2981612836565b9150506119a9565b506004546040805184815260208101929092527f29e98ba00d07f171959c4ddcd2f3020debc7c52cf537a034d7e664340d098c6c910160405180910390a15050600060045550565b6001805474010000000000000000000000000000000000000000900460ff16151514611b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff161515600114611b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415611bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b60026000819055508160026000828254611c069190612747565b909155505060018115151415611c595760405173ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f193505050501580156109b5573d6000803e3d6000fd5b5050600160005550565b6006546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be791906127b3565b60015473ffffffffffffffffffffffffffffffffffffffff163314611d77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161064b565b73ffffffffffffffffffffffffffffffffffffffff8116611e1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161064b565b611e23816120df565b50565b6001805474010000000000000000000000000000000000000000900460ff16151514611eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f486f757365206e6f74206c697665000000000000000000000000000000000000604482015260640161064b565b3360009081526007602052604090205460ff161515600114611f2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f596f7520617265206e6f7420616e2061646d696e000000000000000000000000604482015260640161064b565b60026000541415611f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161064b565b6002600055611fa661168a565b81111561200f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4d617850726f6669742076696f6c6174696f6e00000000000000000000000000604482015260640161064b565b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611c59573d6000803e3d6000fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611685908490612156565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006121b8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122629092919063ffffffff16565b80519091501561168557808060200190518101906121d6919061286f565b611685576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161064b565b6060612271848460008561227b565b90505b9392505050565b60608247101561230d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161064b565b73ffffffffffffffffffffffffffffffffffffffff85163b61238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161064b565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123b491906128bc565b60006040518083038185875af1925050503d80600081146123f1576040519150601f19603f3d011682016040523d82523d6000602084013e6123f6565b606091505b5091509150612406828286612411565b979650505050505050565b60608315612420575081612274565b8251156124305782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b91906128d8565b73ffffffffffffffffffffffffffffffffffffffff81168114611e2357600080fd5b803561249181612464565b919050565b600080604083850312156124a957600080fd5b82356124b481612464565b946020939093013593505050565b6000602082840312156124d457600080fd5b813561227481612464565b6000806000606084860312156124f457600080fd5b83356124ff81612464565b95602085013595506040909401359392505050565b8015158114611e2357600080fd5b600080600080600060a0868803121561253a57600080fd5b853561254581612464565b945060208601359350604086013561255c81612514565b94979396509394606081013594506080013592915050565b60006020828403121561258657600080fd5b5035919050565b6000806000606084860312156125a257600080fd5b83356125ad81612464565b92506020840135915060408401356125c481612464565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602080838503121561261157600080fd5b823567ffffffffffffffff8082111561262957600080fd5b818501915085601f83011261263d57600080fd5b81358181111561264f5761264f6125cf565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108582111715612692576126926125cf565b6040529182528482019250838101850191888311156126b057600080fd5b938501935b828510156126d5576126c685612486565b845293850193928501926126b5565b98975050505050505050565b6000806000606084860312156126f657600080fd5b833561270181612464565b92506020840135915060408401356125c481612514565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561275957612759612718565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561279657612796612718565b500290565b600082198211156127ae576127ae612718565b500190565b6000602082840312156127c557600080fd5b5051919050565b600082612802577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561286857612868612718565b5060010190565b60006020828403121561288157600080fd5b815161227481612514565b60005b838110156128a757818101518382015260200161288f565b838111156128b6576000848401525b50505050565b600082516128ce81846020870161288c565b9190910192915050565b60208152600082518060208401526128f781604085016020870161288c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122069ff10aeedb3b9196d94e5fee2bd209e241cb73dea26c33b06697b36213f6e2f64736f6c634300080b0033

Deployed ByteCode Sourcemap

18616:5781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19398:31;;19419:9;160:25:1;;19407:10:0;;19398:31;;148:2:1;133:18;19398:31:0;;;;;;;;18616:5781;;19324:31;;19345:9;160:25:1;;19333:10:0;;19324:31;;148:2:1;133:18;19324:31:0;14:177:1;23824:274:0;;;;;;;;;;-1:-1:-1;23824:274:0;;;;;:::i;:::-;;:::i;:::-;;20441:107;;;;;;;;;;-1:-1:-1;20441:107:0;;;;;:::i;:::-;;:::i;22482:201::-;;;;;;;;;;-1:-1:-1;22482:201:0;;;;;:::i;:::-;;:::i;18857:37::-;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;18857:37:0;;;;;;;;22691:350;;;;;;;;;;;;;:::i;20577:129::-;;;;;;;;;;;;;:::i;19037:45::-;;;;;;;;;;-1:-1:-1;19037:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;20844:909;;;;;;:::i;:::-;;:::i;20025:147::-;;;;;;;;;;-1:-1:-1;20025:147:0;;;;;:::i;:::-;;:::i;18709:28::-;;;;;;;;;;-1:-1:-1;18709:28:0;;;;;;;;;;;;;;2520:14:1;;2513:22;2495:41;;2483:2;2468:18;18709:28:0;2355:187:1;20330:103:0;;;;;;;;;;-1:-1:-1;20330:103:0;;;;;:::i;:::-;;:::i;3201:::-;;;;;;;;;;;;;:::i;20180:126::-;;;;;;;;;;-1:-1:-1;20180:126:0;;;;;:::i;:::-;;:::i;22229:245::-;;;;;;;;;;-1:-1:-1;22229:245:0;;;;;:::i;:::-;;:::i;2550:87::-;;;;;;;;;;-1:-1:-1;2623:6:0;;;;2550:87;;;2723:42:1;2711:55;;;2693:74;;2681:2;2666:18;2550:87:0;2547:226:1;24106:288:0;;;;;;;;;;-1:-1:-1;24106:288:0;;;;;:::i;:::-;;:::i;20714:122::-;;;;;;;;;;;;;:::i;19678:93::-;;;;;;;;;;-1:-1:-1;19742:21:0;19678:93;;23579:237;;;;;;;;;;-1:-1:-1;23579:237:0;;;;;:::i;:::-;;:::i;19930:87::-;;;;;;;;;;;;;:::i;18775:27::-;;;;;;;;;;;;;;;;18901:75;;;;;;;;;;-1:-1:-1;18901:75:0;;;;;;;;18744:24;;;;;;;;;;;;;;;;23049:522;;;;;;;;;;-1:-1:-1;23049:522:0;;;;;:::i;:::-;;:::i;21761:249::-;;;;;;;;;;-1:-1:-1;21761:249:0;;;;;:::i;:::-;;:::i;19779:128::-;;;;;;;;;;;;;:::i;18809:41::-;;;;;;;;;;;;;;;;3459:201;;;;;;;;;;-1:-1:-1;3459:201:0;;;;;:::i;:::-;;:::i;22018:203::-;;;;;;;;;;-1:-1:-1;22018:203:0;;;;;:::i;:::-;;:::i;23824:274::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;;;;;;;;;23953:17:::1;:15;:17::i;:::-;23935:14;:35;;23927:87;;;::::0;::::1;::::0;;5959:2:1;23927:87:0::1;::::0;::::1;5941:21:1::0;5998:2;5978:18;;;5971:30;6037:34;6017:18;;;6010:62;6108:9;6088:18;;;6081:37;6135:19;;23927:87:0::1;5757:403:1::0;23927:87:0::1;24032:15;::::0;24025:65:::1;::::0;24032:15:::1;;24062:11:::0;24075:14;24025:36:::1;:65::i;:::-;23824:274:::0;;:::o;20441:107::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20510:22:::1;;20535:5;20510:22:::0;;;:12:::1;:22;::::0;;;;:30;;;::::1;::::0;;20441:107::o;22482:201::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18;;;;22618:14:::3;22602:12;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;22643:32:0::3;::::0;:24:::3;::::0;::::3;::::0;:32;::::3;;;::::0;22668:6;;22643:32:::3;::::0;;;22668:6;22643:24;:32;::::3;;;;;;;;;;;;;::::0;::::3;;;;;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;-1:-1:-1;;22482:201:0:o;22691:350::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;944:1:::1;1542:7;;:19;;1534:63;;;::::0;::::1;::::0;;7059:2:1;1534:63:0::1;::::0;::::1;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::1;6857:355:1::0;1534:63:0::1;944:1;1675:7;:18:::0;;;22790:10:::2;22776:25:::0;;:13:::2;:25;::::0;;;;;22820:12;22812:42:::2;;;::::0;::::2;::::0;;7738:2:1;22812:42:0::2;::::0;::::2;7720:21:1::0;7777:2;7757:18;;;7750:30;7816:19;7796:18;;;7789:47;7853:18;;22812:42:0::2;7536:341:1::0;22812:42:0::2;22865:38;::::0;22873:10:::2;::::0;22865:38;::::2;;;::::0;22894:8;;22865:38:::2;::::0;;;22894:8;22873:10;22865:38;::::2;;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;22928:10:0::2;22942:1;22914:25:::0;;;:13:::2;:25;::::0;;;;:29;;;22954:15:::2;:27:::0;;22973:8;;22942:1;22954:27:::2;::::0;22973:8;;22954:27:::2;:::i;:::-;::::0;;;-1:-1:-1;;22997:36:0::2;::::0;160:25:1;;;23012:10:0::2;::::0;22997:36:::2;::::0;148:2:1;133:18;22997:36:0::2;;;;;;;-1:-1:-1::0;900:1:0::1;1854:7;:22:::0;22691:350::o;20577:129::-;20632:4;20683:15;;20668:12;;20656:9;19742:21;;19678:93;20656:9;:24;;;;:::i;:::-;:42;;;;:::i;:::-;20649:49;;20577:129;:::o;20844:909::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18:::0;21040:11:::3;:9;:11::i;:::-;21022:14;:29;;21014:61;;;::::0;::::3;::::0;;8084:2:1;21014:61:0::3;::::0;::::3;8066:21:1::0;8123:2;8103:18;;;8096:30;8162:21;8142:18;;;8135:49;8201:18;;21014:61:0::3;7882:343:1::0;21014:61:0::3;21086:20;21109:10;:6:::0;21118:1:::3;21109:10;:::i;:::-;21086:33;;21157:17;:15;:17::i;:::-;21138:15;:36;;21130:75;;;::::0;::::3;::::0;;8665:2:1;21130:75:0::3;::::0;::::3;8647:21:1::0;8704:2;8684:18;;;8677:30;8743:28;8723:18;;;8716:56;8789:18;;21130:75:0::3;8463:350:1::0;21130:75:0::3;21231:4;21220:15:::0;::::3;;;21216:289;;;21260:21;::::0;::::3;;::::0;;;:13:::3;:21;::::0;;;;;:31;-1:-1:-1;21260:31:0::3;21252:60;;;::::0;::::3;::::0;;9020:2:1;21252:60:0::3;::::0;::::3;9002:21:1::0;9059:2;9039:18;;;9032:30;9098:18;9078;;;9071:46;9134:18;;21252:60:0::3;8818:340:1::0;21252:60:0::3;21327:21;::::0;::::3;;::::0;;;:13:::3;:21;::::0;;;;:31;;21352:6;;21327:21;:31:::3;::::0;21352:6;;21327:31:::3;:::i;:::-;;;;;;;;21392:6;21373:15;;:25;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;21216:289:0::3;::::0;-1:-1:-1;21216:289:0::3;;21458:9;21448:6;:19;21440:53;;;::::0;::::3;::::0;;9365:2:1;21440:53:0::3;::::0;::::3;9347:21:1::0;9404:2;9384:18;;;9377:30;9443:23;9423:18;;;9416:51;9484:18;;21440:53:0::3;9163:345:1::0;21440:53:0::3;21541:14;21525:12;;:30;;;;;;;:::i;:::-;;;;;;;;21599:22;21566:29;;:55;;;;;;;:::i;:::-;;;;;;;;21651:22;21632:15;;:41;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21691:15:0::3;::::0;21684:61:::3;::::0;21691:15:::3;;21721:6:::0;21729:15;21684:36:::3;:61::i;:::-;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;-1:-1:-1;;;;20844:909:0:o;20025:147::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20118:21:::1;:46:::0;20025:147::o;20330:103::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20396:22:::1;;;::::0;;;:12:::1;:22;::::0;;;;:29;;;::::1;20421:4;20396:29;::::0;;20330:103::o;3201:::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;3266:30:::1;3293:1;3266:18;:30::i;:::-;3201:103::o:0;20180:126::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20264:15:::1;:34:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;20180:126::o;22229:245::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18:::0;22355:17:::3;:15;:17::i;:::-;22345:6;:27;;22337:66;;;::::0;::::3;::::0;;8665:2:1;22337:66:0::3;::::0;::::3;8647:21:1::0;8704:2;8684:18;;;8677:30;8743:28;8723:18;;;8716:56;8789:18;;22337:66:0::3;8463:350:1::0;22337:66:0::3;22421:15;::::0;22414:52:::3;::::0;22421:15:::3;;22451:6:::0;22459;22414:36:::3;:52::i;:::-;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;22229:245::o;24106:288::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;24253:38:::1;::::0;;;;24285:4:::1;24253:38;::::0;::::1;2693:74:1::0;24253:23:0::1;::::0;::::1;::::0;::::1;::::0;2666:18:1;;24253:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24235:14;:56;;24227:93;;;::::0;::::1;::::0;;10037:2:1;24227:93:0::1;::::0;::::1;10019:21:1::0;10076:2;10056:18;;;10049:30;10115:26;10095:18;;;10088:54;10159:18;;24227:93:0::1;9835:348:1::0;24227:93:0::1;24331:55;:26;::::0;::::1;24358:11:::0;24371:14;24331:26:::1;:55::i;:::-;24106:288:::0;;;:::o;20714:122::-;20756:4;20807:21;;20780:24;:22;:24::i;:::-;:48;;;;:::i;23579:237::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;23708:24:::1;:22;:24::i;:::-;23690:14;:42;;23682:79;;;::::0;::::1;::::0;;10037:2:1;23682:79:0::1;::::0;::::1;10019:21:1::0;10076:2;10056:18;;;10049:30;10115:26;10095:18;;;10088:54;10159:18;;23682:79:0::1;9835:348:1::0;23682:79:0::1;23772:36;::::0;:20:::1;::::0;::::1;::::0;:36;::::1;;;::::0;23793:14;;23772:36:::1;::::0;;;23793:14;23772:20;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;19930:87:::0;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;20000:9:::1;::::0;;19987:22;;::::1;20000:9:::0;;;;::::1;;;19999:10;19987:22:::0;;::::1;;::::0;;19930:87::o;23049:522::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;23184:1:::1;23152:29;;:33;23144:70;;;::::0;::::1;::::0;;10669:2:1;23144:70:0::1;::::0;::::1;10651:21:1::0;10708:2;10688:18;;;10681:30;10747:26;10727:18;;;10720:54;10791:18;;23144:70:0::1;10467:348:1::0;23144:70:0::1;23241:16:::0;;23288:29:::1;::::0;23225:13:::1;::::0;23288:40:::1;::::0;23241:16;;23288:40:::1;:::i;:::-;23268:60;;23344:6;23339:106;23360:8;23356:1;:12;23339:106;;;23421:12;23390:13;:27;23404:9;23414:1;23404:12;;;;;;;;:::i;:::-;;;;;;;23390:27;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;23370:3:0;;-1:-1:-1;23370:3:0::1;::::0;::::1;:::i;:::-;;;;23339:106;;;-1:-1:-1::0;23489:29:0::1;::::0;23460:59:::1;::::0;;11383:25:1;;;11439:2;11424:18;;11417:34;;;;23460:59:0::1;::::0;11356:18:1;23460:59:0::1;;;;;;;-1:-1:-1::0;;23562:1:0::1;23530:29;:33:::0;-1:-1:-1;23049:522:0:o;21761:249::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18;;;;21894:14:::3;21878:12;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;21930:4:0::3;21923:11:::0;::::3;;;21919:84;;;21951:40;::::0;:24:::3;::::0;::::3;::::0;:40;::::3;;;::::0;21976:14;;21951:40:::3;::::0;;;21976:14;21951:24;:40;::::3;;;;;;;;;;;;;::::0;::::3;;;;21919:84;-1:-1:-1::0;;900:1:0::2;1854:7;:22:::0;-1:-1:-1;21761:249:0:o;19779:128::-;19858:15;;19851:48;;;;;19893:4;19851:48;;;2693:74:1;19827:4:0;;19858:15;;;19851:33;;2666:18:1;;19851:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3459:201::-;2623:6;;2770:23;2623:6;2004:10;2770:23;2762:68;;;;;;;5598:2:1;2762:68:0;;;5580:21:1;;;5617:18;;;5610:30;5676:34;5656:18;;;5649:62;5728:18;;2762:68:0;5396:356:1;2762:68:0;3548:22:::1;::::0;::::1;3540:73;;;::::0;::::1;::::0;;11664:2:1;3540:73:0::1;::::0;::::1;11646:21:1::0;11703:2;11683:18;;;11676:30;11742:34;11722:18;;;11715:62;11813:8;11793:18;;;11786:36;11839:19;;3540:73:0::1;11462:402:1::0;3540:73:0::1;3624:28;3643:8;3624:18;:28::i;:::-;3459:201:::0;:::o;22018:203::-;19599:9;;;;;;;;:17;;;19591:44;;;;;;;6367:2:1;19591:44:0;;;6349:21:1;6406:2;6386:18;;;6379:30;6445:16;6425:18;;;6418:44;6479:18;;19591:44:0;6165:338:1;19591:44:0;19487:10:::1;19474:24;::::0;;;:12:::1;:24;::::0;;;;;::::1;;:32;;:24:::0;:32:::1;19466:65;;;::::0;::::1;::::0;;6710:2:1;19466:65:0::1;::::0;::::1;6692:21:1::0;6749:2;6729:18;;;6722:30;6788:22;6768:18;;;6761:50;6828:18;;19466:65:0::1;6508:344:1::0;19466:65:0::1;944:1:::2;1542:7;;:19;;1534:63;;;::::0;::::2;::::0;;7059:2:1;1534:63:0::2;::::0;::::2;7041:21:1::0;7098:2;7078:18;;;7071:30;7137:33;7117:18;;;7110:61;7188:18;;1534:63:0::2;6857:355:1::0;1534:63:0::2;944:1;1675:7;:18:::0;22135:11:::3;:9;:11::i;:::-;22125:6;:21;;22117:53;;;::::0;::::3;::::0;;8084:2:1;22117:53:0::3;::::0;::::3;8066:21:1::0;8123:2;8103:18;;;8096:30;8162:21;8142:18;;;8135:49;8201:18;;22117:53:0::3;7882:343:1::0;22117:53:0::3;22181:32;::::0;:24:::3;::::0;::::3;::::0;:32;::::3;;;::::0;22206:6;;22181:32:::3;::::0;;;22206:6;22181:24;:32;::::3;;;;;;;;;;;;;::::0;::::3;;;;14996:211:::0;15140:58;;;12073:42:1;12061:55;;15140:58:0;;;12043:74:1;12133:18;;;;12126:34;;;15140:58:0;;;;;;;;;;12016:18:1;;;;15140:58:0;;;;;;;;;;15163:23;15140:58;;;15113:86;;15133:5;;15113:19;:86::i;3820:191::-;3913:6;;;;3930:17;;;;;;;;;;;3963:40;;3913:6;;;3930:17;3913:6;;3963:40;;3894:16;;3963:40;3883:128;3820:191;:::o;17569:716::-;17993:23;18019:69;18047:4;18019:69;;;;;;;;;;;;;;;;;18027:5;18019:27;;;;:69;;;;;:::i;:::-;18103:17;;17993:95;;-1:-1:-1;18103:21:0;18099:179;;18200:10;18189:30;;;;;;;;;;;;:::i;:::-;18181:85;;;;;;;12623:2:1;18181:85:0;;;12605:21:1;12662:2;12642:18;;;12635:30;12701:34;12681:18;;;12674:62;12772:12;12752:18;;;12745:40;12802:19;;18181:85:0;12421:406:1;10412:229:0;10549:12;10581:52;10603:6;10611:4;10617:1;10620:12;10581:21;:52::i;:::-;10574:59;;10412:229;;;;;;:::o;11532:510::-;11702:12;11760:5;11735:21;:30;;11727:81;;;;;;;13034:2:1;11727:81:0;;;13016:21:1;13073:2;13053:18;;;13046:30;13112:34;13092:18;;;13085:62;13183:8;13163:18;;;13156:36;13209:19;;11727:81:0;12832:402:1;11727:81:0;7962:19;;;;11819:60;;;;;;;13441:2:1;11819:60:0;;;13423:21:1;13480:2;13460:18;;;13453:30;13519:31;13499:18;;;13492:59;13568:18;;11819:60:0;13239:353:1;11819:60:0;11893:12;11907:23;11934:6;:11;;11953:5;11960:4;11934:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11892:73;;;;11983:51;12000:7;12009:10;12021:12;11983:16;:51::i;:::-;11976:58;11532:510;-1:-1:-1;;;;;;;11532:510:0:o;14218:712::-;14368:12;14397:7;14393:530;;;-1:-1:-1;14428:10:0;14421:17;;14393:530;14542:17;;:21;14538:374;;14740:10;14734:17;14801:15;14788:10;14784:2;14780:19;14773:44;14538:374;14883:12;14876:20;;;;;;;;;;;:::i;196:154:1:-;282:42;275:5;271:54;264:5;261:65;251:93;;340:1;337;330:12;355:134;423:20;;452:31;423:20;452:31;:::i;:::-;355:134;;;:::o;494:315::-;562:6;570;623:2;611:9;602:7;598:23;594:32;591:52;;;639:1;636;629:12;591:52;678:9;665:23;697:31;722:5;697:31;:::i;:::-;747:5;799:2;784:18;;;;771:32;;-1:-1:-1;;;494:315:1:o;814:247::-;873:6;926:2;914:9;905:7;901:23;897:32;894:52;;;942:1;939;932:12;894:52;981:9;968:23;1000:31;1025:5;1000:31;:::i;1066:383::-;1143:6;1151;1159;1212:2;1200:9;1191:7;1187:23;1183:32;1180:52;;;1228:1;1225;1218:12;1180:52;1267:9;1254:23;1286:31;1311:5;1286:31;:::i;:::-;1336:5;1388:2;1373:18;;1360:32;;-1:-1:-1;1439:2:1;1424:18;;;1411:32;;1066:383;-1:-1:-1;;;1066:383:1:o;1454:118::-;1540:5;1533:13;1526:21;1519:5;1516:32;1506:60;;1562:1;1559;1552:12;1577:588;1669:6;1677;1685;1693;1701;1754:3;1742:9;1733:7;1729:23;1725:33;1722:53;;;1771:1;1768;1761:12;1722:53;1810:9;1797:23;1829:31;1854:5;1829:31;:::i;:::-;1879:5;-1:-1:-1;1931:2:1;1916:18;;1903:32;;-1:-1:-1;1987:2:1;1972:18;;1959:32;2000:30;1959:32;2000:30;:::i;:::-;1577:588;;;;-1:-1:-1;2049:7:1;;2103:2;2088:18;;2075:32;;-1:-1:-1;2154:3:1;2139:19;2126:33;;1577:588;-1:-1:-1;;1577:588:1:o;2170:180::-;2229:6;2282:2;2270:9;2261:7;2257:23;2253:32;2250:52;;;2298:1;2295;2288:12;2250:52;-1:-1:-1;2321:23:1;;2170:180;-1:-1:-1;2170:180:1:o;2778:456::-;2855:6;2863;2871;2924:2;2912:9;2903:7;2899:23;2895:32;2892:52;;;2940:1;2937;2930:12;2892:52;2979:9;2966:23;2998:31;3023:5;2998:31;:::i;:::-;3048:5;-1:-1:-1;3100:2:1;3085:18;;3072:32;;-1:-1:-1;3156:2:1;3141:18;;3128:32;3169:33;3128:32;3169:33;:::i;:::-;3221:7;3211:17;;;2778:456;;;;;:::o;3567:184::-;3619:77;3616:1;3609:88;3716:4;3713:1;3706:15;3740:4;3737:1;3730:15;3756:1180;3840:6;3871:2;3914;3902:9;3893:7;3889:23;3885:32;3882:52;;;3930:1;3927;3920:12;3882:52;3970:9;3957:23;3999:18;4040:2;4032:6;4029:14;4026:34;;;4056:1;4053;4046:12;4026:34;4094:6;4083:9;4079:22;4069:32;;4139:7;4132:4;4128:2;4124:13;4120:27;4110:55;;4161:1;4158;4151:12;4110:55;4197:2;4184:16;4219:2;4215;4212:10;4209:36;;;4225:18;;:::i;:::-;4271:2;4268:1;4264:10;4303:2;4297:9;4362:66;4357:2;4353;4349:11;4345:84;4337:6;4333:97;4480:6;4468:10;4465:22;4460:2;4448:10;4445:18;4442:46;4439:72;;;4491:18;;:::i;:::-;4527:2;4520:22;4577:18;;;4611:15;;;;-1:-1:-1;4653:11:1;;;4649:20;;;4681:19;;;4678:39;;;4713:1;4710;4703:12;4678:39;4737:11;;;;4757:148;4773:6;4768:3;4765:15;4757:148;;;4839:23;4858:3;4839:23;:::i;:::-;4827:36;;4790:12;;;;4883;;;;4757:148;;;4924:6;3756:1180;-1:-1:-1;;;;;;;;3756:1180:1:o;4941:450::-;5015:6;5023;5031;5084:2;5072:9;5063:7;5059:23;5055:32;5052:52;;;5100:1;5097;5090:12;5052:52;5139:9;5126:23;5158:31;5183:5;5158:31;:::i;:::-;5208:5;-1:-1:-1;5260:2:1;5245:18;;5232:32;;-1:-1:-1;5316:2:1;5301:18;;5288:32;5329:30;5288:32;5329:30;:::i;7217:184::-;7269:77;7266:1;7259:88;7366:4;7363:1;7356:15;7390:4;7387:1;7380:15;7406:125;7446:4;7474:1;7471;7468:8;7465:34;;;7479:18;;:::i;:::-;-1:-1:-1;7516:9:1;;7406:125::o;8230:228::-;8270:7;8396:1;8328:66;8324:74;8321:1;8318:81;8313:1;8306:9;8299:17;8295:105;8292:131;;;8403:18;;:::i;:::-;-1:-1:-1;8443:9:1;;8230:228::o;9513:128::-;9553:3;9584:1;9580:6;9577:1;9574:13;9571:39;;;9590:18;;:::i;:::-;-1:-1:-1;9626:9:1;;9513:128::o;9646:184::-;9716:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:52;;;9785:1;9782;9775:12;9737:52;-1:-1:-1;9808:16:1;;9646:184;-1:-1:-1;9646:184:1:o;10188:274::-;10228:1;10254;10244:189;;10289:77;10286:1;10279:88;10390:4;10387:1;10380:15;10418:4;10415:1;10408:15;10244:189;-1:-1:-1;10447:9:1;;10188:274::o;10820:184::-;10872:77;10869:1;10862:88;10969:4;10966:1;10959:15;10993:4;10990:1;10983:15;11009:195;11048:3;11079:66;11072:5;11069:77;11066:103;;;11149:18;;:::i;:::-;-1:-1:-1;11196:1:1;11185:13;;11009:195::o;12171:245::-;12238:6;12291:2;12279:9;12270:7;12266:23;12262:32;12259:52;;;12307:1;12304;12297:12;12259:52;12339:9;12333:16;12358:28;12380:5;12358:28;:::i;13597:258::-;13669:1;13679:113;13693:6;13690:1;13687:13;13679:113;;;13769:11;;;13763:18;13750:11;;;13743:39;13715:2;13708:10;13679:113;;;13810:6;13807:1;13804:13;13801:48;;;13845:1;13836:6;13831:3;13827:16;13820:27;13801:48;;13597:258;;;:::o;13860:274::-;13989:3;14027:6;14021:13;14043:53;14089:6;14084:3;14077:4;14069:6;14065:17;14043:53;:::i;:::-;14112:16;;;;;13860:274;-1:-1:-1;;13860:274:1:o;14139:442::-;14288:2;14277:9;14270:21;14251:4;14320:6;14314:13;14363:6;14358:2;14347:9;14343:18;14336:34;14379:66;14438:6;14433:2;14422:9;14418:18;14413:2;14405:6;14401:15;14379:66;:::i;:::-;14497:2;14485:15;14502:66;14481:88;14466:104;;;;14572:2;14462:113;;14139:442;-1:-1:-1;;14139:442:1:o

Swarm Source

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