Contract 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 1

 

Contract Overview

Balance:
808.516265004116689 MATIC

MATIC Value:
$747.55 (@ $0.92/MATIC)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x390d213d3a08357b0c55e9ec44105fda9cb9022c1155a7a8db61c8bbacdfbf48Pay Native365879162022-12-08 18:29:058 hrs 7 mins ago0xfd26373e6dbcb3e5bd49dfb44578a18bf4878b48 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5410.989010989010989 MATIC0.0051813867 46.3
0x28d37a334742dec8d291e633bd575886b164399e21570728f61672dac17044cbPay Native365486382022-12-07 19:23:431 day 7 hrs ago0xef750682a0cf1e4dc50958e0a87d7fb034cdceb5 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.235955056179774 MATIC0.0042637329 38.1
0xe741d8dba41fa20b5c2ecfada5454e7c2517478b2ee6516bae1a40cee73fa05fPay Native365139852022-12-06 23:00:362 days 3 hrs ago0xcada38b3d2e3d8714e783ae8c420b4024817e3e8 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5410.989010989010989 MATIC0.003968024129 35.457596164
0x9d68ce07cd78e1925099a8c955143e6303ec9c4d14a816e9ce40933b76248554Pay Native365072712022-12-06 19:05:092 days 7 hrs ago0x314923f06c408b1eb0f22ccf0ccec628a6f40333 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.11111111111111 MATIC0.004151823937.1
0x4a08a782ae4fa8c883f9815419d54fa2d9a822c43c6d70d92a4cafb4293c2055Pay Native365070792022-12-06 18:58:002 days 7 hrs ago0x314923f06c408b1eb0f22ccf0ccec628a6f40333 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.11111111111111 MATIC0.004509449140.3
0x1ade5d981ce511241158750ba19ce5022263ac4b4f443f489930545354c9253aPay Native365022502022-12-06 16:11:112 days 10 hrs ago0xbd90f0243173e91385224a8117212d17c2e9e494 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.006151702758 68.967597098
0x8e420e806c693a6aed1680e6d0ac0226c32b0ceb048f5a7f52950b482074fcf7Pay Native365010282022-12-06 15:29:112 days 11 hrs ago0x785dc7204e2da8694c045e615562e946aadbf914 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0067076144 75.2
0xa0350905b8db826560ecdb6a9382add921c1260fe0b64e82a44bf0ca7f9a2435Pay Native364847292022-12-06 5:57:372 days 20 hrs ago0xe1f7280de84b84f91be3830ca437ee6fc548bb7a IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0027743999 31.1
0xdc1f28ae7bf2404b1c300722b2640c898ff1befe0e000897e720673c860dbd68Pay Native364202072022-12-04 15:55:254 days 10 hrs ago0xfcf33031d289ffa0baae3b4f9521eb8d5d9e4924 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5410.869565217391305 MATIC0.0055059228 49.2
0x9a4311aaa4bb98d58ab1f3666df1aa59f952b11e7c0697285f495ef6853d3e47Pay Native364155252022-12-04 13:14:174 days 13 hrs ago0xf3062275c31777921046bf6c96074cc4c285db57 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5410.989010989010989 MATIC0.0053492502 47.8
0xe5b10d13c7cee5900a1924b33d447383b2c4d2e5d464aa2770f21c1c7f624387Pay Native362548112022-11-30 13:33:438 days 13 hrs ago0x30c98ab8fb66212634bf284f3c13b1e1fe61b3ce IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0077433412 86.8
0x20d9385c2fb3c971fb0ec23a9151dbf19bae9dee33b557870ed5faf09f432500Pay Native362499262022-11-30 10:42:578 days 15 hrs ago0xe30a74eb9cff806e9627a11ea066501941d262ae IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.494252873563218 MATIC0.0055954550
0x05d9bd27bd04b728504cb2d10b09aac0a768952283dd8a785046b5f6048994e0Pay Native362466352022-11-30 8:43:138 days 17 hrs ago0x4eac14ca3201b62e18e9a87b2cfd41edb5ffd78f IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.494252873563218 MATIC0.0057185499 51.1
0x650ff1ff85ff6180e7fecebd7a3f5bd85c22783c8883fefba6014f94b98e6f79Pay Native362309402022-11-29 23:14:129 days 3 hrs ago0x0c81dcb52184280e9cfcda290eb4054dcdc70857 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0028632237 32.1
0x719e7081ef9fee3a4251d21fd4da8b1092ddc074baa8cba09d8dac152b659d95Pay Native362309072022-11-29 23:13:029 days 3 hrs ago0x93837ecc45d9cad41c50c038d880ad09bded404a IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0028632237 32.1
0x63dc0c027c4eb0cd59d82c0d5aee313edb55e6e2ff72c35b76faf43c073d62c1Pay Native362308482022-11-29 23:11:049 days 3 hrs ago0x1ebd79902e878e87c9e7d7c29aa3c8810256214f IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0031754132 35.6
0xfd02443e52c8aba7f48e729c9b32ab3ad7afa6c5dab892b7294a5a1b9082db1bPay Native362308482022-11-29 23:11:049 days 3 hrs ago0x0f432863edb1ff6c62a7fd91bfed8554ca0a45ee IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0031758404 35.6
0xe2f89530c1394ed0e7c99cc4e92b01fb15a23855270b845b98213cddc80576acPay Native362112602022-11-29 11:36:239 days 15 hrs ago0x22baac1e95efc010e35d5ed643bb16c9db254a11 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.904761904761905 MATIC0.0072293214 64.6
0x36fe536f56a80be4a75d52c3b3e2acb33eaa04b2034875d805ebdc981e18b922Pay Native361692872022-11-28 10:38:3010 days 15 hrs ago0x9a4cb63e919adb3132c5576048ad40ad341171a9 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0040233259 45.1
0x6717251d9a5f839694b752164eef2abe7fc53da9a5f403419a65a33740b9135bPay Native361672522022-11-28 9:28:2710 days 17 hrs ago0x22baac1e95efc010e35d5ed643bb16c9db254a11 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0042374275 47.5
0x392606dd37cc666b0c71d3d53faa5d40b5f6edab765a0b71edc8bba948e1e459Pay Native361644442022-11-28 7:51:5110 days 18 hrs ago0x7c3375b5b253d50e09f35ed87c8bd4ae6c085dc2 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0035326764 39.6
0x1d90e10483948cacf1b2df623f3282efd91d0d4469bac061ec48e4abd8e545e4Pay Native361403982022-11-27 17:51:3011 days 8 hrs ago0x607aafcca9d4f0179c7685c3c65c7a084275dd8c IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.627906976744185 MATIC0.0049799505 44.5
0xfcaa495904d491c38d11de1e47e72049cea6cf0097803cdf34434ff4b45b7cd7Pay Native361382562022-11-27 16:31:3411 days 10 hrs ago0x39501a8d70bea6cd9527b9f38e3d5e9079dd8645 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0037289362 41.8
0xdbb3445003ff1284fdc1c3cde3a58419b60781377c28559d8f2d2fb25ea288a0Pay Native361246062022-11-27 8:21:5111 days 18 hrs ago0x51e975fb15e533d7901d03f90bc742d457c2354c IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a540 MATIC0.0043801619 49.1
0xe59c3dc1a4e03bfadfd00b379ed0ad663178ea1024b37b3f3ba1f79a37280679Pay Native361012562022-11-26 18:43:4312 days 7 hrs ago0x12c3a430099dcf05cc6efd0f219ed49d5b03d1e4 IN  0x066d3ae28e017ac1e08fa857ec68dfdc7de82a5411.764705882352942 MATIC0.0034244154 30.6
[ Download CSV Export 
Latest 21 internal transactions
Parent Txn Hash Block From To Value
0x21e4c3f05fe856756304a6a122dd67d0699510bf6b0c9613cea564d024ec34a4352090622022-11-04 23:32:1134 days 3 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da731,354.508217976328203 MATIC
0x1a20fa9438371dd183b4680bc3efb1973d72a4935b1637e9d9d6b012bd7c6fb5348170822022-10-26 9:10:3843 days 17 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da7353.420269961107295 MATIC
0xfc483629a4c79e05b648776efa81b24b9bdf3e4d62aa0ff1dc6f7b8063c9b61b348166672022-10-26 8:56:2443 days 17 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73300.633346618817083 MATIC
0xcdee32be8c017382a4e1cc6178e8c58deaf1b3ded65618a0bd407a83a28eda4f347889962022-10-25 16:45:0944 days 9 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73819.132238402732366 MATIC
0x5fd94550ed9460815f237666bbd3eae60606dc6fddd957b0c9fd9297f5083172345050052022-10-18 17:41:0551 days 8 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73993.020734077325564 MATIC
0x16425772fa70171fac571ff03272522b5af97aa9cde0db49fc115a2238a07b61339989612022-10-06 10:08:5263 days 16 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73567.769374439183081 MATIC
0x6ac5798135be63b7c58f676868a554bd15da2ccb0a5cf2a55efc98ae5fef43c5336258522022-09-27 9:39:4072 days 16 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da731,129.419924636643949 MATIC
0x3609247a7e163194c805a3f337d3a138935428bbadc1537a361be140dbe77d70330919532022-09-14 10:55:4785 days 15 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da731,555.701691371278869 MATIC
0x2abc5abcdfca659ea768308097bc1c2f062c102804a1a898c35fb00c115360fb326498452022-09-03 19:10:0896 days 7 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73400.1624606839763 MATIC
0x165831a2749cb6e7d92185c8d51920961473b75a36684d021a59ef089c617237322765362022-08-24 18:39:19106 days 7 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73506.910161785154176 MATIC
0x4c48ed3bbb8bb4c646e30db22b30f92998125585dbd7063e55a02714661b5e92317734892022-08-11 15:42:36119 days 10 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73263.358810818032785 MATIC
0xc917699ff66420a3f06be041caa38688fa56c11590260495a518eeec255614cd314721512022-08-03 12:20:00127 days 14 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73521.00872881351591 MATIC
0x4f530f506be1a9729b47b5bb1c365e4bb9a9004df739e8821c60ddf0291e9d5d313652372022-07-31 19:39:39130 days 6 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73392.563143845707504 MATIC
0x8988a2da3e35abd877cea7c94316465de62ef4f9054e962196ddd6e659b3f67f312767712022-07-29 13:04:59132 days 13 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73322.648366303865652 MATIC
0x195f790c87313241d3350ccf13db775a7abaa79e5b48c991f2616c3c8570d788312496012022-07-28 20:48:38133 days 5 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73493.29880739039153 MATIC
0x5728fc71e2fa124e29968f2110a6f48f357bab7beb4883288709c06a187d7f3a311995782022-07-27 14:17:10134 days 12 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73912.265643501790293 MATIC
0x48a17b9d162941ced1b1f269f3841b5128b11df1d5a5797c31161acc1c58b947311676072022-07-26 19:11:47135 days 7 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da731,291.581373634090582 MATIC
0x5df5f5eb6343d724cec14630ef97f5d5712e5ac4d146be79a0d0b70542babe21311283292022-07-25 16:47:58136 days 9 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da731,964.985047979644663 MATIC
0xf4018cc5b479d89159e561620948bd55ba3ddfa9ee83781adbc66cda28e9adbf310979612022-07-24 20:26:05137 days 6 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73526.253653643127323 MATIC
0xf61917f68bcead66b78cb5accaf1f3b2de2ac710853a2818e4350d82d9199d86303748112022-07-05 17:54:43156 days 8 hrs ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da7391.529173419058974 MATIC
0x62c8978417533e7576e65929e16d9f18e7b765e8626f24995a3dcb3cdea0f6b2297733772022-06-20 1:01:56172 days 1 hr ago 0x066d3ae28e017ac1e08fa857ec68dfdc7de82a54 0x6f0061af5af71bb035a2bff817e2199d64d2da73520.805501687854636 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
payments

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-06-06
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.1; 
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

contract payments {

    using SafeMath for uint256;
    mapping(string => uint256) percent;
    mapping(address => bool) private admins;
    address public contractOwner = msg.sender; 
    mapping(bytes32 => address) public receipts;
    mapping(bytes32 => uint256) public amounts;
    mapping(address => uint256) public balanceOf; 
    mapping(string => address) public delegate;
    mapping(string => bytes32) public IDrissHashes;

    constructor() {
        delegate["IDriss"] = contractOwner;
        percent["IDriss"] = 100;
    }

    event PaymentDone(address indexed payer, uint256 amount, bytes32 paymentId_hash, string indexed IDrissHash, uint256 date);
    event AdminAdded(address indexed admin);
    event AdminDeleted(address indexed admin);
    event DelegateAdded(string delegateHandle, address indexed delegateAddress);
    event DelegateDeleted(string delegateHandle, address indexed delegateAddress);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function addAdmin(address adminAddress) external {
        require(msg.sender == contractOwner, "Only contractOwner can add admins.");
        admins[adminAddress] = true;
        emit AdminAdded(adminAddress);
    }

    function deleteAdmin(address adminAddress) external {
        require(msg.sender == contractOwner, "Only contractOwner can delete admins.");
        admins[adminAddress] = false;
        emit AdminDeleted(adminAddress);
    }

    function addDelegateException(address delegateAddress, string memory delegateHandle, uint256 percentage) external {
        require(msg.sender == contractOwner, "Only contractOwner can add special delegate partner.");
        require(delegate[delegateHandle] == address(0), "Delegate handle exists.");
        require(delegateAddress != address(0), "Ownable: delegateAddress is the zero address.");
        delegate[delegateHandle] = delegateAddress;
        percent[delegateHandle] = percentage;
        emit DelegateAdded(delegateHandle, delegateAddress);
    }

    // Anyone can create a delegate link for anyone
    function addDelegate(address delegateAddress, string memory delegateHandle) external {
        require(delegate[delegateHandle] == address(0), "Delegate handle exists.");
        require(delegateAddress != address(0), "Ownable: delegateAddress is the zero address.");
        delegate[delegateHandle] = delegateAddress;
        percent[delegateHandle] = 20;
        emit DelegateAdded(delegateHandle, delegateAddress);
    }

    // Delete the delegation link if needed.
    function deleteDelegate(string memory delegateHandle) external {
        require(msg.sender == delegate[delegateHandle], "Only delegate can delete delegation link.");
        address deletedDelegate = delegate[delegateHandle];
        delete delegate[delegateHandle];
        delete percent[delegateHandle];
        emit DelegateDeleted(delegateHandle, deletedDelegate);
    }

    // Payment function distributing the payment into two balances.
    function payNative(bytes32 paymentId_hash, string memory IDrissHash, string memory delegateHandle) external payable {
        require(receipts[paymentId_hash] == address(0), "Already paid this receipt.");
        receipts[paymentId_hash] = msg.sender;
        amounts[paymentId_hash] = msg.value;
        IDrissHashes[IDrissHash] = paymentId_hash;
        if (delegate[delegateHandle] != address(0)) {
            balanceOf[contractOwner] += msg.value.sub((msg.value.mul(percent[delegateHandle])).div(100));
            balanceOf[delegate[delegateHandle]] += (msg.value.mul(percent[delegateHandle])).div(100);
        } else {
            balanceOf[contractOwner] += msg.value;
        }
        emit PaymentDone(receipts[paymentId_hash], amounts[paymentId_hash], paymentId_hash, IDrissHash, block.timestamp);
    }

    // Anyone can withraw funds to any participating delegate
    function withdraw(uint256 amount, string memory delegateHandle) external returns (bytes memory) {
        require(amount <= balanceOf[delegate[delegateHandle]]);
        balanceOf[delegate[delegateHandle]] -= amount;
        (bool sent, bytes memory data) = delegate[delegateHandle].call{value: amount, gas: 40000}("");
        require(sent, "Failed to  withdraw");
        return data;
    }

    // commit payment hash creation
    function hashReceipt(string memory receiptId, address paymAddr) public pure returns (bytes32) {
        require(paymAddr != address(0), "Payment address cannot be null address.");
        return keccak256(abi.encode(receiptId, paymAddr));
    }

    // reveal payment hash
    function verifyReceipt(string memory receiptId, address paymAddr) public view returns (bool) {
        require(paymAddr != address(0), "Payment address cannot be null address.");
        require(receipts[hashReceipt(receiptId, paymAddr)] == paymAddr);
        return true;
    }

    // Transfer contract ownership
    function transferContractOwnership(address newOwner) public payable {
        require(msg.sender == contractOwner, "Only contractOwner can change ownership of contract.");
        require(newOwner != address(0), "Ownable: new contractOwner is the zero address.");
        _transferOwnership(newOwner);
    }

    // Helper function
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = contractOwner;
        // transfer balance of old owner to new owner
        uint256 ownerAmount = balanceOf[oldOwner];
        // delete balance of old owner
        balanceOf[oldOwner] = 0;
        contractOwner = newOwner;
        // set new owner
        delegate["IDriss"] = newOwner;
        // set balance of new owner
        balanceOf[newOwner] = ownerAmount;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"AdminDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"delegateHandle","type":"string"},{"indexed":true,"internalType":"address","name":"delegateAddress","type":"address"}],"name":"DelegateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"delegateHandle","type":"string"},{"indexed":true,"internalType":"address","name":"delegateAddress","type":"address"}],"name":"DelegateDeleted","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":"payer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"paymentId_hash","type":"bytes32"},{"indexed":true,"internalType":"string","name":"IDrissHash","type":"string"},{"indexed":false,"internalType":"uint256","name":"date","type":"uint256"}],"name":"PaymentDone","type":"event"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"IDrissHashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegateAddress","type":"address"},{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"addDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegateAddress","type":"address"},{"internalType":"string","name":"delegateHandle","type":"string"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"addDelegateException","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"amounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"delegate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"deleteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"deleteDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"receiptId","type":"string"},{"internalType":"address","name":"paymAddr","type":"address"}],"name":"hashReceipt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"paymentId_hash","type":"bytes32"},{"internalType":"string","name":"IDrissHash","type":"string"},{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"payNative","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"receipts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferContractOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"string","name":"receiptId","type":"string"},{"internalType":"address","name":"paymAddr","type":"address"}],"name":"verifyReceipt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"delegateHandle","type":"string"}],"name":"withdraw","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"}]

608060405233600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005257600080fd5b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006604051620000869062000123565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646000604051620000e49062000123565b9081526020016040518091039020819055506200016e565b60006200010b6006836200013a565b9150620001188262000145565b600682019050919050565b60006200013082620000fc565b9150819050919050565b600081905092915050565b7f4944726973730000000000000000000000000000000000000000000000000000600082015250565b61280f806200017e6000396000f3fe6080604052600436106100f35760003560e01c8063923c85d51161008a578063ca7b620511610059578063ca7b620514610342578063ce606ee01461036b578063dc048cf214610396578063ef6cf04d146103d3576100f3565b8063923c85d5146102835780639ddb511a146102ac578063a843c51f146102e9578063c8662d9514610305576100f3565b806356dcb58d116100c657806356dcb58d146101b7578063658b626e146101e0578063704802751461021d57806370a0823114610246576100f3565b8063064cdcdc146100f85780630960d7791461013557806327e1f7df14610151578063464e49271461017a575b600080fd5b34801561010457600080fd5b5061011f600480360381019061011a9190611b12565b610410565b60405161012c9190611f18565b60405180910390f35b61014f600480360381019061014a9190611a93565b61043e565b005b34801561015d57600080fd5b5061017860048036038101906101739190611986565b6108b4565b005b34801561018657600080fd5b506101a1600480360381019061019c9190611b53565b6109e2565b6040516101ae9190611f18565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906119af565b610a84565b005b3480156101ec57600080fd5b5061020760048036038101906102029190611b53565b610c74565b6040516102149190611efd565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190611986565b610d63565b005b34801561025257600080fd5b5061026d60048036038101906102689190611986565b610e90565b60405161027a9190612107565b60405180910390f35b34801561028f57600080fd5b506102aa60048036038101906102a59190611b12565b610ea8565b005b3480156102b857600080fd5b506102d360048036038101906102ce9190611b12565b61104c565b6040516102e09190611ee2565b60405180910390f35b61030360048036038101906102fe9190611986565b611095565b005b34801561031157600080fd5b5061032c60048036038101906103279190611a6a565b6111a1565b6040516103399190612107565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190611a03565b6111b9565b005b34801561037757600080fd5b50610380611439565b60405161038d9190611ee2565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190611ba7565b61145f565b6040516103ca9190611f33565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190611a6a565b61167b565b6040516104079190611ee2565b60405180910390f35b6007818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600073ffffffffffffffffffffffffffffffffffffffff166003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d790611fa7565b60405180910390fd5b336003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503460046000858152602001908152602001600020819055508260078360405161055b9190611ea1565b908152602001604051809103902081905550600073ffffffffffffffffffffffffffffffffffffffff166006826040516105959190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107885761063561062660646106186000856040516105fa9190611ea1565b908152602001604051809103902054346116ae90919063ffffffff16565b6116c490919063ffffffff16565b346116da90919063ffffffff16565b60056000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106a591906121fd565b925050819055506106f060646106e26000846040516106c49190611ea1565b908152602001604051809103902054346116ae90919063ffffffff16565b6116c490919063ffffffff16565b600560006006846040516107049190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461077c91906121fd565b92505081905550610801565b3460056000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107f991906121fd565b925050819055505b8160405161080f9190611ea1565b60405180910390206003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2686fa1c4fa7eb7d1d1bf7209fb9691d4182302db1c43b4d15db644665421912600460008781526020019081526020016000205486426040516108a793929190612122565b60405180910390a3505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093b90611fe7565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f989ddfce057dad219e0ae16f691b121bb0e348f0d8ae0ad400b4d5ac8d616c8b60405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4a906120e7565b60405180910390fd5b8282604051602001610a66929190611f77565b60405160208183030381529060405280519060200120905092915050565b600073ffffffffffffffffffffffffffffffffffffffff16600682604051610aac9190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2890611fc7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b98906120c7565b60405180910390fd5b81600682604051610bb29190611ea1565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014600082604051610c109190611ea1565b9081526020016040518091039020819055508173ffffffffffffffffffffffffffffffffffffffff167f7725d75decde45f52c5f59ef6bcb3c1129181396cff579819d367a32256b6cf582604051610c689190611f55565b60405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906120e7565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660036000610d0a86866109e2565b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5957600080fd5b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea906120a7565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a250565b60056020528060005260406000206000915090505481565b600681604051610eb89190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612047565b60405180910390fd5b6000600682604051610f669190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600682604051610fa79190611ea1565b908152602001604051809103902060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600082604051610fe89190611ea1565b9081526020016040518091039020600090558073ffffffffffffffffffffffffffffffffffffffff167fe58813483134131f95838d689a35b4bb93e7ce7c108fa88f82aacb6440436469836040516110409190611f55565b60405180910390a25050565b6006818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111c90612087565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90612007565b60405180910390fd5b61119e816116f0565b50565b60046020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090612067565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166006836040516112719190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90611fc7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d906120c7565b60405180910390fd5b826006836040516113779190611ea1565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000836040516113d49190611ea1565b9081526020016040518091039020819055508273ffffffffffffffffffffffffffffffffffffffff167f7725d75decde45f52c5f59ef6bcb3c1129181396cff579819d367a32256b6cf58360405161142c9190611f55565b60405180910390a2505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600560006006846040516114759190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311156114eb57600080fd5b82600560006006856040516115009190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461157891906122de565b925050819055506000806006846040516115929190611ea1565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685619c40906040516115e890611ecd565b600060405180830381858888f193505050503d8060008114611626576040519150601f19603f3d011682016040523d82523d6000602084013e61162b565b606091505b509150915081611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612027565b60405180910390fd5b809250505092915050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081836116bc9190612284565b905092915050565b600081836116d29190612253565b905092915050565b600081836116e891906122de565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260066040516117f090611eb8565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b60006118f26118ed8461217e565b612159565b90508281526020810184848401111561190a57600080fd5b611915848285612364565b509392505050565b60008135905061192c81612794565b92915050565b600081359050611941816127ab565b92915050565b600082601f83011261195857600080fd5b81356119688482602086016118df565b91505092915050565b600081359050611980816127c2565b92915050565b60006020828403121561199857600080fd5b60006119a68482850161191d565b91505092915050565b600080604083850312156119c257600080fd5b60006119d08582860161191d565b925050602083013567ffffffffffffffff8111156119ed57600080fd5b6119f985828601611947565b9150509250929050565b600080600060608486031215611a1857600080fd5b6000611a268682870161191d565b935050602084013567ffffffffffffffff811115611a4357600080fd5b611a4f86828701611947565b9250506040611a6086828701611971565b9150509250925092565b600060208284031215611a7c57600080fd5b6000611a8a84828501611932565b91505092915050565b600080600060608486031215611aa857600080fd5b6000611ab686828701611932565b935050602084013567ffffffffffffffff811115611ad357600080fd5b611adf86828701611947565b925050604084013567ffffffffffffffff811115611afc57600080fd5b611b0886828701611947565b9150509250925092565b600060208284031215611b2457600080fd5b600082013567ffffffffffffffff811115611b3e57600080fd5b611b4a84828501611947565b91505092915050565b60008060408385031215611b6657600080fd5b600083013567ffffffffffffffff811115611b8057600080fd5b611b8c85828601611947565b9250506020611b9d8582860161191d565b9150509250929050565b60008060408385031215611bba57600080fd5b6000611bc885828601611971565b925050602083013567ffffffffffffffff811115611be557600080fd5b611bf185828601611947565b9150509250929050565b611c0481612312565b82525050565b611c1381612324565b82525050565b611c2281612330565b82525050565b6000611c33826121af565b611c3d81856121c5565b9350611c4d818560208601612373565b611c5681612464565b840191505092915050565b6000611c6c826121ba565b611c7681856121e1565b9350611c86818560208601612373565b611c8f81612464565b840191505092915050565b6000611ca5826121ba565b611caf81856121f2565b9350611cbf818560208601612373565b80840191505092915050565b6000611cd8601a836121e1565b9150611ce382612475565b602082019050919050565b6000611cfb6017836121e1565b9150611d068261249e565b602082019050919050565b6000611d1e6025836121e1565b9150611d29826124c7565b604082019050919050565b6000611d416006836121f2565b9150611d4c82612516565b600682019050919050565b6000611d64602f836121e1565b9150611d6f8261253f565b604082019050919050565b6000611d876013836121e1565b9150611d928261258e565b602082019050919050565b6000611daa6029836121e1565b9150611db5826125b7565b604082019050919050565b6000611dcd6034836121e1565b9150611dd882612606565b604082019050919050565b6000611df06034836121e1565b9150611dfb82612655565b604082019050919050565b6000611e136022836121e1565b9150611e1e826126a4565b604082019050919050565b6000611e36602d836121e1565b9150611e41826126f3565b604082019050919050565b6000611e596000836121d6565b9150611e6482612742565b600082019050919050565b6000611e7c6027836121e1565b9150611e8782612745565b604082019050919050565b611e9b8161235a565b82525050565b6000611ead8284611c9a565b915081905092915050565b6000611ec382611d34565b9150819050919050565b6000611ed882611e4c565b9150819050919050565b6000602082019050611ef76000830184611bfb565b92915050565b6000602082019050611f126000830184611c0a565b92915050565b6000602082019050611f2d6000830184611c19565b92915050565b60006020820190508181036000830152611f4d8184611c28565b905092915050565b60006020820190508181036000830152611f6f8184611c61565b905092915050565b60006040820190508181036000830152611f918185611c61565b9050611fa06020830184611bfb565b9392505050565b60006020820190508181036000830152611fc081611ccb565b9050919050565b60006020820190508181036000830152611fe081611cee565b9050919050565b6000602082019050818103600083015261200081611d11565b9050919050565b6000602082019050818103600083015261202081611d57565b9050919050565b6000602082019050818103600083015261204081611d7a565b9050919050565b6000602082019050818103600083015261206081611d9d565b9050919050565b6000602082019050818103600083015261208081611dc0565b9050919050565b600060208201905081810360008301526120a081611de3565b9050919050565b600060208201905081810360008301526120c081611e06565b9050919050565b600060208201905081810360008301526120e081611e29565b9050919050565b6000602082019050818103600083015261210081611e6f565b9050919050565b600060208201905061211c6000830184611e92565b92915050565b60006060820190506121376000830186611e92565b6121446020830185611c19565b6121516040830184611e92565b949350505050565b6000612163612174565b905061216f82826123a6565b919050565b6000604051905090565b600067ffffffffffffffff82111561219957612198612435565b5b6121a282612464565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006122088261235a565b91506122138361235a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612248576122476123d7565b5b828201905092915050565b600061225e8261235a565b91506122698361235a565b92508261227957612278612406565b5b828204905092915050565b600061228f8261235a565b915061229a8361235a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122d3576122d26123d7565b5b828202905092915050565b60006122e98261235a565b91506122f48361235a565b925082821015612307576123066123d7565b5b828203905092915050565b600061231d8261233a565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612391578082015181840152602081019050612376565b838111156123a0576000848401525b50505050565b6123af82612464565b810181811067ffffffffffffffff821117156123ce576123cd612435565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f416c72656164792070616964207468697320726563656970742e000000000000600082015250565b7f44656c65676174652068616e646c65206578697374732e000000000000000000600082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2064656c65746520616460008201527f6d696e732e000000000000000000000000000000000000000000000000000000602082015250565b7f4944726973730000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e657720636f6e74726163744f776e657220697320746860008201527f65207a65726f20616464726573732e0000000000000000000000000000000000602082015250565b7f4661696c656420746f2020776974686472617700000000000000000000000000600082015250565b7f4f6e6c792064656c65676174652063616e2064656c6574652064656c6567617460008201527f696f6e206c696e6b2e0000000000000000000000000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e2061646420737065636960008201527f616c2064656c656761746520706172746e65722e000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206368616e6765206f7760008201527f6e657273686970206f6620636f6e74726163742e000000000000000000000000602082015250565b7f4f6e6c7920636f6e74726163744f776e65722063616e206164642061646d696e60008201527f732e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2064656c656761746541646472657373206973207468652060008201527f7a65726f20616464726573732e00000000000000000000000000000000000000602082015250565b50565b7f5061796d656e7420616464726573732063616e6e6f74206265206e756c6c206160008201527f6464726573732e00000000000000000000000000000000000000000000000000602082015250565b61279d81612312565b81146127a857600080fd5b50565b6127b481612330565b81146127bf57600080fd5b50565b6127cb8161235a565b81146127d657600080fd5b5056fea26469706673582212205a372bf14748525310b69d4d3fda3fb9f16733b263ac75315a3508d0328d60fc64736f6c63430008010033

Deployed ByteCode Sourcemap

6574:5908:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6970:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9653:827;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7842:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10994:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8710:430;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11277:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7614:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6869:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9194:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6921:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11603:311;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6820:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8079:570;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6721:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10551:398;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6770:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6970:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9653:827::-;9824:1;9788:38;;:8;:24;9797:14;9788:24;;;;;;;;;;;;;;;;;;;;;:38;;;9780:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9895:10;9868:8;:24;9877:14;9868:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9942:9;9916:7;:23;9924:14;9916:23;;;;;;;;;;;:35;;;;9989:14;9962:12;9975:10;9962:24;;;;;;:::i;:::-;;;;;;;;;;;;;:41;;;;10054:1;10018:38;;:8;10027:14;10018:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:38;;;10014:336;;10101:64;10115:49;10160:3;10116:38;10130:7;10138:14;10130:23;;;;;;:::i;:::-;;;;;;;;;;;;;;10116:9;:13;;:38;;;;:::i;:::-;10115:44;;:49;;;;:::i;:::-;10101:9;:13;;:64;;;;:::i;:::-;10073:9;:24;10083:13;;;;;;;;;;;10073:24;;;;;;;;;;;;;;;;:92;;;;;;;:::i;:::-;;;;;;;;10219:49;10264:3;10220:38;10234:7;10242:14;10234:23;;;;;;:::i;:::-;;;;;;;;;;;;;;10220:9;:13;;:38;;;;:::i;:::-;10219:44;;:49;;;;:::i;:::-;10180:9;:35;10190:8;10199:14;10190:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10180:35;;;;;;;;;;;;;;;;:88;;;;;;;:::i;:::-;;;;;;;;10014:336;;;10329:9;10301;:24;10311:13;;;;;;;;;;;10301:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;10014:336;10444:10;10365:107;;;;;;:::i;:::-;;;;;;;;10377:8;:24;10386:14;10377:24;;;;;;;;;;;;;;;;;;;;;10365:107;;;10403:7;:23;10411:14;10403:23;;;;;;;;;;;;10428:14;10456:15;10365:107;;;;;;;;:::i;:::-;;;;;;;;9653:827;;;:::o;7842:229::-;7927:13;;;;;;;;;;;7913:27;;:10;:27;;;7905:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8016:5;7993:6;:20;8000:12;7993:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;8050:12;8037:26;;;;;;;;;;;;7842:229;:::o;10994:247::-;11079:7;11127:1;11107:22;;:8;:22;;;;11099:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11212:9;11223:8;11201:31;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11191:42;;;;;;11184:49;;10994:247;;;;:::o;8710:430::-;8850:1;8814:38;;:8;8823:14;8814:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:38;;;8806:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8926:1;8899:29;;:15;:29;;;;8891:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9016:15;8989:8;8998:14;8989:24;;;;;;:::i;:::-;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;9068:2;9042:7;9050:14;9042:23;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;;;9116:15;9086:46;;;9100:14;9086:46;;;;;;:::i;:::-;;;;;;;;8710:430;;:::o;11277:282::-;11364:4;11409:1;11389:22;;:8;:22;;;;11381:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11520:8;11474:54;;:8;:42;11483:32;11495:9;11506:8;11483:11;:32::i;:::-;11474:42;;;;;;;;;;;;;;;;;;;;;:54;;;11466:63;;;;;;11547:4;11540:11;;11277:282;;;;:::o;7614:220::-;7696:13;;;;;;;;;;;7682:27;;:10;:27;;;7674:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7782:4;7759:6;:20;7766:12;7759:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7813:12;7802:24;;;;;;;;;;;;7614:220;:::o;6869:44::-;;;;;;;;;;;;;;;;;:::o;9194:382::-;9290:8;9299:14;9290:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9276:38;;:10;:38;;;9268:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;9371:23;9397:8;9406:14;9397:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9371:50;;9439:8;9448:14;9439:24;;;;;;:::i;:::-;;;;;;;;;;;;;;9432:31;;;;;;;;;;;9481:7;9489:14;9481:23;;;;;;:::i;:::-;;;;;;;;;;;;;9474:30;;;9552:15;9520:48;;;9536:14;9520:48;;;;;;:::i;:::-;;;;;;;;9194:382;;:::o;6921:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11603:311::-;11704:13;;;;;;;;;;;11690:27;;:10;:27;;;11682:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;11813:1;11793:22;;:8;:22;;;;11785:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;11878:28;11897:8;11878:18;:28::i;:::-;11603:311;:::o;6820:42::-;;;;;;;;;;;;;;;;;:::o;8079:570::-;8226:13;;;;;;;;;;;8212:27;;:10;:27;;;8204:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;8351:1;8315:38;;:8;8324:14;8315:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:38;;;8307:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8427:1;8400:29;;:15;:29;;;;8392:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8517:15;8490:8;8499:14;8490:24;;;;;;:::i;:::-;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;8569:10;8543:7;8551:14;8543:23;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;;;8625:15;8595:46;;;8609:14;8595:46;;;;;;:::i;:::-;;;;;;;;8079:570;;;:::o;6721:41::-;;;;;;;;;;;;;:::o;10551:398::-;10633:12;10676:9;:35;10686:8;10695:14;10686:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10676:35;;;;;;;;;;;;;;;;10666:6;:45;;10658:54;;;;;;10762:6;10723:9;:35;10733:8;10742:14;10733:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10723:35;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;10780:9;10791:17;10812:8;10821:14;10812:24;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:29;;10849:6;10862:5;10812:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10779:93;;;;10891:4;10883:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;10937:4;10930:11;;;;10551:398;;;;:::o;6770:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;3147:98::-;3205:7;3236:1;3232;:5;;;;:::i;:::-;3225:12;;3147:98;;;;:::o;3546:::-;3604:7;3635:1;3631;:5;;;;:::i;:::-;3624:12;;3546:98;;;;:::o;2790:::-;2848:7;2879:1;2875;:5;;;;:::i;:::-;2868:12;;2790:98;;;;:::o;11946:533::-;12020:16;12039:13;;;;;;;;;;;12020:32;;12118:19;12140:9;:19;12150:8;12140:19;;;;;;;;;;;;;;;;12118:41;;12232:1;12210:9;:19;12220:8;12210:19;;;;;;;;;;;;;;;:23;;;;12260:8;12244:13;;:24;;;;;;;;;;;;;;;;;;12326:8;12305;:18;;;;;:::i;:::-;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;12404:11;12382:9;:19;12392:8;12382:19;;;;;;;;;;;;;;;:33;;;;12462:8;12431:40;;12452:8;12431:40;;;;;;;;;;;;11946:533;;;:::o;7:345:1:-;;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:2;;;292:1;289;282:12;251:2;305:41;339:6;334:3;329;305:41;:::i;:::-;91:261;;;;;;:::o;358:139::-;;442:6;429:20;420:29;;458:33;485:5;458:33;:::i;:::-;410:87;;;;:::o;503:139::-;;587:6;574:20;565:29;;603:33;630:5;603:33;:::i;:::-;555:87;;;;:::o;662:273::-;;767:3;760:4;752:6;748:17;744:27;734:2;;785:1;782;775:12;734:2;825:6;812:20;850:79;925:3;917:6;910:4;902:6;898:17;850:79;:::i;:::-;841:88;;724:211;;;;;:::o;941:139::-;;1025:6;1012:20;1003:29;;1041:33;1068:5;1041:33;:::i;:::-;993:87;;;;:::o;1086:262::-;;1194:2;1182:9;1173:7;1169:23;1165:32;1162:2;;;1210:1;1207;1200:12;1162:2;1253:1;1278:53;1323:7;1314:6;1303:9;1299:22;1278:53;:::i;:::-;1268:63;;1224:117;1152:196;;;;:::o;1354:520::-;;;1489:2;1477:9;1468:7;1464:23;1460:32;1457:2;;;1505:1;1502;1495:12;1457:2;1548:1;1573:53;1618:7;1609:6;1598:9;1594:22;1573:53;:::i;:::-;1563:63;;1519:117;1703:2;1692:9;1688:18;1675:32;1734:18;1726:6;1723:30;1720:2;;;1766:1;1763;1756:12;1720:2;1794:63;1849:7;1840:6;1829:9;1825:22;1794:63;:::i;:::-;1784:73;;1646:221;1447:427;;;;;:::o;1880:665::-;;;;2032:2;2020:9;2011:7;2007:23;2003:32;2000:2;;;2048:1;2045;2038:12;2000:2;2091:1;2116:53;2161:7;2152:6;2141:9;2137:22;2116:53;:::i;:::-;2106:63;;2062:117;2246:2;2235:9;2231:18;2218:32;2277:18;2269:6;2266:30;2263:2;;;2309:1;2306;2299:12;2263:2;2337:63;2392:7;2383:6;2372:9;2368:22;2337:63;:::i;:::-;2327:73;;2189:221;2449:2;2475:53;2520:7;2511:6;2500:9;2496:22;2475:53;:::i;:::-;2465:63;;2420:118;1990:555;;;;;:::o;2551:262::-;;2659:2;2647:9;2638:7;2634:23;2630:32;2627:2;;;2675:1;2672;2665:12;2627:2;2718:1;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2689:117;2617:196;;;;:::o;2819:778::-;;;;2981:2;2969:9;2960:7;2956:23;2952:32;2949:2;;;2997:1;2994;2987:12;2949:2;3040:1;3065:53;3110:7;3101:6;3090:9;3086:22;3065:53;:::i;:::-;3055:63;;3011:117;3195:2;3184:9;3180:18;3167:32;3226:18;3218:6;3215:30;3212:2;;;3258:1;3255;3248:12;3212:2;3286:63;3341:7;3332:6;3321:9;3317:22;3286:63;:::i;:::-;3276:73;;3138:221;3426:2;3415:9;3411:18;3398:32;3457:18;3449:6;3446:30;3443:2;;;3489:1;3486;3479:12;3443:2;3517:63;3572:7;3563:6;3552:9;3548:22;3517:63;:::i;:::-;3507:73;;3369:221;2939:658;;;;;:::o;3603:375::-;;3721:2;3709:9;3700:7;3696:23;3692:32;3689:2;;;3737:1;3734;3727:12;3689:2;3808:1;3797:9;3793:17;3780:31;3838:18;3830:6;3827:30;3824:2;;;3870:1;3867;3860:12;3824:2;3898:63;3953:7;3944:6;3933:9;3929:22;3898:63;:::i;:::-;3888:73;;3751:220;3679:299;;;;:::o;3984:520::-;;;4119:2;4107:9;4098:7;4094:23;4090:32;4087:2;;;4135:1;4132;4125:12;4087:2;4206:1;4195:9;4191:17;4178:31;4236:18;4228:6;4225:30;4222:2;;;4268:1;4265;4258:12;4222:2;4296:63;4351:7;4342:6;4331:9;4327:22;4296:63;:::i;:::-;4286:73;;4149:220;4408:2;4434:53;4479:7;4470:6;4459:9;4455:22;4434:53;:::i;:::-;4424:63;;4379:118;4077:427;;;;;:::o;4510:520::-;;;4645:2;4633:9;4624:7;4620:23;4616:32;4613:2;;;4661:1;4658;4651:12;4613:2;4704:1;4729:53;4774:7;4765:6;4754:9;4750:22;4729:53;:::i;:::-;4719:63;;4675:117;4859:2;4848:9;4844:18;4831:32;4890:18;4882:6;4879:30;4876:2;;;4922:1;4919;4912:12;4876:2;4950:63;5005:7;4996:6;4985:9;4981:22;4950:63;:::i;:::-;4940:73;;4802:221;4603:427;;;;;:::o;5036:118::-;5123:24;5141:5;5123:24;:::i;:::-;5118:3;5111:37;5101:53;;:::o;5160:109::-;5241:21;5256:5;5241:21;:::i;:::-;5236:3;5229:34;5219:50;;:::o;5275:118::-;5362:24;5380:5;5362:24;:::i;:::-;5357:3;5350:37;5340:53;;:::o;5399:360::-;;5513:38;5545:5;5513:38;:::i;:::-;5567:70;5630:6;5625:3;5567:70;:::i;:::-;5560:77;;5646:52;5691:6;5686:3;5679:4;5672:5;5668:16;5646:52;:::i;:::-;5723:29;5745:6;5723:29;:::i;:::-;5718:3;5714:39;5707:46;;5489:270;;;;;:::o;5765:364::-;;5881:39;5914:5;5881:39;:::i;:::-;5936:71;6000:6;5995:3;5936:71;:::i;:::-;5929:78;;6016:52;6061:6;6056:3;6049:4;6042:5;6038:16;6016:52;:::i;:::-;6093:29;6115:6;6093:29;:::i;:::-;6088:3;6084:39;6077:46;;5857:272;;;;;:::o;6135:377::-;;6269:39;6302:5;6269:39;:::i;:::-;6324:89;6406:6;6401:3;6324:89;:::i;:::-;6317:96;;6422:52;6467:6;6462:3;6455:4;6448:5;6444:16;6422:52;:::i;:::-;6499:6;6494:3;6490:16;6483:23;;6245:267;;;;;:::o;6518:366::-;;6681:67;6745:2;6740:3;6681:67;:::i;:::-;6674:74;;6757:93;6846:3;6757:93;:::i;:::-;6875:2;6870:3;6866:12;6859:19;;6664:220;;;:::o;6890:366::-;;7053:67;7117:2;7112:3;7053:67;:::i;:::-;7046:74;;7129:93;7218:3;7129:93;:::i;:::-;7247:2;7242:3;7238:12;7231:19;;7036:220;;;:::o;7262:366::-;;7425:67;7489:2;7484:3;7425:67;:::i;:::-;7418:74;;7501:93;7590:3;7501:93;:::i;:::-;7619:2;7614:3;7610:12;7603:19;;7408:220;;;:::o;7634:400::-;;7815:84;7897:1;7892:3;7815:84;:::i;:::-;7808:91;;7908:93;7997:3;7908:93;:::i;:::-;8026:1;8021:3;8017:11;8010:18;;7798:236;;;:::o;8040:366::-;;8203:67;8267:2;8262:3;8203:67;:::i;:::-;8196:74;;8279:93;8368:3;8279:93;:::i;:::-;8397:2;8392:3;8388:12;8381:19;;8186:220;;;:::o;8412:366::-;;8575:67;8639:2;8634:3;8575:67;:::i;:::-;8568:74;;8651:93;8740:3;8651:93;:::i;:::-;8769:2;8764:3;8760:12;8753:19;;8558:220;;;:::o;8784:366::-;;8947:67;9011:2;9006:3;8947:67;:::i;:::-;8940:74;;9023:93;9112:3;9023:93;:::i;:::-;9141:2;9136:3;9132:12;9125:19;;8930:220;;;:::o;9156:366::-;;9319:67;9383:2;9378:3;9319:67;:::i;:::-;9312:74;;9395:93;9484:3;9395:93;:::i;:::-;9513:2;9508:3;9504:12;9497:19;;9302:220;;;:::o;9528:366::-;;9691:67;9755:2;9750:3;9691:67;:::i;:::-;9684:74;;9767:93;9856:3;9767:93;:::i;:::-;9885:2;9880:3;9876:12;9869:19;;9674:220;;;:::o;9900:366::-;;10063:67;10127:2;10122:3;10063:67;:::i;:::-;10056:74;;10139:93;10228:3;10139:93;:::i;:::-;10257:2;10252:3;10248:12;10241:19;;10046:220;;;:::o;10272:366::-;;10435:67;10499:2;10494:3;10435:67;:::i;:::-;10428:74;;10511:93;10600:3;10511:93;:::i;:::-;10629:2;10624:3;10620:12;10613:19;;10418:220;;;:::o;10644:398::-;;10824:83;10905:1;10900:3;10824:83;:::i;:::-;10817:90;;10916:93;11005:3;10916:93;:::i;:::-;11034:1;11029:3;11025:11;11018:18;;10807:235;;;:::o;11048:366::-;;11211:67;11275:2;11270:3;11211:67;:::i;:::-;11204:74;;11287:93;11376:3;11287:93;:::i;:::-;11405:2;11400:3;11396:12;11389:19;;11194:220;;;:::o;11420:118::-;11507:24;11525:5;11507:24;:::i;:::-;11502:3;11495:37;11485:53;;:::o;11544:275::-;;11698:95;11789:3;11780:6;11698:95;:::i;:::-;11691:102;;11810:3;11803:10;;11680:139;;;;:::o;11825:381::-;;12032:148;12176:3;12032:148;:::i;:::-;12025:155;;12197:3;12190:10;;12014:192;;;:::o;12212:379::-;;12418:147;12561:3;12418:147;:::i;:::-;12411:154;;12582:3;12575:10;;12400:191;;;:::o;12597:222::-;;12728:2;12717:9;12713:18;12705:26;;12741:71;12809:1;12798:9;12794:17;12785:6;12741:71;:::i;:::-;12695:124;;;;:::o;12825:210::-;;12950:2;12939:9;12935:18;12927:26;;12963:65;13025:1;13014:9;13010:17;13001:6;12963:65;:::i;:::-;12917:118;;;;:::o;13041:222::-;;13172:2;13161:9;13157:18;13149:26;;13185:71;13253:1;13242:9;13238:17;13229:6;13185:71;:::i;:::-;13139:124;;;;:::o;13269:309::-;;13418:2;13407:9;13403:18;13395:26;;13467:9;13461:4;13457:20;13453:1;13442:9;13438:17;13431:47;13495:76;13566:4;13557:6;13495:76;:::i;:::-;13487:84;;13385:193;;;;:::o;13584:313::-;;13735:2;13724:9;13720:18;13712:26;;13784:9;13778:4;13774:20;13770:1;13759:9;13755:17;13748:47;13812:78;13885:4;13876:6;13812:78;:::i;:::-;13804:86;;13702:195;;;;:::o;13903:423::-;;14082:2;14071:9;14067:18;14059:26;;14131:9;14125:4;14121:20;14117:1;14106:9;14102:17;14095:47;14159:78;14232:4;14223:6;14159:78;:::i;:::-;14151:86;;14247:72;14315:2;14304:9;14300:18;14291:6;14247:72;:::i;:::-;14049:277;;;;;:::o;14332:419::-;;14536:2;14525:9;14521:18;14513:26;;14585:9;14579:4;14575:20;14571:1;14560:9;14556:17;14549:47;14613:131;14739:4;14613:131;:::i;:::-;14605:139;;14503:248;;;:::o;14757:419::-;;14961:2;14950:9;14946:18;14938:26;;15010:9;15004:4;15000:20;14996:1;14985:9;14981:17;14974:47;15038:131;15164:4;15038:131;:::i;:::-;15030:139;;14928:248;;;:::o;15182:419::-;;15386:2;15375:9;15371:18;15363:26;;15435:9;15429:4;15425:20;15421:1;15410:9;15406:17;15399:47;15463:131;15589:4;15463:131;:::i;:::-;15455:139;;15353:248;;;:::o;15607:419::-;;15811:2;15800:9;15796:18;15788:26;;15860:9;15854:4;15850:20;15846:1;15835:9;15831:17;15824:47;15888:131;16014:4;15888:131;:::i;:::-;15880:139;;15778:248;;;:::o;16032:419::-;;16236:2;16225:9;16221:18;16213:26;;16285:9;16279:4;16275:20;16271:1;16260:9;16256:17;16249:47;16313:131;16439:4;16313:131;:::i;:::-;16305:139;;16203:248;;;:::o;16457:419::-;;16661:2;16650:9;16646:18;16638:26;;16710:9;16704:4;16700:20;16696:1;16685:9;16681:17;16674:47;16738:131;16864:4;16738:131;:::i;:::-;16730:139;;16628:248;;;:::o;16882:419::-;;17086:2;17075:9;17071:18;17063:26;;17135:9;17129:4;17125:20;17121:1;17110:9;17106:17;17099:47;17163:131;17289:4;17163:131;:::i;:::-;17155:139;;17053:248;;;:::o;17307:419::-;;17511:2;17500:9;17496:18;17488:26;;17560:9;17554:4;17550:20;17546:1;17535:9;17531:17;17524:47;17588:131;17714:4;17588:131;:::i;:::-;17580:139;;17478:248;;;:::o;17732:419::-;;17936:2;17925:9;17921:18;17913:26;;17985:9;17979:4;17975:20;17971:1;17960:9;17956:17;17949:47;18013:131;18139:4;18013:131;:::i;:::-;18005:139;;17903:248;;;:::o;18157:419::-;;18361:2;18350:9;18346:18;18338:26;;18410:9;18404:4;18400:20;18396:1;18385:9;18381:17;18374:47;18438:131;18564:4;18438:131;:::i;:::-;18430:139;;18328:248;;;:::o;18582:419::-;;18786:2;18775:9;18771:18;18763:26;;18835:9;18829:4;18825:20;18821:1;18810:9;18806:17;18799:47;18863:131;18989:4;18863:131;:::i;:::-;18855:139;;18753:248;;;:::o;19007:222::-;;19138:2;19127:9;19123:18;19115:26;;19151:71;19219:1;19208:9;19204:17;19195:6;19151:71;:::i;:::-;19105:124;;;;:::o;19235:442::-;;19422:2;19411:9;19407:18;19399:26;;19435:71;19503:1;19492:9;19488:17;19479:6;19435:71;:::i;:::-;19516:72;19584:2;19573:9;19569:18;19560:6;19516:72;:::i;:::-;19598;19666:2;19655:9;19651:18;19642:6;19598:72;:::i;:::-;19389:288;;;;;;:::o;19683:129::-;;19744:20;;:::i;:::-;19734:30;;19773:33;19801:4;19793:6;19773:33;:::i;:::-;19724:88;;;:::o;19818:75::-;;19884:2;19878:9;19868:19;;19858:35;:::o;19899:308::-;;20051:18;20043:6;20040:30;20037:2;;;20073:18;;:::i;:::-;20037:2;20111:29;20133:6;20111:29;:::i;:::-;20103:37;;20195:4;20189;20185:15;20177:23;;19966:241;;;:::o;20213:98::-;;20298:5;20292:12;20282:22;;20271:40;;;:::o;20317:99::-;;20403:5;20397:12;20387:22;;20376:40;;;:::o;20422:168::-;;20539:6;20534:3;20527:19;20579:4;20574:3;20570:14;20555:29;;20517:73;;;;:::o;20596:147::-;;20734:3;20719:18;;20709:34;;;;:::o;20749:169::-;;20867:6;20862:3;20855:19;20907:4;20902:3;20898:14;20883:29;;20845:73;;;;:::o;20924:148::-;;21063:3;21048:18;;21038:34;;;;:::o;21078:305::-;;21137:20;21155:1;21137:20;:::i;:::-;21132:25;;21171:20;21189:1;21171:20;:::i;:::-;21166:25;;21325:1;21257:66;21253:74;21250:1;21247:81;21244:2;;;21331:18;;:::i;:::-;21244:2;21375:1;21372;21368:9;21361:16;;21122:261;;;;:::o;21389:185::-;;21446:20;21464:1;21446:20;:::i;:::-;21441:25;;21480:20;21498:1;21480:20;:::i;:::-;21475:25;;21519:1;21509:2;;21524:18;;:::i;:::-;21509:2;21566:1;21563;21559:9;21554:14;;21431:143;;;;:::o;21580:348::-;;21643:20;21661:1;21643:20;:::i;:::-;21638:25;;21677:20;21695:1;21677:20;:::i;:::-;21672:25;;21865:1;21797:66;21793:74;21790:1;21787:81;21782:1;21775:9;21768:17;21764:105;21761:2;;;21872:18;;:::i;:::-;21761:2;21920:1;21917;21913:9;21902:20;;21628:300;;;;:::o;21934:191::-;;21994:20;22012:1;21994:20;:::i;:::-;21989:25;;22028:20;22046:1;22028:20;:::i;:::-;22023:25;;22067:1;22064;22061:8;22058:2;;;22072:18;;:::i;:::-;22058:2;22117:1;22114;22110:9;22102:17;;21979:146;;;;:::o;22131:96::-;;22197:24;22215:5;22197:24;:::i;:::-;22186:35;;22176:51;;;:::o;22233:90::-;;22310:5;22303:13;22296:21;22285:32;;22275:48;;;:::o;22329:77::-;;22395:5;22384:16;;22374:32;;;:::o;22412:126::-;;22489:42;22482:5;22478:54;22467:65;;22457:81;;;:::o;22544:77::-;;22610:5;22599:16;;22589:32;;;:::o;22627:154::-;22711:6;22706:3;22701;22688:30;22773:1;22764:6;22759:3;22755:16;22748:27;22678:103;;;:::o;22787:307::-;22855:1;22865:113;22879:6;22876:1;22873:13;22865:113;;;22964:1;22959:3;22955:11;22949:18;22945:1;22940:3;22936:11;22929:39;22901:2;22898:1;22894:10;22889:15;;22865:113;;;22996:6;22993:1;22990:13;22987:2;;;23076:1;23067:6;23062:3;23058:16;23051:27;22987:2;22836:258;;;;:::o;23100:281::-;23183:27;23205:4;23183:27;:::i;:::-;23175:6;23171:40;23313:6;23301:10;23298:22;23277:18;23265:10;23262:34;23259:62;23256:2;;;23324:18;;:::i;:::-;23256:2;23364:10;23360:2;23353:22;23143:238;;;:::o;23387:180::-;23435:77;23432:1;23425:88;23532:4;23529:1;23522:15;23556:4;23553:1;23546:15;23573:180;23621:77;23618:1;23611:88;23718:4;23715:1;23708:15;23742:4;23739:1;23732:15;23759:180;23807:77;23804:1;23797:88;23904:4;23901:1;23894:15;23928:4;23925:1;23918:15;23945:102;;24037:2;24033:7;24028:2;24021:5;24017:14;24013:28;24003:38;;23993:54;;;:::o;24053:176::-;24193:28;24189:1;24181:6;24177:14;24170:52;24159:70;:::o;24235:173::-;24375:25;24371:1;24363:6;24359:14;24352:49;24341:67;:::o;24414:224::-;24554:34;24550:1;24542:6;24538:14;24531:58;24623:7;24618:2;24610:6;24606:15;24599:32;24520:118;:::o;24644:156::-;24784:8;24780:1;24772:6;24768:14;24761:32;24750:50;:::o;24806:234::-;24946:34;24942:1;24934:6;24930:14;24923:58;25015:17;25010:2;25002:6;24998:15;24991:42;24912:128;:::o;25046:169::-;25186:21;25182:1;25174:6;25170:14;25163:45;25152:63;:::o;25221:228::-;25361:34;25357:1;25349:6;25345:14;25338:58;25430:11;25425:2;25417:6;25413:15;25406:36;25327:122;:::o;25455:239::-;25595:34;25591:1;25583:6;25579:14;25572:58;25664:22;25659:2;25651:6;25647:15;25640:47;25561:133;:::o;25700:239::-;25840:34;25836:1;25828:6;25824:14;25817:58;25909:22;25904:2;25896:6;25892:15;25885:47;25806:133;:::o;25945:221::-;26085:34;26081:1;26073:6;26069:14;26062:58;26154:4;26149:2;26141:6;26137:15;26130:29;26051:115;:::o;26172:232::-;26312:34;26308:1;26300:6;26296:14;26289:58;26381:15;26376:2;26368:6;26364:15;26357:40;26278:126;:::o;26410:114::-;26516:8;:::o;26530:226::-;26670:34;26666:1;26658:6;26654:14;26647:58;26739:9;26734:2;26726:6;26722:15;26715:34;26636:120;:::o;26762:122::-;26835:24;26853:5;26835:24;:::i;:::-;26828:5;26825:35;26815:2;;26874:1;26871;26864:12;26815:2;26805:79;:::o;26890:122::-;26963:24;26981:5;26963:24;:::i;:::-;26956:5;26953:35;26943:2;;27002:1;26999;26992:12;26943:2;26933:79;:::o;27018:122::-;27091:24;27109:5;27091:24;:::i;:::-;27084:5;27081:35;27071:2;;27130:1;27127;27120:12;27071:2;27061:79;:::o

Swarm Source

ipfs://5a372bf14748525310b69d4d3fda3fb9f16733b263ac75315a3508d0328d60fc
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.