Contract 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052

 

Contract Overview

Balance:
0.000412365900101744 BNB

BNB Value:
$0.25 (@ $613.19/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xba225a655c075ad7afdc2edb78d403144b2e8b88555e018440907d883e3f570cApprove122238452021-10-30 15:48:2729 days 10 hrs ago0xb873b43837efa2cb7cd05c4ae406b276dc07cae6 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.00007259
0xf4131e8a5ea1acbdc8ed3a18d70b28a13ba97f5df8c488081dcad6f9f1d1a2eeApprove103435232021-08-25 17:57:4895 days 8 hrs ago0x7006cbfc5df0e32d6ce9314f5e743388b74f6de3 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.00007259
0x2ad93ce5d26902fe6735265525ecdb645aa7efdf4508698c080aa83dd08e696bApprove102533922021-08-22 14:30:3798 days 11 hrs ago0x385121a132c9dbce9c9c1a087767cf7a52c66c9f IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000101626
0xc3e5d3cb60140b242477d8f4414cbae4cc143b4f99de68380ab408a18511b624Approve102533492021-08-22 14:28:2898 days 11 hrs ago0x385121a132c9dbce9c9c1a087767cf7a52c66c9f IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0x75adb82d3a2e098a182803e51dd8cba3d011bae71d31e2b0a71b12b3ef28782cApprove102532982021-08-22 14:25:5598 days 11 hrs ago0x557b0c7d697e02c8e363661d1a34a441a14f291e IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0xc5fd494b6f67b17e84bd4f8066c27f91d132430262f6646f58040d25c5831c6aClaim102532372021-08-22 14:22:5298 days 12 hrs ago0x686bc7c9a32acbdbbd5bb156fa3a5c7b129b649b IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x6c18bfefa09d2ab4e44625dbd7315078c7d3fbfdba930e6fe7f031c278c1a37dClaim102532362021-08-22 14:22:4998 days 12 hrs ago0xa7055fb0bfcdb22f87456cb73c8fc9e8ec84fb13 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x584aeed5eed88cf5583c079b5a635f2ff90046a163b54224710679db1db7f175Claim102532362021-08-22 14:22:4998 days 12 hrs ago0x806d9e5ccb7b71bbae8a483a817b2accdc5f431e IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0xe488bbf9ed37897814af4b816e578b560092121a6f64618609b9ef79a8c2d3e2Claim102532362021-08-22 14:22:4998 days 12 hrs ago0xbc110785fad61dcbd416a88922afd34143e6469d IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x17d3a7ed3e764ab814f438d5fb98850c289e151dda92fc055fd944b8b8798cffClaim102532362021-08-22 14:22:4998 days 12 hrs ago0x60137dffc2862cd03d76c0d9b12991e1fdaf3964 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x3341f626a1e0e20f31235ea6ca191be80e2b5aef3020701189d25f43389cb2e5Claim102532362021-08-22 14:22:4998 days 12 hrs ago0x24570d1d2df90de3b713737a6c4317ecd4760e90 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x25d859bcf316ecaa69093d0846012bd1c9ef0ada67c243a28a8329fb952d5074Claim102532362021-08-22 14:22:4998 days 12 hrs ago0xb137f6d13c7958281fdaa9abdf02e85cf0a32637 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x861647e2d7431f2103953b6e96f9db86936dca189ba8f254ae6b423893206a30Claim102532362021-08-22 14:22:4998 days 12 hrs ago0x245e30b5b6e0393689c28575e644f63a9bd96368 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x00b2a2249e7c44e27671aa06c5799ee8b427f85741c2a4a6588941c2672421acClaim102532362021-08-22 14:22:4998 days 12 hrs ago0x349f074703151ad8fb4c86d92275f57ae7e1841c IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0xe36d3f8ca51a4b53fc73b5d4cc2855a016c7c436ddad70d48deeba6e2aa5cccdClaim102532362021-08-22 14:22:4998 days 12 hrs ago0xca0e63985d7ba4adacaf2de4d1f56af9d0f2d106 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000319665
0x775c9e022ea4261075647c01e7d741a32007d3ee0b2443126d3533a16df1d422Approve102532272021-08-22 14:22:2298 days 12 hrs ago0x0a4d8dad5610649aa94950e9545f677b604024e7 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0xc0a0597bb3c3b266c312a5c4349d5ecd18ef09afa5a019f2a1a731c0fe3398c6Approve102532262021-08-22 14:22:1998 days 12 hrs ago0xfd18c49f9848a5c4f6816b4fb4a8f3b067460eda IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0x4fa720dd875c2522485c2c34b959b1f48517760057563a52151d8104a3611263Approve102532112021-08-22 14:21:3498 days 12 hrs ago0x6dad0da7ae124a26918dab53ffc2d18d4dd07784 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0x191324e1767ca0fe74d36e9d9714311295e7614097d28e708035207295d79245Approve102532002021-08-22 14:21:0198 days 12 hrs ago0x4f886319ef8ba47f09b0b1c00413427ddf8be8a6 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.00007259
0xe090a7e25b01c0db962953a47171f41c6caa6ace732f256e14d0f9d4d9fb0ae1Approve102531992021-08-22 14:20:5898 days 12 hrs ago0xdd8cd8347790035ed3c12d4395b21b2581189483 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0xd9eeaa76b59c439336efbb584d0ce891d38d1306ea3165526eefaef965775d62Update Trading E...102531852021-08-22 14:20:1698 days 12 hrs ago0x032df1794a3ee23f901216b10926affe257f3eb2 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000141535
0x8b07946def840c8c97964b353d6f66c67ddaf8cd324d5d0f7b7ff9e0c47e36e7Approve102531732021-08-22 14:19:4098 days 12 hrs ago0x37d9b0407341ca1ecf91b12b08549232072cd3a9 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0xd6f11a6cfc1c4a9ea1abf69a02238b4cffc7eebc1c536870e5a83d4001767af0Approve102531672021-08-22 14:19:2298 days 12 hrs ago0xf6e9afd34de12b1174fa425c4486760edcc30ef2 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000310933
0xcafec6fcbade195b340a7375f9c83aa5a76e4a25bb94592ad086188ac5b2a276Approve102531642021-08-22 14:19:1398 days 12 hrs ago0x973ff97c5c0bf4d8a4ae112afbaee8f5c7b07f15 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
0x00e614cf3b138fc85674b534f665133d0d6a0ae5ac06bb9280ddbf67ea6e9769Approve102531502021-08-22 14:18:3198 days 12 hrs ago0x910e335235252c33228fd564b254fedc733135c9 IN  0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520 BNB0.000222095
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xbe0be95be18e4f0096b1db69e8637528992f96a8a048989c7c36d9f20e2df6ad102531852021-08-22 14:20:1698 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 PancakeSwap: Router v20.000009416097447712 BNB
0xbe0be95be18e4f0096b1db69e8637528992f96a8a048989c7c36d9f20e2df6ad102531852021-08-22 14:20:1698 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520xd346c025618ab2bfc5481b44a0f4e727e097f1790.000056496584686276 BNB
0xbe0be95be18e4f0096b1db69e8637528992f96a8a048989c7c36d9f20e2df6ad102531852021-08-22 14:20:1698 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000188321948954255 BNB
0xbe0be95be18e4f0096b1db69e8637528992f96a8a048989c7c36d9f20e2df6ad102531852021-08-22 14:20:1698 days 12 hrs ago PancakeSwap: Router v2 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520.000263650728535958 BNB
0x2d33a0f1962312ec7c115c03a840a72115ad41b042394c2ba613a2a350320fa7102531852021-08-22 14:20:1698 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000188321948954255 BNB
0x2d33a0f1962312ec7c115c03a840a72115ad41b042394c2ba613a2a350320fa7102531852021-08-22 14:20:1698 days 12 hrs ago PancakeSwap: Router v2 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520.000263650728535958 BNB
0x61ca54562c53a7b0ff01dc699cae5846b406d86a3b813fe32de845196f79f544102531842021-08-22 14:20:1398 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 PancakeSwap: Router v20.000009505312351955 BNB
0x61ca54562c53a7b0ff01dc699cae5846b406d86a3b813fe32de845196f79f544102531842021-08-22 14:20:1398 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520xd346c025618ab2bfc5481b44a0f4e727e097f1790.000057031874111734 BNB
0x61ca54562c53a7b0ff01dc699cae5846b406d86a3b813fe32de845196f79f544102531842021-08-22 14:20:1398 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000190106247039115 BNB
0x61ca54562c53a7b0ff01dc699cae5846b406d86a3b813fe32de845196f79f544102531842021-08-22 14:20:1398 days 12 hrs ago PancakeSwap: Router v2 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520.000266148745854761 BNB
0x8aadc8e8a632e8567746b75120330392a03b4c4b5c149b110ecdde101105ae05102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 PancakeSwap: Router v20.000009685932746063 BNB
0x8aadc8e8a632e8567746b75120330392a03b4c4b5c149b110ecdde101105ae05102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520xd346c025618ab2bfc5481b44a0f4e727e097f1790.000058115596476379 BNB
0x8aadc8e8a632e8567746b75120330392a03b4c4b5c149b110ecdde101105ae05102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000193718654921264 BNB
0x8aadc8e8a632e8567746b75120330392a03b4c4b5c149b110ecdde101105ae05102531802021-08-22 14:20:0198 days 12 hrs ago PancakeSwap: Router v2 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520.00027120611688977 BNB
0xd32dcf99eac92e0758d028d7b23e5be356be272a08ea658cd2f30cf8d0ec38a2102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 PancakeSwap: Router v20.000009871753058161 BNB
0xd32dcf99eac92e0758d028d7b23e5be356be272a08ea658cd2f30cf8d0ec38a2102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520xd346c025618ab2bfc5481b44a0f4e727e097f1790.000059230518348967 BNB
0xd32dcf99eac92e0758d028d7b23e5be356be272a08ea658cd2f30cf8d0ec38a2102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000197435061163225 BNB
0xd32dcf99eac92e0758d028d7b23e5be356be272a08ea658cd2f30cf8d0ec38a2102531802021-08-22 14:20:0198 days 12 hrs ago PancakeSwap: Router v2 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520.000276409085628516 BNB
0x6ef2dd4a9fef6c34cfbd14f04bbee1be650f6d34879bc82fb93139f6ca3b3e94102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 PancakeSwap: Router v20.00001006297486849 BNB
0x6ef2dd4a9fef6c34cfbd14f04bbee1be650f6d34879bc82fb93139f6ca3b3e94102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520xd346c025618ab2bfc5481b44a0f4e727e097f1790.000060377849210942 BNB
0x6ef2dd4a9fef6c34cfbd14f04bbee1be650f6d34879bc82fb93139f6ca3b3e94102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000201259497369807 BNB
0x6ef2dd4a9fef6c34cfbd14f04bbee1be650f6d34879bc82fb93139f6ca3b3e94102531802021-08-22 14:20:0198 days 12 hrs ago PancakeSwap: Router v2 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520.000281763296317731 BNB
0xaef2aa7916b356c0793db4e967125f3dfe68135a49066542321393aa01acd0e0102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 PancakeSwap: Router v20.00001006297486849 BNB
0xaef2aa7916b356c0793db4e967125f3dfe68135a49066542321393aa01acd0e0102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd0520xd346c025618ab2bfc5481b44a0f4e727e097f1790.000060377849210942 BNB
0xaef2aa7916b356c0793db4e967125f3dfe68135a49066542321393aa01acd0e0102531802021-08-22 14:20:0198 days 12 hrs ago 0xd44adb25b4049e8c72f304bcb0cb4f1bb91cd052 0xb43bb34249ecf681860fb5a578d50d9c7ba937a00.000201259497369807 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ULTIMATEBTC

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-08-20
*/

/**
 *ULTIMATE $BITCOIN || TO THE MARS
██╗░░░██╗██████╗░████████╗░█████╗░
██║░░░██║██╔══██╗╚══██╔══╝██╔══██╗
██║░░░██║██████╦╝░░░██║░░░██║░░╚═╝
██║░░░██║██╔══██╗░░░██║░░░██║░░██╗
╚██████╔╝██████╦╝░░░██║░░░╚█████╔╝
░╚═════╝░╚═════╝░░░░╚═╝░░░░╚════╝░
*/

/**
 *10% BTCB REWARDS
 * 1% LIQUIDITY
 * 3% MARKETING AND DEVELOPMENT
 * 
 * IF YOU MISSED OUT ON THE OTHER BABIES,TRUST ULTIMATE BITCOIN  $UBTC YOU DO NOT WANT TO MISS OUT ON THIS ONE!!!
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.7.6;


library Address {
   
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }


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

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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");
    }

    /**
     * @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");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        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

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/TargetToken/solidity/issues/2691
        return msg.data;
    }
}


/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}


interface IERC20 {

    function totalSupply() external view returns (uint256);

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

   
    function transfer(address recipient, uint256 amount) external returns (bool);

  
    function allowance(address owner, address spender) external view returns (uint256);

  
    function approve(address spender, uint256 amount) external returns (bool);

   
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @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);
}


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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IERC20 TargetToken;
    address WBNB;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router, address _eth) {
        router = IDEXRouter(_router);
        TargetToken = IERC20(_eth);
        WBNB = router.WETH();
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = TargetToken.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(TargetToken);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = TargetToken.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }

    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            TargetToken.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract ULTIMATEBTC is IERC20, Ownable {
    using SafeMath for uint256;

    address TargetToken;
    address WBNB;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ULTIMATE BITCOIN";
    string constant _symbol = "$UBTC";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 20) / 1000; //2% of total supply
    uint256 public _maxWalletToken = (_totalSupply * 4) / 100; //4% of total supply
    

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;
    mapping (address => bool) private canTransferBeforeTradingIsEnabled;
    mapping (address => uint256) lastEntryTimes;

    uint256 minBetweenTwoEntry = 3 seconds;
    uint256 minFirstTransaction = 1 seconds;

    uint256 liquidityFee = 1;
    uint256 reflectionFee = 10;
    uint256 marketingFee = 3;
    uint256 totalFee = 14;
    uint256 feeDenominator = 100;
    
    uint256 public sellFeeIncreaseFactor = 130;


    address public autoLiquidityReceiver;
    address public marketingFeeReceiver = address(0xD346C025618aB2bFc5481B44a0f4e727E097F179);
    
    IDEXRouter public router;
    address public pair;

    uint256 buybackMultiplierNumerator = 120;
    uint256 buybackMultiplierDenominator = 100;
    uint256 buybackMultiplierTriggeredAt;
    uint256 buybackMultiplierLength = 30 minutes;

    bool public autoBuybackEnabled = false;
    uint256 autoBuybackCap;
    uint256 autoBuybackAccumulator;
    uint256 autoBuybackAmount;
    uint256 autoBuybackBlockPeriod;
    uint256 autoBuybackBlockLast;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    bool public isWhitelist = true;
    uint256 public launchAt;
    uint256 public swapThreshold = _totalSupply / 200000; // 0.005%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        
        // TargetToken = 0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c;
        // router = IDEXRouter(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3);
        
        TargetToken =  0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c;  //btc rewards
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        
        WBNB = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        distributor = new DividendDistributor(address(router), TargetToken);

        isFeeExempt[autoLiquidityReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[owner()] = true;
        isFeeExempt[address(this)] = true;
        
        isTxLimitExempt[autoLiquidityReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;
        
        isDividendExempt[pair] = true;
        isDividendExempt[address(router)] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;
        isDividendExempt[ZERO] = true;

        autoLiquidityReceiver = owner();
        
        address devWallet = autoLiquidityReceiver;
        _balances[devWallet] = _totalSupply;
        emit Transfer(address(0), devWallet, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function whiteListCommunity(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            canTransferBeforeTradingIsEnabled[accounts[i]] = true;
        }
    }
    
    function updateTradingEnable(bool value) public onlyOwner{
        swapEnabled = value;
    }
    
    function openPublicTrading() public onlyOwner{
        isWhitelist = false;
        liquidityFee = 3;
        reflectionFee = 10;
        marketingFee = 3;
        totalFee = 16;
        _maxWalletToken = (_totalSupply * 1) / 100;
        launchAt = block.timestamp;
        swapEnabled = true;
    }
    
    function openWhitelistTrading() public onlyOwner{
        liquidityFee = 14;
        reflectionFee = 1;
        marketingFee = 1;
        totalFee = 16;
        _maxWalletToken = (_totalSupply * 4) / 1000;
        isWhitelist = true;
    }
    
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 entryTime = block.timestamp;
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!swapEnabled) {
            bool canTransfer = (sender == owner() || recipient == owner()) ||
            (isWhitelist && (canTransferBeforeTradingIsEnabled[sender] || canTransferBeforeTradingIsEnabled[recipient]));
            require(canTransfer, "This account cannot send tokens or buy token until trading is enabled");
        }
        
        bool isBuying = false;
        if (sender == pair || sender == address(router)){
            isBuying = true;
        }
        bool isSelling = false;
        if (recipient == pair || recipient == address(router)){
            isSelling = true;
        }
        
        checkTxLimit(sender, recipient, amount);

        if(shouldSwapBack()){ swapBack(); }
        if(shouldAutoBuyback()){ triggerAutoBuyback(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount, isBuying, isSelling, entryTime) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(!isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(!isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        try distributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if (
            sender != owner() &&
            recipient != owner() &&
            recipient != ZERO &&
            recipient != DEAD &&
            !isTxLimitExempt[recipient]
        ) {
            require(
                amount <= _maxTxAmount,
                "Transfer amount exceeds the maxTxAmount."
            );
            
            if(recipient != pair){
                uint256 contractBalanceRecepient = balanceOf(recipient);
                require(
                    contractBalanceRecepient + amount <= _maxWalletToken,
                    "Exceeds maximum wallet token amount."
                );
            }
        }
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isFeeExempt[sender] || isFeeExempt[recipient])
            return false;
        return true;
    }

    function takeFee(address sender, address recipient, uint256 amount, bool isBuying, bool isSelling, uint256 entryTime) internal returns (uint256) {
    	uint256 finalFee = totalFee;

        if(isBuying){
            bool isBot = (!canTransferBeforeTradingIsEnabled[recipient] && launchAt + minFirstTransaction >= entryTime) ||
                        (lastEntryTimes[recipient] + minBetweenTwoEntry >= entryTime);
            if(isBot)
                finalFee = feeDenominator.sub(1);
            lastEntryTimes[recipient] = block.timestamp;
        }
        // if sell, multiply by sellFeeIncreaseFactor
        else if(isSelling)
            finalFee = finalFee.mul(sellFeeIncreaseFactor).div(feeDenominator);

        uint256 feeAmount = amount.mul(finalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal returns (bool) {
        return msg.sender != pair
        && !inSwap
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        //uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 dynamicLiquidityFee = liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));

        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

    function shouldAutoBuyback() internal view returns (bool) {
        return msg.sender != pair
            && !inSwap
            && autoBuybackEnabled
            && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number
            && address(this).balance >= autoBuybackAmount;
    }

    function triggerManualBuyback(uint256 amount, bool triggerBuybackMultiplier) external onlyOwner {
        buyTokens(amount, DEAD);
        if(triggerBuybackMultiplier){
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
    }

    function clearBuybackMultiplier() external onlyOwner {
        buybackMultiplierTriggeredAt = 0;
    }

    function triggerAutoBuyback() internal {
        buyTokens(autoBuybackAmount, DEAD);
        autoBuybackBlockLast = block.number;
        autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount);
        if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period) external onlyOwner {
        autoBuybackEnabled = _enabled;
        autoBuybackCap = _cap;
        autoBuybackAccumulator = 0;
        autoBuybackAmount = _amount.div(100);
        autoBuybackBlockPeriod = _period;
        autoBuybackBlockLast = block.number;
    }

    function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external onlyOwner {
        require(numerator / denominator <= 2 && numerator > denominator);
        buybackMultiplierNumerator = numerator;
        buybackMultiplierDenominator = denominator;
        buybackMultiplierLength = length;
    }

    function setTxLimit(uint256 amount) external onlyOwner {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount.div(100);
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsFeeExemptMultiple(address[] calldata holders, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holders.length; i++) {
            isFeeExempt[holders[i]] = exempt;
        }
    }

    function setIsTxLimitExemptMultiple(address[] calldata holders, bool exempt) external onlyOwner {
        for(uint256 i = 0; i < holders.length; i++) {
            isTxLimitExempt[holders[i]] = exempt;
        }
    }

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee);
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        
        isFeeExempt[autoLiquidityReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        
        isTxLimitExempt[autoLiquidityReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount.div(100);
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external onlyOwner {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external onlyOwner {
        require(gas < 750000);
        distributorGas = gas;
    }


    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openPublicTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openWhitelistTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeIncreaseFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExemptMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExemptMultiple","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerManualBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateTradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"whiteListCommunity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960ff16600a0a633b9aca00026005556103e860146005540281620000ab57fe5b04600655606460046005540281620000bf57fe5b046007556003600f5560016010556001601155600a6012556003601355600e6014556064601555608260165573d346c025618ab2bfc5481b44a0f4e727e097f179601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506078601b556064601c55610708601e556000601f60006101000a81548160ff0219169083151502179055506207a1206026556001602760006101000a81548160ff0219169083151502179055506001602760016101000a81548160ff02191690831515021790555062030d4060055481620001b757fe5b04602955348015620001c857600080fd5b506000620001db62000e5960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507310ed43c718714eb63d5aa57b78b54704e256024e601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038c57600080fd5b505afa158015620003a1573d6000803e3d6000fd5b505050506040513d6020811015620003b857600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200047257600080fd5b505afa15801562000487573d6000803e3d6000fd5b505050506040513d60208110156200049e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200055857600080fd5b505af11580156200056d573d6000803e3d6000fd5b505050506040513d60208110156200058457600080fd5b8101908080519060200190929190505050601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006ec9062000e8a565b808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050604051809103906000f08015801562000746573d6000803e3d6000fd5b50602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60006200089162000e6160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b600062000a4462000e6160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000d3d62000e6160201b60201c565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600554600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a35062000e98565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a068062005d7983390190565b614ed18062000ea86000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063bd744a21116100b6578063ded93a8e1161007a578063ded93a8e14610d28578063df20fd4914610dba578063e96fada214610e01578063f2fde38b14610e42578063f708a64f14610e93578063f887ea4014610ef057610267565b8063bd744a2114610b76578063ca33e64c14610bfc578063cec10c1114610c3d578063dc907dea14610c8c578063dd62ed3e14610ca357610267565b80639d1944f5116101085780639d1944f5146109d6578063a4b45c0014610a11578063a5e7034014610a82578063a8aa1b3114610aad578063a9059cbb14610aee578063b210b06d14610b5f57610267565b80637d1db4a51461085257806382334b941461087d578063893d20e8146108c45780638da5cb5b1461090557806395d89b411461094657610267565b8063313ce567116101dd578063571ac8b0116101a1578063571ac8b0146106dc5780635c85974f146107435780636ddd17131461077e57806370a08231146107ab578063715018a61461081057806378109e541461082757610267565b8063313ce567146105ab5780633bb8a8d4146105d95780634146ed0a1461060657806345bb09be1461063357806355eaaa6a146106c557610267565b806322bd3f7f1161022457806322bd3f7f1461041e5780632375ce401461044957806323b872dd1461049857806324d993aa146105295780632d48e8961461056657610267565b80630445b6671461026c578063048c7baf1461029757806306fdde03146102f2578063095ea7b31461038257806318160ddd146103f357610267565b3661026757005b600080fd5b34801561027857600080fd5b50610281610f31565b6040518082815260200191505060405180910390f35b3480156102a357600080fd5b506102f0600480360360808110156102ba57600080fd5b81019080803515159060200190929190803590602001909291908035906020019092919080359060200190929190505050610f37565b005b3480156102fe57600080fd5b50610307611056565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561034757808201518184015260208101905061032c565b50505050905090810190601f1680156103745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038e57600080fd5b506103db600480360360408110156103a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611093565b60405180821515815260200191505060405180910390f35b3480156103ff57600080fd5b50610408611185565b6040518082815260200191505060405180910390f35b34801561042a57600080fd5b5061043361118f565b6040518082815260200191505060405180910390f35b34801561045557600080fd5b506104966004803603606081101561046c57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050611195565b005b3480156104a457600080fd5b50610511600480360360608110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611299565b60405180821515815260200191505060405180910390f35b34801561053557600080fd5b506105646004803603602081101561054c57600080fd5b81019080803515159060200190929190505050611499565b005b34801561057257600080fd5b506105a96004803603604081101561058957600080fd5b81019080803590602001909291908035906020019092919050505061157e565b005b3480156105b757600080fd5b506105c06116df565b604051808260ff16815260200191505060405180910390f35b3480156105e557600080fd5b506105ee6116e8565b60405180821515815260200191505060405180910390f35b34801561061257600080fd5b5061061b6116fb565b60405180821515815260200191505060405180910390f35b34801561063f57600080fd5b506106c36004803603604081101561065657600080fd5b810190808035906020019064010000000081111561067357600080fd5b82018360208201111561068557600080fd5b803590602001918460208302840111640100000000831117156106a757600080fd5b909192939192939080351515906020019092919050505061170e565b005b3480156106d157600080fd5b506106da611876565b005b3480156106e857600080fd5b5061072b600480360360208110156106ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611992565b60405180821515815260200191505060405180910390f35b34801561074f57600080fd5b5061077c6004803603602081101561076657600080fd5b81019080803590602001909291905050506119c5565b005b34801561078a57600080fd5b50610793611ac4565b60405180821515815260200191505060405180910390f35b3480156107b757600080fd5b506107fa600480360360208110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad7565b6040518082815260200191505060405180910390f35b34801561081c57600080fd5b50610825611b20565b005b34801561083357600080fd5b5061083c611ca6565b6040518082815260200191505060405180910390f35b34801561085e57600080fd5b50610867611cac565b6040518082815260200191505060405180910390f35b34801561088957600080fd5b506108c2600480360360408110156108a057600080fd5b8101908080359060200190929190803515159060200190929190505050611cb2565b005b3480156108d057600080fd5b506108d9611df1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561091157600080fd5b5061091a611e00565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561095257600080fd5b5061095b611e29565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561099b578082015181840152602081019050610980565b50505050905090810190601f1680156109c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109e257600080fd5b50610a0f600480360360208110156109f957600080fd5b8101908080359060200190929190505050611e66565b005b348015610a1d57600080fd5b50610a8060048036036040811015610a3457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f47565b005b348015610a8e57600080fd5b50610a9761227d565b6040518082815260200191505060405180910390f35b348015610ab957600080fd5b50610ac2612283565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610afa57600080fd5b50610b4760048036036040811015610b1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122a9565b60405180821515815260200191505060405180910390f35b348015610b6b57600080fd5b50610b746122be565b005b348015610b8257600080fd5b50610bfa60048036036020811015610b9957600080fd5b8101908080359060200190640100000000811115610bb657600080fd5b820183602082011115610bc857600080fd5b80359060200191846020830284011164010000000083111715610bea57600080fd5b9091929391929390505050612390565b005b348015610c0857600080fd5b50610c116124f8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c4957600080fd5b50610c8a60048036036060811015610c6057600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061251e565b005b348015610c9857600080fd5b50610ca161262b565b005b348015610caf57600080fd5b50610d1260048036036040811015610cc657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612768565b6040518082815260200191505060405180910390f35b348015610d3457600080fd5b50610db860048036036040811015610d4b57600080fd5b8101908080359060200190640100000000811115610d6857600080fd5b820183602082011115610d7a57600080fd5b80359060200191846020830284011164010000000083111715610d9c57600080fd5b90919293919293908035151590602001909291905050506127ef565b005b348015610dc657600080fd5b50610dff60048036036040811015610ddd57600080fd5b8101908080351515906020019092919080359060200190929190505050612957565b005b348015610e0d57600080fd5b50610e16612a57565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e4e57600080fd5b50610e9160048036036020811015610e6557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a7d565b005b348015610e9f57600080fd5b50610eee60048036036040811015610eb657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612c88565b005b348015610efc57600080fd5b50610f05612fe0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60295481565b610f3f613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b83601f60006101000a81548160ff02191690831515021790555082602081905550600060218190555061103c60648361300e90919063ffffffff16565b602281905550806023819055504360248190555050505050565b60606040518060400160405280601081526020017f554c54494d41544520424954434f494e00000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b60165481565b61119d613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461125d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600282848161126857fe5b041115801561127657508183115b61127f57600080fd5b82601b8190555081601c8190555080601e81905550505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461148557611404826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130589092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611490848484613118565b90509392505050565b6114a1613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80602760006101000a81548160ff02191690831515021790555050565b611586613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156116c357600080fd5b505af11580156116d7573d6000803e3d6000fd5b505050505050565b60006009905090565b601f60009054906101000a900460ff1681565b602760019054906101000a900460ff1681565b611716613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60005b838390508110156118705781600b60008686858181106117f557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506117d9565b50505050565b61187e613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461193e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600e6011819055506001601281905550600160138190555060106014819055506103e86004600554028161196e57fe5b046007819055506001602760016101000a81548160ff021916908315150217905550565b60006119be827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611093565b9050919050565b6119cd613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6103e860055481611a9a57fe5b04811015611aa757600080fd5b611abb60648261300e90919063ffffffff16565b60068190555050565b602760009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b28613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611be8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b60065481565b611cba613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611da682600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613997565b8015611ded5742601d819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a601e546040518082815260200191505060405180910390a15b5050565b6000611dfb611e00565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f2455425443000000000000000000000000000000000000000000000000000000815250905090565b611e6e613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b620b71b08110611f3d57600080fd5b8060268190555050565b611f4f613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461200f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60285481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006122b6338484613118565b905092915050565b6122c6613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612386576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000601d81905550565b612398613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612458576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60005b828290508110156124f3576001600d600085858581811061247857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505061245b565b505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612526613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b826011819055508160128190555080601381905550612620816126128486613bce90919063ffffffff16565b613bce90919063ffffffff16565b601481905550505050565b612633613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000602760016101000a81548160ff0219169083151502179055506003601181905550600a6012819055506003601381905550601060148190555060646001600554028161273d57fe5b04600781905550426028819055506001602760006101000a81548160ff021916908315150217905550565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6127f7613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60005b838390508110156129515781600a60008686858181106128d657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506128ba565b50505050565b61295f613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81602760006101000a81548160ff021916908315150217905550612a4d60648261300e90919063ffffffff16565b6029819055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612a85613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614dc46026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612c90613006565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612dda5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612de357600080fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612ef157602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612ed457600080fd5b505af1158015612ee8573d6000803e3d6000fd5b50505050612fdc565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015612fc357600080fd5b505af1158015612fd7573d6000803e3d6000fd5b505050505b5050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600061305083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c56565b905092915050565b6000838311158290613105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156130ca5780820151818401526020810190506130af565b50505050905090810190601f1680156130f75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080429050602a60009054906101000a900460ff16156131465761313e858585613d1c565b915050613990565b602760009054906101000a900460ff166132e9576000613164611e00565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806131cf57506131a0611e00565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8061328f5750602760019054906101000a900460ff16801561328e5750600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061328d5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b5b5b9050806132e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526045815260200180614dea6045913960600191505060405180910390fd5b505b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806133945750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b1561339e57600190505b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806134495750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b1561345357600190505b61345e878787613eef565b613466614196565b1561347457613473614255565b5b61347c61486f565b1561348a57613489614919565b5b613513856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130589092919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006135628888614995565b61356c578561357b565b61357a888888868689614a51565b5b90506135cf81600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bce90919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661375157602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9689600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561373557600080fd5b505af1925050508015613746575060015b61374f57613750565b5b5b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661389057602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561387457600080fd5b505af1925050508015613885575060015b61388e5761388f565b5b5b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796026546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561390757600080fd5b505af1925050508015613918575060015b61392157613922565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019450505050505b9392505050565b6001602a60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811180156139cc57600080fd5b506040519080825280602002602001820160405280156139fb5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110613a2e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110613a7657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613b6e578082015181840152602081019050613b53565b50505050905001955050505050506000604051808303818588803b158015613b9557600080fd5b505af1158015613ba9573d6000803e3d6000fd5b5050505050506000602a60006101000a81548160ff0219169083151502179055505050565b600080828401905083811015613c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083118290613d02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cc7578082015181840152602081019050613cac565b50505050905090810190601f168015613cf45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613d0e57fe5b049050809150509392505050565b6000613da7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130589092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e3c82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bce90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b613ef7611e00565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613f655750613f35611e00565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015613fbf5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156140195750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561406f5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15614191576006548111156140cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614e2f6028913960400191505060405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461419057600061412f83611ad7565b9050600754828201111561418e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614e576024913960400191505060405180910390fd5b505b5b505050565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156142035750602a60009054906101000a900460ff16155b80156142505750602954600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602a60006101000a81548160ff0219169083151502179055506000601154905060006142b560026142a760145461429986602954614cf390919063ffffffff16565b61300e90919063ffffffff16565b61300e90919063ffffffff16565b905060006142ce82602954614d7990919063ffffffff16565b90506000600267ffffffffffffffff811180156142ea57600080fd5b506040519080825280602002602001820160405280156143195781602001602082028036833780820191505090505b509050308160008151811061432a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061439457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561449757808201518184015260208101905061447c565b505050509050019650505050505050600060405180830381600087803b1580156144c057600080fd5b505af11580156144d4573d6000803e3d6000fd5b5050505060006144ed8247614d7990919063ffffffff16565b9050600061451961450860028961300e90919063ffffffff16565b601454614d7990919063ffffffff16565b905060006145556002614547846145398c88614cf390919063ffffffff16565b61300e90919063ffffffff16565b61300e90919063ffffffff16565b905060006145808361457260125487614cf390919063ffffffff16565b61300e90919063ffffffff16565b905060006145ab8461459d60135488614cf390919063ffffffff16565b61300e90919063ffffffff16565b9050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561461757600080fd5b505af193505050508015614629575060015b61463257614633565b5b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168161753090604051806000019050600060405180830381858888f193505050503d80600081146146b8576040519150601f19603f3d011682016040523d82523d6000602084013e6146bd565b606091505b505050600089111561484857601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156147b557600080fd5b505af11580156147c9573d6000803e3d6000fd5b50505050506040513d60608110156147e057600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051808381526020018281526020019250505060405180910390a15b505050505050505050506000602a60006101000a81548160ff021916908315150217905550565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156148dc5750602a60009054906101000a900460ff16155b80156148f45750601f60009054906101000a900460ff165b80156149065750436023546024540111155b801561491457506022544710155b905090565b614947602254600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613997565b43602481905550614965602254602154613bce90919063ffffffff16565b6021819055506020546021541115614993576000601f60006101000a81548160ff0219169083151502179055505b565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680614a385750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15614a465760009050614a4b565b600190505b92915050565b60008060145490508415614b7a576000600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015614ac15750836010546028540110155b80614b0f575083600f54600e60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110155b90508015614b3057614b2d6001601554614d7990919063ffffffff16565b91505b42600e60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050614bad565b8315614bac57614ba9601554614b9b60165484614cf390919063ffffffff16565b61300e90919063ffffffff16565b90505b5b6000614bd6601554614bc8848a614cf390919063ffffffff16565b61300e90919063ffffffff16565b9050614c2a81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bce90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3614ce58188614d7990919063ffffffff16565b925050509695505050505050565b600080831415614d065760009050614d73565b6000828402905082848281614d1757fe5b0414614d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614e7b6021913960400191505060405180910390fd5b809150505b92915050565b6000614dbb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613058565b90509291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737354686973206163636f756e742063616e6e6f742073656e6420746f6b656e73206f722062757920746f6b656e20756e74696c2074726164696e6720697320656e61626c65645472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212209e6acd35c9750b860ca6e38cae9faa2275bacab3db40f56c08bc70c4a97b26ce64736f6c6343000706003360806040526ec097ce7bc90715b34b9f1000000000600c55610708600d55670de0b6b3a7640000600e5534801561003557600080fd5b50604051611a06380380611a068339818101604052604081101561005857600080fd5b81019080805190602001909291908051906020019092919050505081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561015d57600080fd5b505afa158015610171573d6000803e3d6000fd5b505050506040513d602081101561018757600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506117dd806102296000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed1461033b578063f0fc6bca14610366578063ffb2c4791461037d578063ffd49c84146103b8576100dd565b8063ce7c2ac214610293578063d0e30db014610306578063e2d2e21914610310576100dd565b80632d48e896116100bb5780632d48e896146101cd5780633a98ef39146102125780634fab0ae81461023d578063997664d714610268576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610168575b600080fd5b3480156100ee57600080fd5b506100f76103e3565b6040518082815260200191505060405180910390f35b34801561011957600080fd5b506101666004803603604081101561013057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103e9565b005b34801561017457600080fd5b506101b76004803603602081101561018b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a8565b6040518082815260200191505060405180910390f35b3480156101d957600080fd5b50610210600480360360408110156101f057600080fd5b8101908080359060200190929190803590602001909291905050506107c2565b005b34801561021e57600080fd5b5061022761082c565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b50610252610832565b6040518082815260200191505060405180910390f35b34801561027457600080fd5b5061027d610838565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102e2600480360360208110156102b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061083e565b60405180848152602001838152602001828152602001935050505060405180910390f35b61030e610868565b005b34801561031c57600080fd5b50610325610ce3565b6040518082815260200191505060405180910390f35b34801561034757600080fd5b50610350610ce9565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b610cef565b005b34801561038957600080fd5b506103b6600480360360208110156103a057600080fd5b8101908080359060200190929190505050610cfa565b005b3480156103c457600080fd5b506103cd610e74565b6040518082815260200191505060405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044157600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104965761049582610e7a565b5b6000811180156104e857506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b156104fb576104f682611140565b61055d565b60008114801561054d57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b1561055c5761055b826111ef565b5b5b6105c6816105b8600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546113c890919063ffffffff16565b61141290919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061065e600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106fd57600090506107bd565b600061074a600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116107a5576000925050506107bd565b6107b881836113c890919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081a57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561094b57600080fd5b505afa15801561095f573d6000803e3d6000fd5b505050506040513d602081101561097557600080fd5b810190808051906020019092919050505090506000600267ffffffffffffffff811180156109a257600080fd5b506040519080825280602002602001820160405280156109d15781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110610a0457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610a6e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610b66578082015181840152602081019050610b4b565b50505050905001955050505050506000604051808303818588803b158015610b8d57600080fd5b505af1158015610ba1573d6000803e3d6000fd5b50505050506000610c7e83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c3557600080fd5b505afa158015610c49573d6000803e3d6000fd5b505050506040513d6020811015610c5f57600080fd5b81019080805190602001909291905050506113c890919063ffffffff16565b9050610c958160095461141290919063ffffffff16565b600981905550610cd8610cc7600854610cb984600c546114cc90919063ffffffff16565b61155290919063ffffffff16565b600b5461141290919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610cf833610e7a565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5257600080fd5b600060048054905090506000811415610d6b5750610e71565b6000805a905060005b8483108015610d8257508381105b15610e6c5783600f5410610d99576000600f819055505b610ddb6004600f5481548110610dab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661159c565b15610e2357610e226004600f5481548110610df257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e7a565b5b610e48610e395a846113c890919063ffffffff16565b8461141290919063ffffffff16565b92505a9150600f600081548092919060010191905055508080600101915050610d74565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610eca5761113d565b6000610ed5826106a8565b9050600081111561113b57610ef581600a5461141290919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505050506040513d6020811015610fb857600080fd5b81019080805190602001909291905050505042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061106381600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015461141290919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506110f4600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461149a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046001600480549050038154811061120457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061127b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546005600060046001600480549050038154811061131c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600480548061139057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600061140a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611600565b905092915050565b600080828401905083811015611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60006114c5600c546114b7600b54856114cc90919063ffffffff16565b61155290919063ffffffff16565b9050919050565b6000808314156114df576000905061154c565b60008284029050828482816114f057fe5b0414611547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117876021913960400191505060405180910390fd5b809150505b92915050565b600061159483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c0565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011080156115f95750600e546115f7836106a8565b115b9050919050565b60008383111582906116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611672578082015181840152602081019050611657565b50505050905090810190601f16801561169f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061176c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611731578082015181840152602081019050611716565b50505050905090810190601f16801561175e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161177857fe5b04905080915050939250505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212209eb03a3e64704e3b5abc87bbf99702012fb1eea97108feed6981749b21d6d88a64736f6c63430007060033

Deployed ByteCode Sourcemap

16576:16665:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18683:52;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30148:367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20589:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20995:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20337:88;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17835:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30523:341;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21507:364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22108:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;32793:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20431:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18284:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18616:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;31608:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22536:246;;;;;;;;;;;;;:::i;:::-;;21219:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;30872:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18579:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20743:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8617:148;;;;;;;;;;;;;:::i;:::-;;17103:57;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17019:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29031:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20666:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7976:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20508:75;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32983:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;32152:461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18653:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18064:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21343:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;29356:104;;;;;;;;;;;;;:::i;:::-;;21879:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17888:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;31837:307;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22215:309;;;;;;;;;;;;;:::i;:::-;;20854:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31387:213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;32621:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17931:89;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8920:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;31033:346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18033:24;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18683:52;;;;:::o;30148:367::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30294:8:::1;30273:18;;:29;;;;;;;;;;;;;;;;;;30330:4;30313:14;:21;;;;30370:1;30345:22;:26;;;;30402:16;30414:3;30402:7;:11;;:16;;;;:::i;:::-;30382:17;:36;;;;30454:7;30429:22;:32;;;;30495:12;30472:20;:35;;;;30148:367:::0;;;;:::o;20589:71::-;20628:13;20652:5;;;;;;;;;;;;;;;;;20645:12;;20589:71;:::o;20995:216::-;21070:4;21122:6;21087:11;:23;21099:10;21087:23;;;;;;;;;;;;;;;:32;21111:7;21087:32;;;;;;;;;;;;;;;:41;;;;21165:7;21144:37;;21153:10;21144:37;;;21174:6;21144:37;;;;;;;;;;;;;;;;;;21199:4;21192:11;;20995:216;;;;:::o;20337:88::-;20392:7;20410:12;;20403:19;;20337:88;:::o;17835:42::-;;;;:::o;30523:341::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30682:1:::1;30667:11;30655:9;:23;;;;;;:28;;:55;;;;;30699:11;30687:9;:23;30655:55;30647:64;;;::::0;::::1;;30751:9;30722:26;:38;;;;30802:11;30771:28;:42;;;;30850:6;30824:23;:32;;;;30523:341:::0;;;:::o;21507:364::-;21607:4;21670:2;21627:11;:19;21639:6;21627:19;;;;;;;;;;;;;;;:31;21647:10;21627:31;;;;;;;;;;;;;;;;:46;21624:180;;21723:69;21759:6;21723:69;;;;;;;;;;;;;;;;;:11;:19;21735:6;21723:19;;;;;;;;;;;;;;;:31;21743:10;21723:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;21689:11;:19;21701:6;21689:19;;;;;;;;;;;;;;;:31;21709:10;21689:31;;;;;;;;;;;;;;;:103;;;;21624:180;21823:40;21837:6;21845:9;21856:6;21823:13;:40::i;:::-;21816:47;;21507:364;;;;;:::o;22108:95::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22190:5:::1;22176:11;;:19;;;;;;;;;;;;;;;;;;22108:95:::0;:::o;32793:182::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32902:11:::1;;;;;;;;;;;:35;;;32938:10;32950:16;32902:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;32793:182:::0;;:::o;20431:71::-;20474:5;16949:1;20483:16;;20431:71;:::o;18284:38::-;;;;;;;;;;;;;:::o;18616:30::-;;;;;;;;;;;;;:::o;31608:221::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31719:9:::1;31715:107;31738:7;;:14;;31734:1;:18;31715:107;;;31804:6;31774:15;:27;31790:7;;31798:1;31790:10;;;;;;;;;;;;;;;31774:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;31754:3;;;;;;;31715:107;;;;31608:221:::0;;;:::o;22536:246::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22610:2:::1;22595:12;:17;;;;22639:1;22623:13;:17;;;;22666:1;22651:12;:16;;;;22689:2;22678:8;:13;;;;22741:4;22736:1;22721:12;;:16;22720:25;;;;;;22702:15;:43;;;;22770:4;22756:11;;:18;;;;;;;;;;;;;;;;;;22536:246::o:0;21219:116::-;21274:4;21298:29;21306:7;21323:2;21298:7;:29::i;:::-;21291:36;;21219:116;;;:::o;30872:153::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30971:4:::1;30956:12;;:19;;;;;;30946:6;:29;;30938:38;;;::::0;::::1;;31002:15;31013:3;31002:6;:10;;:15;;;;:::i;:::-;30987:12;:30;;;;30872:153:::0;:::o;18579:30::-;;;;;;;;;;;;;:::o;20743:105::-;20809:7;20827:9;:18;20837:7;20827:18;;;;;;;;;;;;;;;;20820:25;;20743:105;;;:::o;8617:148::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8724:1:::1;8687:40;;8708:6;::::0;::::1;;;;;;;;8687:40;;;;;;;;;;;;8755:1;8738:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8617:148::o:0;17103:57::-;;;;:::o;17019:56::-;;;;:::o;29031:317::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29138:23:::1;29148:6;29156:4;;;;;;;;;;;29138:9;:23::i;:::-;29175:24;29172:169;;;29246:15;29215:28;:46;;;;29281:48;29305:23;;29281:48;;;;;;;;;;;;;;;;;;29172:169;29031:317:::0;;:::o;20666:71::-;20709:7;20727;:5;:7::i;:::-;20720:14;;20666:71;:::o;7976:79::-;8014:7;8041:6;;;;;;;;;;;8034:13;;7976:79;:::o;20508:75::-;20549:13;20573:7;;;;;;;;;;;;;;;;;20566:14;;20508:75;:::o;32983:135::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33072:6:::1;33066:3;:12;33058:21;;;::::0;::::1;;33107:3;33090:14;:20;;;;32983:135:::0;:::o;32152:461::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32294:22:::1;32270:21;;:46;;;;;;;;;;;;;;;;;;32350:21;32327:20;;:44;;;;;;;;;;;;;;;;;;32429:4;32392:11;:34;32404:21;;;;;;;;;;;32392:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;32480:4;32444:11;:33;32456:20;;;;;;;;;;;32444:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;32546:4;32505:15;:38;32521:21;;;;;;;;;;;32505:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;32601:4;32561:15;:37;32577:20;;;;;;;;;;;32561:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;32152:461:::0;;:::o;18653:23::-;;;;:::o;18064:19::-;;;;;;;;;;;;;:::o;21343:156::-;21423:4;21447:44;21461:10;21473:9;21484:6;21447:13;:44::i;:::-;21440:51;;21343:156;;;;:::o;29356:104::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29451:1:::1;29420:28;:32;;;;29356:104::o:0;21879:217::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21968:9:::1;21964:125;21987:8;;:15;;21983:1;:19;21964:125;;;22073:4;22024:33;:46;22058:8;;22067:1;22058:11;;;;;;;;;;;;;;;22024:46;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;22004:3;;;;;;;21964:125;;;;21879:217:::0;;:::o;17888:36::-;;;;;;;;;;;;;:::o;31837:307::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31969:13:::1;31954:12;:28;;;;32009:14;31993:13;:30;;;;32049:13;32034:12;:28;;;;32084:52;32122:13;32084:33;32102:14;32084:13;:17;;:33;;;;:::i;:::-;:37;;:52;;;;:::i;:::-;32073:8;:63;;;;31837:307:::0;;;:::o;22215:309::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22285:5:::1;22271:11;;:19;;;;;;;;;;;;;;;;;;22316:1;22301:12;:16;;;;22344:2;22328:13;:18;;;;22372:1;22357:12;:16;;;;22395:2;22384:8;:13;;;;22447:3;22442:1;22427:12;;:16;22426:24;;;;;;22408:15;:42;;;;22472:15;22461:8;:26;;;;22512:4;22498:11;;:18;;;;;;;;;;;;;;;;;;22215:309::o:0;20854:133::-;20938:7;20956:11;:19;20968:6;20956:19;;;;;;;;;;;;;;;:28;20976:7;20956:28;;;;;;;;;;;;;;;;20949:35;;20854:133;;;;:::o;31387:213::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31494:9:::1;31490:103;31513:7;;:14;;31509:1;:18;31490:103;;;31575:6;31549:11;:23;31561:7;;31569:1;31561:10;;;;;;;;;;;;;;;31549:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;31529:3;;;;;;;31490:103;;;;31387:213:::0;;;:::o;32621:164::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32726:8:::1;32712:11;;:22;;;;;;;;;;;;;;;;;;32761:16;32773:3;32761:7;:11;;:16;;;;:::i;:::-;32745:13;:32;;;;32621:164:::0;;:::o;17931:89::-;;;;;;;;;;;;;:::o;8920:244::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9029:1:::1;9009:22;;:8;:22;;;;9001:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9119:8;9090:38;;9111:6;::::0;::::1;;;;;;;;9090:38;;;;;;;;;;;;9148:8;9139:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;8920:244:::0;:::o;31033:346::-;8198:12;:10;:12::i;:::-;8188:22;;:6;;;;;;;;;;:22;;;8180:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31147:4:::1;31129:23;;:6;:23;;;;:41;;;;;31166:4;;;;;;;;;;;31156:14;;:6;:14;;;;31129:41;31121:50;;;::::0;::::1;;31209:6;31182:16;:24;31199:6;31182:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;31229:6;31226:146;;;31251:11;;;;;;;;;;;:20;;;31272:6;31280:1;31251:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;31226:146;;;31313:11;;;;;;;;;;;:20;;;31334:6;31342:9;:17;31352:6;31342:17;;;;;;;;;;;;;;;;31313:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;31226:146;31033:346:::0;;:::o;18033:24::-;;;;;;;;;;;;;:::o;4808:107::-;4853:15;4896:10;4881:26;;4808:107;:::o;6038:132::-;6096:7;6123:39;6127:1;6130;6123:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6116:46;;6038:132;;;;:::o;5584:192::-;5670:7;5703:1;5698;:6;;5706:12;5690:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5730:9;5746:1;5742;:5;5730:17;;5767:1;5760:8;;;5584:192;;;;;:::o;22794:1700::-;22886:4;22903:17;22923:15;22903:35;;22952:6;;;;;;;;;;;22949:63;;;22968:41;22983:6;22991:9;23002:6;22968:14;:41::i;:::-;22961:48;;;;;22949:63;23028:11;;;;;;;;;;;23024:339;;23056:16;23086:7;:5;:7::i;:::-;23076:17;;:6;:17;;;:41;;;;23110:7;:5;:7::i;:::-;23097:20;;:9;:20;;;23076:41;23075:168;;;;23136:11;;;;;;;;;;;:106;;;;;23152:33;:41;23186:6;23152:41;;;;;;;;;;;;;;;;;;;;;;;;;:89;;;;23197:33;:44;23231:9;23197:44;;;;;;;;;;;;;;;;;;;;;;;;;23152:89;23136:106;23075:168;23056:187;;23266:11;23258:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23024:339;;23383:13;23429:4;;;;;;;;;;;23419:14;;:6;:14;;;:43;;;;23455:6;;;;;;;;;;;23437:25;;:6;:25;;;23419:43;23415:90;;;23489:4;23478:15;;23415:90;23515:14;23565:4;;;;;;;;;;;23552:17;;:9;:17;;;:49;;;;23594:6;;;;;;;;;;;23573:28;;:9;:28;;;23552:49;23548:97;;;23629:4;23617:16;;23548:97;23665:39;23678:6;23686:9;23697:6;23665:12;:39::i;:::-;23720:16;:14;:16::i;:::-;23717:35;;;23739:10;:8;:10::i;:::-;23717:35;23765:19;:17;:19::i;:::-;23762:48;;;23787:20;:18;:20::i;:::-;23762:48;23842:53;23864:6;23842:53;;;;;;;;;;;;;;;;;:9;:17;23852:6;23842:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23822:9;:17;23832:6;23822:17;;;;;;;;;;;;;;;:73;;;;23908:22;23933:32;23947:6;23955:9;23933:13;:32::i;:::-;:110;;24037:6;23933:110;;;23968:66;23976:6;23984:9;23995:6;24003:8;24013:9;24024;23968:7;:66::i;:::-;23933:110;23908:135;;24077:40;24102:14;24077:9;:20;24087:9;24077:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;24054:9;:20;24064:9;24054:20;;;;;;;;;;;;;;;:63;;;;24134:16;:24;24151:6;24134:24;;;;;;;;;;;;;;;;;;;;;;;;;24130:96;;24165:11;;;;;;;;;;;:20;;;24186:6;24194:9;:17;24204:6;24194:17;;;;;;;;;;;;;;;;24165:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24161:63;;;;;;24130:96;24240:16;:27;24257:9;24240:27;;;;;;;;;;;;;;;;;;;;;;;;;24236:105;;24274:11;;;;;;;;;;;:20;;;24295:9;24306;:20;24316:9;24306:20;;;;;;;;;;;;;;;;24274:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24270:69;;;;;;24236:105;24357:11;;;;;;;;;;;:19;;;24377:14;;24357:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24353:51;;;;;;24438:9;24421:43;;24430:6;24421:43;;;24449:14;24421:43;;;;;;;;;;;;;;;;;;24482:4;24475:11;;;;;;22794:1700;;;;;;:::o;29779:361::-;18801:4;18792:6;;:13;;;;;;;;;;;;;;;;;;29855:21:::1;29893:1;29879:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29855:40;;29916:4;;;;;;;;;;;29906;29911:1;29906:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;29949:4;29931;29936:1;29931:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;29967:6;;;;;;;;;;;:57;;;30032:6;30054:1;30070:4;30089:2;30106:15;29967:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;18807:1;18819:5:::0;18810:6;;:14;;;;;;;;;;;;;;;;;;29779:361;;:::o;5255:181::-;5313:7;5333:9;5349:1;5345;:5;5333:17;;5374:1;5369;:6;;5361:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5427:1;5420:8;;;5255:181;;;;:::o;6176:345::-;6262:7;6361:1;6357;:5;6364:12;6349:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6388:9;6404:1;6400;:5;;;;;;6388:17;;6512:1;6505:8;;;6176:345;;;;;:::o;24502:330::-;24595:4;24632:53;24654:6;24632:53;;;;;;;;;;;;;;;;;:9;:17;24642:6;24632:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24612:9;:17;24622:6;24612:17;;;;;;;;;;;;;;;:73;;;;24719:32;24744:6;24719:9;:20;24729:9;24719:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;24696:9;:20;24706:9;24696:20;;;;;;;;;;;;;;;:55;;;;24784:9;24767:35;;24776:6;24767:35;;;24795:6;24767:35;;;;;;;;;;;;;;;;;;24820:4;24813:11;;24502:330;;;;;:::o;24840:772::-;24966:7;:5;:7::i;:::-;24956:17;;:6;:17;;;;:54;;;;;25003:7;:5;:7::i;:::-;24990:20;;:9;:20;;;;24956:54;:88;;;;;25040:4;;;;;;;;;;;25027:17;;:9;:17;;;;24956:88;:122;;;;;25074:4;;;;;;;;;;;25061:17;;:9;:17;;;;24956:122;:166;;;;;25096:15;:26;25112:9;25096:26;;;;;;;;;;;;;;;;;;;;;;;;;25095:27;24956:166;24938:667;;;25185:12;;25175:6;:22;;25149:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25318:4;;;;;;;;;;;25305:17;;:9;:17;;;25302:292;;25342:32;25377:20;25387:9;25377;:20::i;:::-;25342:55;;25483:15;;25473:6;25446:24;:33;:52;;25416:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25302:292;;24938:667;24840:772;;;:::o;26828:168::-;26872:4;26910;;;;;;;;;;;26896:18;;:10;:18;;;;:38;;;;;26928:6;;;;;;;;;;;26927:7;26896:38;:92;;;;;26975:13;;26947:9;:24;26965:4;26947:24;;;;;;;;;;;;;;;;:41;;26896:92;26889:99;;26828:168;:::o;27004:1713::-;18801:4;18792:6;;:13;;;;;;;;;;;;;;;;;;27175:27:::1;27205:12;;27175:42;;27228:23;27254:59;27311:1;27254:52;27297:8;;27254:38;27272:19;27254:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;27228:85;;27324:20;27347:34;27365:15;27347:13;;:17;;:34;;;;:::i;:::-;27324:57;;27394:21;27432:1;27418:16;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27394:40;;27463:4;27445;27450:1;27445:7;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;27489:4;;;;;;;;;;;27479;27484:1;27479:7;;;;;;;;;;;;;:14;;;;;;;;;::::0;::::1;27506:21;27530;27506:45;;27564:6;;;;;;;;;;;:57;;;27636:12;27663:1;27679:4;27706;27726:15;27564:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;27765:17;27785:40;27811:13;27785:21;:25;;:40;;;;:::i;:::-;27765:60;;27838:19;27860:40;27873:26;27897:1;27873:19;:23;;:26;;;;:::i;:::-;27860:8;;:12;;:40;;;;:::i;:::-;27838:62;;27913:26;27942:58;27998:1;27942:51;27981:11;27942:34;27956:19;27942:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;27913:87;;28011:27;28041:45;28074:11;28041:28;28055:13;;28041:9;:13;;:28;;;;:::i;:::-;:32;;:45;;;;:::i;:::-;28011:75;;28097:26;28126:44;28158:11;28126:27;28140:12;;28126:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;28097:73;;28187:11;;;;;;;;;;;:19;;;28214;28187:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;28183:65;;;;;;28266:20;;;;;;;;;;;28258:34;;28300:18;28325:5;28258:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28369:1;28351:15;:19;28348:362;;;28386:6;;;;;;;;;;;:22;;;28416:18;28462:4;28486:15;28520:1;28540::::0;28560:21:::1;;;;;;;;;;;28600:15;28386:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28650:48;28662:18;28682:15;28650:48;;;;;;;;;;;;;;;;;;;;;;;;28348:362;18807:1;;;;;;;;;;18819:5:::0;18810:6;;:14;;;;;;;;;;;;;;;;;;27004:1713::o;28725:298::-;28777:4;28815;;;;;;;;;;;28801:18;;:10;:18;;;;:42;;;;;28837:6;;;;;;;;;;;28836:7;28801:42;:77;;;;;28860:18;;;;;;;;;;;28801:77;:155;;;;;28944:12;28918:22;;28895:20;;:45;:61;;28801:155;:214;;;;;28998:17;;28973:21;:42;;28801:214;28794:221;;28725:298;:::o;29468:303::-;29518:34;29528:17;;29547:4;;;;;;;;;;;29518:9;:34::i;:::-;29586:12;29563:20;:35;;;;29634:45;29661:17;;29634:22;;:26;;:45;;;;:::i;:::-;29609:22;:70;;;;29718:14;;29693:22;;:39;29690:74;;;29756:5;29735:18;;:26;;;;;;;;;;;;;;;;;;29690:74;29468:303::o;25620:203::-;25701:4;25721:11;:19;25733:6;25721:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;25744:11;:22;25756:9;25744:22;;;;;;;;;;;;;;;;;;;;;;;;;25721:45;25718:75;;;25788:5;25781:12;;;;25718:75;25811:4;25804:11;;25620:203;;;;;:::o;25831:989::-;25967:7;25984:16;26003:8;;25984:27;;26027:8;26024:531;;;26051:10;26066:33;:44;26100:9;26066:44;;;;;;;;;;;;;;;;;;;;;;;;;26065:45;:92;;;;;26148:9;26125:19;;26114:8;;:30;:43;;26065:92;26064:184;;;;26238:9;26216:18;;26188:14;:25;26203:9;26188:25;;;;;;;;;;;;;;;;:46;:59;;26064:184;26051:197;;26266:5;26263:59;;;26301:21;26320:1;26301:14;;:18;;:21;;;;:::i;:::-;26290:32;;26263:59;26365:15;26337:14;:25;26352:9;26337:25;;;;;;;;;;;;;;;:43;;;;26024:531;;;;26465:9;26462:93;;;26500:55;26540:14;;26500:35;26513:21;;26500:8;:12;;:35;;;;:::i;:::-;:39;;:55;;;;:::i;:::-;26489:66;;26462:93;26024:531;26568:17;26588:40;26613:14;;26588:20;26599:8;26588:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;26568:60;;26666:39;26695:9;26666;:24;26684:4;26666:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;26639:9;:24;26657:4;26639:24;;;;;;;;;;;;;;;:66;;;;26746:4;26721:42;;26730:6;26721:42;;;26753:9;26721:42;;;;;;;;;;;;;;;;;;26791:21;26802:9;26791:6;:10;;:21;;;;:::i;:::-;26784:28;;;;25831:989;;;;;;;;:::o;5782:250::-;5840:7;5869:1;5864;:6;5860:47;;;5894:1;5887:8;;;;5860:47;5919:9;5935:1;5931;:5;5919:17;;5964:1;5959;5955;:5;;;;;;:10;5947:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6023:1;6016:8;;;5782:250;;;;;:::o;5442:136::-;5500:7;5527:43;5531:1;5534;5527:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5520:50;;5442:136;;;;:::o

Swarm Source

ipfs://9eb03a3e64704e3b5abc87bbf99702012fb1eea97108feed6981749b21d6d88a
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.