Contract 0x53885ab278D1d329Cd147c8C83a9A5088Ef93C75

Contract Overview

Balance:
0.001200000000000006 AVAX

AVAX Value:
$0.02 (@ $16.61/AVAX)
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2b428a87a72d31d7fb13eda423d3c66ffdf366a5ca6850ceda92889008705178Take From Cashba...106248922022-02-07 22:51:07413 days 13 hrs ago0xe51a08ce10845a7f7b2287b16b410b02ac09a227 IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.018077553535 54.29379542
0x464f9f300ada43c8229b0c195df99cbba97fda4b526a126b38ab7a652532a397Take From Cashba...106248892022-02-07 22:50:59413 days 13 hrs ago0xe51a08ce10845a7f7b2287b16b410b02ac09a227 IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.018097216678 54.350892508
0x8cb297c9ce0e8bcbfffdc4feafd29c60a99c67913923f4d2961c762047864cafTake From Cashba...106248862022-02-07 22:50:51413 days 13 hrs ago0xbb29f5be9cc59e28587f5bb8f6c6ac6ba9b5f18a IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.018592116459 55.839224345
0x0beafe576f42def4336afa5fdf79fd84d11138a3bc14081a3524d6e98465af10Take From Cashba...106248772022-02-07 22:50:37413 days 13 hrs ago0x5a35aaa43281d6783e71eef91a639ef8980735bc IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.018051777542 54.218334333
0xc4597252f03729f327c6fa89d54ec0fe2c57c35abc8705c94ee459cd24dbd96bTake From Cashba...106248742022-02-07 22:50:30413 days 13 hrs ago0xe1fae6e277f8302d5bedd1c15e6480c9a75fb3bb IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.019328875562 55.219994521
0xa80a690f3a8b32737618a36f07e4a943a27490adb983e7f2789b564ad3757045Take From Cashba...106248712022-02-07 22:50:23413 days 13 hrs ago0x136056db90a323128a961b45a4b14f285dbf4dc5 IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.018842554718 53.825105604
0x5491838487339747acec968c6c644f6984f65dd3ff818bc04dcc53cacc2fbeebCreate Cashbag106248432022-02-07 22:49:29413 days 13 hrs ago0xe1fae6e277f8302d5bedd1c15e6480c9a75fb3bb IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750.1 AVAX0.010370009874 55.49763118
0x0ff0194632a82562f2195f3ca954ac2720d28c4ef3ac57a663c0f44b87bc15fbCreate Cashbag106248292022-02-07 22:49:01413 days 13 hrs ago0x136056db90a323128a961b45a4b14f285dbf4dc5 IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c751 AVAX0.010230052733 54.748616488
0xd18598f42d89ced8cc9ec0d91c5c2ef5894a4d642803126d175d3765b275f00dTake From Cashba...105942012022-02-07 5:53:49414 days 6 hrs ago0x68929570ee8a4da4fc7634340d0d92585b2aa313 IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750 AVAX0.011034003636 30.052466885
0x01e5e037989f6c2a47084a009e1ffdae25af79106ac3f4d5d995a1d1ea22c907Create Cashbag105941752022-02-07 5:53:02414 days 6 hrs ago0xe1fae6e277f8302d5bedd1c15e6480c9a75fb3bb IN  0x53885ab278d1d329cd147c8c83a9a5088ef93c750.1 AVAX0.00611865 30
0xeabebce5d42d47825b8210437b8ccf1bb3032eada3c21e3a3cbb14ecbf1d8b010x60806040105939612022-02-07 5:45:48414 days 6 hrs ago0x379aad5aaf5516e0e8ad80b327bbaf67a17185a1 IN  Create: CashbagManager0 AVAX0.507086775225
[ Download CSV Export 
Latest 7 internal transactions
Parent Txn Hash Block From To Value
0x2b428a87a72d31d7fb13eda423d3c66ffdf366a5ca6850ceda92889008705178106248922022-02-07 22:51:07413 days 13 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750xe51a08ce10845a7f7b2287b16b410b02ac09a2270.033299999999999999 AVAX
0x464f9f300ada43c8229b0c195df99cbba97fda4b526a126b38ab7a652532a397106248892022-02-07 22:50:59413 days 13 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750xe51a08ce10845a7f7b2287b16b410b02ac09a2270.332999999999999999 AVAX
0x8cb297c9ce0e8bcbfffdc4feafd29c60a99c67913923f4d2961c762047864caf106248862022-02-07 22:50:51413 days 13 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750xbb29f5be9cc59e28587f5bb8f6c6ac6ba9b5f18a0.033299999999999999 AVAX
0x0beafe576f42def4336afa5fdf79fd84d11138a3bc14081a3524d6e98465af10106248772022-02-07 22:50:37413 days 13 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750x5a35aaa43281d6783e71eef91a639ef8980735bc0.332999999999999999 AVAX
0xc4597252f03729f327c6fa89d54ec0fe2c57c35abc8705c94ee459cd24dbd96b106248742022-02-07 22:50:30413 days 13 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750xe1fae6e277f8302d5bedd1c15e6480c9a75fb3bb0.332999999999999999 AVAX
0xa80a690f3a8b32737618a36f07e4a943a27490adb983e7f2789b564ad3757045106248712022-02-07 22:50:23413 days 13 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750x136056db90a323128a961b45a4b14f285dbf4dc50.033299999999999999 AVAX
0xd18598f42d89ced8cc9ec0d91c5c2ef5894a4d642803126d175d3765b275f00d105942012022-02-07 5:53:49414 days 6 hrs ago 0x53885ab278d1d329cd147c8c83a9a5088ef93c750x68929570ee8a4da4fc7634340d0d92585b2aa3130.0999 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CashbagManager

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-02-08
*/

// Sources flattened with hardhat v2.8.3 https://hardhat.org

// File hardhat/[email protected]

// SPDX-License-Identifier: MIT AND UNLICENSED AND GPL-3.0
pragma solidity >= 0.4.22 <0.9.0;

library console {
	address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);

	function _sendLogPayload(bytes memory payload) private view {
		uint256 payloadLength = payload.length;
		address consoleAddress = CONSOLE_ADDRESS;
		assembly {
			let payloadStart := add(payload, 32)
			let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
		}
	}

	function log() internal view {
		_sendLogPayload(abi.encodeWithSignature("log()"));
	}

	function logInt(int p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
	}

	function logUint(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function logString(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function logBool(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function logAddress(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function logBytes(bytes memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
	}

	function logBytes1(bytes1 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
	}

	function logBytes2(bytes2 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
	}

	function logBytes3(bytes3 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
	}

	function logBytes4(bytes4 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
	}

	function logBytes5(bytes5 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
	}

	function logBytes6(bytes6 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
	}

	function logBytes7(bytes7 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
	}

	function logBytes8(bytes8 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
	}

	function logBytes9(bytes9 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
	}

	function logBytes10(bytes10 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
	}

	function logBytes11(bytes11 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
	}

	function logBytes12(bytes12 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
	}

	function logBytes13(bytes13 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
	}

	function logBytes14(bytes14 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
	}

	function logBytes15(bytes15 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
	}

	function logBytes16(bytes16 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
	}

	function logBytes17(bytes17 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
	}

	function logBytes18(bytes18 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
	}

	function logBytes19(bytes19 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
	}

	function logBytes20(bytes20 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
	}

	function logBytes21(bytes21 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
	}

	function logBytes22(bytes22 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
	}

	function logBytes23(bytes23 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
	}

	function logBytes24(bytes24 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
	}

	function logBytes25(bytes25 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
	}

	function logBytes26(bytes26 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
	}

	function logBytes27(bytes27 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
	}

	function logBytes28(bytes28 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
	}

	function logBytes29(bytes29 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
	}

	function logBytes30(bytes30 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
	}

	function logBytes31(bytes31 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
	}

	function logBytes32(bytes32 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
	}

	function log(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function log(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function log(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function log(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function log(uint p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
	}

	function log(uint p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
	}

	function log(uint p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
	}

	function log(uint p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
	}

	function log(string memory p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
	}

	function log(string memory p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
	}

	function log(string memory p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
	}

	function log(string memory p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
	}

	function log(bool p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
	}

	function log(bool p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
	}

	function log(bool p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
	}

	function log(bool p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
	}

	function log(address p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
	}

	function log(address p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
	}

	function log(address p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
	}

	function log(address p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
	}

	function log(uint p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
	}

	function log(uint p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
	}

	function log(uint p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
	}

	function log(uint p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
	}

	function log(uint p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
	}

	function log(uint p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
	}

	function log(uint p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
	}

	function log(uint p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
	}

	function log(uint p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
	}

	function log(uint p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
	}

	function log(uint p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
	}

	function log(uint p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
	}

	function log(string memory p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
	}

	function log(string memory p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
	}

	function log(string memory p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
	}

	function log(string memory p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
	}

	function log(bool p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
	}

	function log(bool p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
	}

	function log(bool p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
	}

	function log(bool p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
	}

	function log(bool p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
	}

	function log(bool p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
	}

	function log(bool p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
	}

	function log(bool p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
	}

	function log(bool p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
	}

	function log(bool p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
	}

	function log(bool p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
	}

	function log(bool p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
	}

	function log(address p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
	}

	function log(address p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
	}

	function log(address p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
	}

	function log(address p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
	}

	function log(address p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
	}

	function log(address p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
	}

	function log(address p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
	}

	function log(address p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
	}

	function log(address p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
	}

	function log(address p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
	}

	function log(address p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
	}

	function log(address p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
	}

	function log(address p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
	}

	function log(address p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
	}

	function log(address p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
	}

	function log(address p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
	}

	function log(uint p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
	}

}


// File contracts/cashbag_verifier.sol

//
// Copyright 2017 Christian Reitwiessner
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// 2019 OKIMS
//      ported to solidity 0.6
//      fixed linter warnings
//      added requiere error messages
//
//
pragma solidity ^0.8.9;
library Pairing {
    struct G1Point {
        uint X;
        uint Y;
    }
    // Encoding of field elements is: X[0] * z + X[1]
    struct G2Point {
        uint[2] X;
        uint[2] Y;
    }
    /// @return the generator of G1
    function P1() internal pure returns (G1Point memory) {
        return G1Point(1, 2);
    }
    /// @return the generator of G2
    function P2() internal pure returns (G2Point memory) {
        // Original code point
        return G2Point(
            [11559732032986387107991004021392285783925812861821192530917403151452391805634,
             10857046999023057135944570762232829481370756359578518086990519993285655852781],
            [4082367875863433681332203403145435568316851327593401208105741076214120093531,
             8495653923123431417604973247489272438418190587263600148770280649306958101930]
        );

/*
        // Changed by Jordi point
        return G2Point(
            [10857046999023057135944570762232829481370756359578518086990519993285655852781,
             11559732032986387107991004021392285783925812861821192530917403151452391805634],
            [8495653923123431417604973247489272438418190587263600148770280649306958101930,
             4082367875863433681332203403145435568316851327593401208105741076214120093531]
        );
*/
    }
    /// @return r the negation of p, i.e. p.addition(p.negate()) should be zero.
    function negate(G1Point memory p) internal pure returns (G1Point memory r) {
        // The prime q in the base field F_q for G1
        uint q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;
        if (p.X == 0 && p.Y == 0)
            return G1Point(0, 0);
        return G1Point(p.X, q - (p.Y % q));
    }
    /// @return r the sum of two points of G1
    function addition(G1Point memory p1, G1Point memory p2) internal view returns (G1Point memory r) {
        uint[4] memory input;
        input[0] = p1.X;
        input[1] = p1.Y;
        input[2] = p2.X;
        input[3] = p2.Y;
        bool success;
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            success := staticcall(sub(gas(), 2000), 6, input, 0xc0, r, 0x60)
            // Use "invalid" to make gas estimation work
            switch success case 0 { invalid() }
        }
        require(success,"pairing-add-failed");
    }
    /// @return r the product of a point on G1 and a scalar, i.e.
    /// p == p.scalar_mul(1) and p.addition(p) == p.scalar_mul(2) for all points p.
    function scalar_mul(G1Point memory p, uint s) internal view returns (G1Point memory r) {
        uint[3] memory input;
        input[0] = p.X;
        input[1] = p.Y;
        input[2] = s;
        bool success;
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            success := staticcall(sub(gas(), 2000), 7, input, 0x80, r, 0x60)
            // Use "invalid" to make gas estimation work
            switch success case 0 { invalid() }
        }
        require (success,"pairing-mul-failed");
    }
    /// @return the result of computing the pairing check
    /// e(p1[0], p2[0]) *  .... * e(p1[n], p2[n]) == 1
    /// For example pairing([P1(), P1().negate()], [P2(), P2()]) should
    /// return true.
    function pairing(G1Point[] memory p1, G2Point[] memory p2) internal view returns (bool) {
        require(p1.length == p2.length,"pairing-lengths-failed");
        uint elements = p1.length;
        uint inputSize = elements * 6;
        uint[] memory input = new uint[](inputSize);
        for (uint i = 0; i < elements; i++)
        {
            input[i * 6 + 0] = p1[i].X;
            input[i * 6 + 1] = p1[i].Y;
            input[i * 6 + 2] = p2[i].X[0];
            input[i * 6 + 3] = p2[i].X[1];
            input[i * 6 + 4] = p2[i].Y[0];
            input[i * 6 + 5] = p2[i].Y[1];
        }
        uint[1] memory out;
        bool success;
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            success := staticcall(sub(gas(), 2000), 8, add(input, 0x20), mul(inputSize, 0x20), out, 0x20)
            // Use "invalid" to make gas estimation work
            switch success case 0 { invalid() }
        }
        require(success,"pairing-opcode-failed");
        return out[0] != 0;
    }
    /// Convenience method for a pairing check for two pairs.
    function pairingProd2(G1Point memory a1, G2Point memory a2, G1Point memory b1, G2Point memory b2) internal view returns (bool) {
        G1Point[] memory p1 = new G1Point[](2);
        G2Point[] memory p2 = new G2Point[](2);
        p1[0] = a1;
        p1[1] = b1;
        p2[0] = a2;
        p2[1] = b2;
        return pairing(p1, p2);
    }
    /// Convenience method for a pairing check for three pairs.
    function pairingProd3(
            G1Point memory a1, G2Point memory a2,
            G1Point memory b1, G2Point memory b2,
            G1Point memory c1, G2Point memory c2
    ) internal view returns (bool) {
        G1Point[] memory p1 = new G1Point[](3);
        G2Point[] memory p2 = new G2Point[](3);
        p1[0] = a1;
        p1[1] = b1;
        p1[2] = c1;
        p2[0] = a2;
        p2[1] = b2;
        p2[2] = c2;
        return pairing(p1, p2);
    }
    /// Convenience method for a pairing check for four pairs.
    function pairingProd4(
            G1Point memory a1, G2Point memory a2,
            G1Point memory b1, G2Point memory b2,
            G1Point memory c1, G2Point memory c2,
            G1Point memory d1, G2Point memory d2
    ) internal view returns (bool) {
        G1Point[] memory p1 = new G1Point[](4);
        G2Point[] memory p2 = new G2Point[](4);
        p1[0] = a1;
        p1[1] = b1;
        p1[2] = c1;
        p1[3] = d1;
        p2[0] = a2;
        p2[1] = b2;
        p2[2] = c2;
        p2[3] = d2;
        return pairing(p1, p2);
    }
}
contract Verifier {
    using Pairing for *;
    struct VerifyingKey {
        Pairing.G1Point alfa1;
        Pairing.G2Point beta2;
        Pairing.G2Point gamma2;
        Pairing.G2Point delta2;
        Pairing.G1Point[] IC;
    }
    struct Proof {
        Pairing.G1Point A;
        Pairing.G2Point B;
        Pairing.G1Point C;
    }
    function verifyingKey() internal pure returns (VerifyingKey memory vk) {
        vk.alfa1 = Pairing.G1Point(
            7467796778264498634631944894706172448990409983329037625491375180910931874265,
            16605418660745546860601641505967473285827601288402912188681192516392226764774
        );

        vk.beta2 = Pairing.G2Point(
            [521290181315496077321720146591963896821216009977085516909349257794111097074,
             14016180290301960662739883067232247011443258100905725730063942714139098341106],
            [13413489582234934896651061027481515272410877876531989178187139833498165014677,
             7497322429734100271594698248430046412988693656255501580060443636306107231043]
        );
        vk.gamma2 = Pairing.G2Point(
            [11559732032986387107991004021392285783925812861821192530917403151452391805634,
             10857046999023057135944570762232829481370756359578518086990519993285655852781],
            [4082367875863433681332203403145435568316851327593401208105741076214120093531,
             8495653923123431417604973247489272438418190587263600148770280649306958101930]
        );
        vk.delta2 = Pairing.G2Point(
            [13620227423858030106968884443782349401387618267395765438554944172976126554140,
             18383875736701370454503047127780090903004221441279044996096231572647308727977],
            [10731238774937577478441093350495318258269114178190434410158271624310097554404,
             811359493436801780647031752691811982908063981760702476761830738381829517280]
        );
        vk.IC = new Pairing.G1Point[](4);
        
        vk.IC[0] = Pairing.G1Point( 
            21380625667200387528401129494482519663690443407178035735613871875914461254980,
            16493919322223292842377930174482141353320302353444594004620314121253752619386
        );                                      
        
        vk.IC[1] = Pairing.G1Point( 
            11038973125721914099800221906018918348960416730007261309079075397778347451981,
            9005473273089848277684595323664681654388658103149161233613526643769785570927
        );                                      
        
        vk.IC[2] = Pairing.G1Point( 
            628896472802401632616699392795734814326511455056714619270984877917538731001,
            8559617517996988313301771792829922924409262956417953005579902261434141099708
        );                                      
        
        vk.IC[3] = Pairing.G1Point( 
            14045438792201697807793452729889490184571621721716852148191971702300426958079,
            6101361649744643088351328445551466940771106232545048972570850120315102331200
        );                                      
        
    }
    function verify(uint[] memory input, Proof memory proof) internal view returns (uint) {
        uint256 snark_scalar_field = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
        VerifyingKey memory vk = verifyingKey();
        require(input.length + 1 == vk.IC.length,"verifier-bad-input");
        // Compute the linear combination vk_x
        Pairing.G1Point memory vk_x = Pairing.G1Point(0, 0);
        for (uint i = 0; i < input.length; i++) {
            require(input[i] < snark_scalar_field,"verifier-gte-snark-scalar-field");
            vk_x = Pairing.addition(vk_x, Pairing.scalar_mul(vk.IC[i + 1], input[i]));
        }
        vk_x = Pairing.addition(vk_x, vk.IC[0]);
        if (!Pairing.pairingProd4(
            Pairing.negate(proof.A), proof.B,
            vk.alfa1, vk.beta2,
            vk_x, vk.gamma2,
            proof.C, vk.delta2
        )) return 1;
        return 0;
    }
    /// @return r  bool true if proof is valid
    function verifyProof(
            uint[2] memory a,
            uint[2][2] memory b,
            uint[2] memory c,
            uint[3] memory input
        ) public view returns (bool r) {
        Proof memory proof;
        proof.A = Pairing.G1Point(a[0], a[1]);
        proof.B = Pairing.G2Point([b[0][0], b[0][1]], [b[1][0], b[1][1]]);
        proof.C = Pairing.G1Point(c[0], c[1]);
        uint[] memory inputValues = new uint[](input.length);
        for(uint i = 0; i < input.length; i++){
            inputValues[i] = input[i];
        }
        if (verify(inputValues, proof) == 0) {
            return true;
        } else {
            return false;
        }
    }
}


// File contracts/CashbagManager.sol

pragma solidity ^0.8.9;


// TODO: add randomness to payouts

contract CashbagManager is Verifier {
  enum CashbagPhase {
    Open,
    Finished
  }

  struct Cashbag {
    // Cashbag owner address
    address owner;
    // Starting amount of cash for grabs, in wei
    uint256 startingCash;
    // Amount of cash for grabs, in wei
    uint256 cash;
    // Max number of participants
    uint128 maxParticipants;
    // Timestamp UNIX, when claim period is over
    uint256 claimPeriodOver;
    // List of participant addresses
    address[] participantAddresses;
    // Password hash is computed via zksnark circuit.
    uint256 passwordHash;
    uint96 salt;
  }
  // [cashbagId] => cashbag
  Cashbag[] public cashbags;
  address private owner;
  uint256 private commissionFeeBalance = 0;

  struct Participant {
    ParticipantStatus status;
  }
  enum ParticipantStatus {
    NotClaimed,
    Claimed
  }
  // [cashbagId][participantAddress] => Participant
  mapping(uint256 => mapping(address => Participant))
    public cashbagParticipants;

  modifier isOwner() {
    require(owner == msg.sender, 'Only owner can call this function');
    _;
  }

  constructor() {
    owner = msg.sender;
  }

  /**
   * Withdrawal of commission fee balance for owner
   */
  function withdrawCommissionFee() external isOwner {
    uint256 commissionFee = commissionFeeBalance;
    commissionFeeBalance = 0;
    (bool success, ) = msg.sender.call{value: commissionFee}('');
    require(success, 'Failed to withdraw commission fee');
  }

  /**
   * Gets cashbag via id
   */
  function getCashbag(uint256 _cashBagId)
    external
    view
    returns (Cashbag memory)
  {
    require(_cashBagId < cashbags.length, 'Cashbag ID out of bounds');
    return cashbags[_cashBagId];
  }

  /**
   * Creates a new cashbag
   */
  function createCashbag(
    uint64 _maxParticipants,
    uint96 _salt,
    uint256 _passwordHash,
    uint256 _claimPeriod
  ) external payable {
    require(_maxParticipants > 0, 'Need to have at least one participant');

    Cashbag memory cashbag;
    cashbag.owner = msg.sender;
    cashbag.maxParticipants = _maxParticipants;
    cashbag.cash = msg.value;
    cashbag.startingCash = msg.value;
    cashbag.salt = _salt;
    cashbag.claimPeriodOver = block.timestamp + _claimPeriod;
    cashbag.passwordHash = _passwordHash;

    cashbags.push(cashbag);

    emit CashbagCreated(cashbags.length - 1, msg.sender);
  }

  /**
   * Check if cashbag is finished.
   */
  function isFinished(uint256 _cashbagId) external view returns (bool) {
    CashbagPhase phase = getCurrentPhase(_cashbagId);
    return phase == CashbagPhase.Finished;
  }

  /**
   * Check if message sender can claim payout
   */
  function hasClaimedPayout(uint256 _cashbagId) external view returns (bool) {
    Participant memory participant = cashbagParticipants[_cashbagId][
      msg.sender
    ];

    return participant.status == ParticipantStatus.Claimed;
  }

  /**
   * Retrieves cashbags owned by the message sender
   */
  function getOwnerCashbags()
    external
    view
    returns (
      Cashbag[] memory,
      uint256[] memory,
      uint256
    )
  {
    Cashbag[] memory ownerCashbags = new Cashbag[](cashbags.length);
    uint256[] memory ownerCashbagsIds = new uint256[](cashbags.length);
    uint256 numOwnerCashbags = 0;

    for (uint256 i = 0; i < cashbags.length; i++) {
      if (cashbags[i].owner == msg.sender) {
        ownerCashbags[numOwnerCashbags] = cashbags[i];
        ownerCashbagsIds[numOwnerCashbags] = i;
        numOwnerCashbags++;
      }
    }
    return (ownerCashbags, ownerCashbagsIds, numOwnerCashbags);
  }

  /**
   * Returns current phase (OPEN vs FINISHED) for a given Cashbag ID
   */
  function getCurrentPhase(uint256 _cashbagId)
    internal
    view
    returns (CashbagPhase)
  {
    require(_cashbagId < cashbags.length, 'Cashbag not found');
    Cashbag storage cashbag = cashbags[_cashbagId];

    bool isParticipantsListNotFull = cashbag.participantAddresses.length <
      cashbag.maxParticipants;
    bool isInClaimPeriod = cashbag.claimPeriodOver >= block.timestamp;

    return
      isParticipantsListNotFull && isInClaimPeriod
        ? CashbagPhase.Open
        : CashbagPhase.Finished;
  }

  /**
   * Take from cashbag by revealing the previously committed password.
   * This can be done only during the reveal phase.
   */
  function takeFromCashbag(
    uint256 _cashbagId,
    uint256 _passwordHash,
    uint256[2] memory proofA,
    uint256[2][2] memory proofB,
    uint256[2] memory proofC
  ) external payable {
    require(_cashbagId < cashbags.length, 'Cashbag not found');

    Participant storage participant = cashbagParticipants[_cashbagId][
      msg.sender
    ];
    Cashbag storage cashbag = cashbags[_cashbagId];

    CashbagPhase currentPhase = getCurrentPhase(_cashbagId);

    require(
      cashbag.owner != msg.sender,
      'Owner cannot claim their own cashbag'
    );

    require(
      participant.status == ParticipantStatus.NotClaimed,
      'Participant has already claimed this cashbag'
    );
    require(currentPhase == CashbagPhase.Open, 'Cashbag has finished');
    require(_passwordHash == cashbag.passwordHash, 'Password mismatch');
    require(
      verifyProof(
        proofA,
        proofB,
        proofC,
        [
          // Hash has already been verified.
          _passwordHash,
          // Expect the proof to be based on sender address.
          uint256(uint160(address(msg.sender))),
          // Expect the proof to be based on the cashbag salt.
          uint256(cashbag.salt)
        ]
      ),
      'Verification failed'
    );

    cashbag.participantAddresses.push(msg.sender);
    participant.status = ParticipantStatus.Claimed;

    // Starting cash instead of cash as cash decreases overtime
    uint256 payoutAmount = cashbags[_cashbagId].startingCash /
      cashbag.maxParticipants;
    cashbag.cash -= payoutAmount;

    uint256 participantPayoutAmount = (payoutAmount * 999) / 1000;
    uint256 commissionFee = payoutAmount - participantPayoutAmount;
    commissionFeeBalance += commissionFee;

    (bool success, ) = msg.sender.call{value: participantPayoutAmount}('');

    require(success, 'Ether failed to sent');
    emit CashTaken(_cashbagId, participantPayoutAmount, msg.sender);
  }

  event CashbagCreated(uint256 cashbagId, address creatorAddress);
  event CashTaken(
    uint256 cashbagId,
    uint256 payoutAmount,
    address participantAddress
  );
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cashbagId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"participantAddress","type":"address"}],"name":"CashTaken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cashbagId","type":"uint256"},{"indexed":false,"internalType":"address","name":"creatorAddress","type":"address"}],"name":"CashbagCreated","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"cashbagParticipants","outputs":[{"internalType":"enum CashbagManager.ParticipantStatus","name":"status","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cashbags","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"startingCash","type":"uint256"},{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint128","name":"maxParticipants","type":"uint128"},{"internalType":"uint256","name":"claimPeriodOver","type":"uint256"},{"internalType":"uint256","name":"passwordHash","type":"uint256"},{"internalType":"uint96","name":"salt","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"_maxParticipants","type":"uint64"},{"internalType":"uint96","name":"_salt","type":"uint96"},{"internalType":"uint256","name":"_passwordHash","type":"uint256"},{"internalType":"uint256","name":"_claimPeriod","type":"uint256"}],"name":"createCashbag","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cashBagId","type":"uint256"}],"name":"getCashbag","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"startingCash","type":"uint256"},{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint128","name":"maxParticipants","type":"uint128"},{"internalType":"uint256","name":"claimPeriodOver","type":"uint256"},{"internalType":"address[]","name":"participantAddresses","type":"address[]"},{"internalType":"uint256","name":"passwordHash","type":"uint256"},{"internalType":"uint96","name":"salt","type":"uint96"}],"internalType":"struct CashbagManager.Cashbag","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerCashbags","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"startingCash","type":"uint256"},{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint128","name":"maxParticipants","type":"uint128"},{"internalType":"uint256","name":"claimPeriodOver","type":"uint256"},{"internalType":"address[]","name":"participantAddresses","type":"address[]"},{"internalType":"uint256","name":"passwordHash","type":"uint256"},{"internalType":"uint96","name":"salt","type":"uint96"}],"internalType":"struct CashbagManager.Cashbag[]","name":"","type":"tuple[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cashbagId","type":"uint256"}],"name":"hasClaimedPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cashbagId","type":"uint256"}],"name":"isFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cashbagId","type":"uint256"},{"internalType":"uint256","name":"_passwordHash","type":"uint256"},{"internalType":"uint256[2]","name":"proofA","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"proofB","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"proofC","type":"uint256[2]"}],"name":"takeFromCashbag","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"a","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"b","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"c","type":"uint256[2]"},{"internalType":"uint256[3]","name":"input","type":"uint256[3]"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"r","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawCommissionFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600060025534801561001557600080fd5b50600180546001600160a01b0319163317905561276b806100376000396000f3fe6080604052600436106100b15760003560e01c8063a9a6610811610069578063d623f9821161004e578063d623f982146101ce578063dae9cf0e146101e1578063e8ba65091461025657600080fd5b8063a9a6610814610166578063b5e30749146101ae57600080fd5b80631689083d1161009a5780631689083d146101025780636438dd091461011557806384b9bc3c1461014257600080fd5b806307b3acf1146100b657806311479fea146100cd575b600080fd5b3480156100c257600080fd5b506100cb610276565b005b3480156100d957600080fd5b506100ed6100e83660046122d7565b6103c7565b60405190151581526020015b60405180910390f35b6100cb61011036600461238f565b6104e3565b34801561012157600080fd5b506101356101303660046123f3565b610814565b6040516100f991906124cf565b34801561014e57600080fd5b506101576109c4565b6040516100f9939291906124e9565b34801561017257600080fd5b506101a161018136600461258c565b600360209081526000928352604080842090915290825290205460ff1681565b6040516100f991906125de565b3480156101ba57600080fd5b506100ed6101c93660046123f3565b610c74565b6100cb6101dc366004612606565b610ce4565b3480156101ed57600080fd5b506102016101fc3660046123f3565b61118c565b604080516001600160a01b0390981688526020880196909652948601939093526001600160801b039091166060850152608084015260a08301526bffffffffffffffffffffffff1660c082015260e0016100f9565b34801561026257600080fd5b506100ed6102713660046123f3565b6111fd565b6001546001600160a01b031633146102fb5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60028054600091829055604051909190339083908381818185875af1925050503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b50509050806103c35760405162461bcd60e51b815260206004820152602160248201527f4661696c656420746f20776974686472617720636f6d6d697373696f6e20666560448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016102f2565b5050565b60006103d1612038565b60408051808201825287518152602080890151818301529083528151608080820184528851518285019081528951840151606080850191909152908352845180860186528a8501805151825251850151818601528385015285840192909252835180850185528851815288840151818501528585015283516003808252918101909452600093929091908301908036833701905050905060005b60038110156104ba5784816003811061048657610486612662565b602002015182828151811061049d5761049d612662565b6020908102919091010152806104b28161268e565b91505061046b565b506104c5818361121f565b6104d4576001925050506104db565b6000925050505b949350505050565b60008467ffffffffffffffff16116105635760405162461bcd60e51b815260206004820152602560248201527f4e65656420746f2068617665206174206c65617374206f6e652070617274696360448201527f6970616e7400000000000000000000000000000000000000000000000000000060648201526084016102f2565b6105cb60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160006001600160801b0316815260200160008152602001606081526020016000815260200160006bffffffffffffffffffffffff1681525090565b33815267ffffffffffffffff85166060820152346040820181905260208201526bffffffffffffffffffffffff841660e082015261060982426126a9565b6080820190815260c0820184905260008054600181018255908052825160089091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563810180546001600160a01b0390931673ffffffffffffffffffffffffffffffffffffffff199093169290921782556020808501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56483015560408501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56583015560608501517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566830180546001600160801b039092167fffffffffffffffffffffffffffffffff0000000000000000000000000000000090921691909117905592517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56782015560a084015180518594610789937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56801920190612089565b5060c0820151600682015560e090910151600790910180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff9092169190911790556000547f8396060a99a76cac4afa1ae88512f500620e1e7461f6a33255444f951bf2e3a6906107f7906001906126c1565b604080519182523360208301520160405180910390a15050505050565b61087c60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160006001600160801b0316815260200160008152602001606081526020016000815260200160006bffffffffffffffffffffffff1681525090565b60005482106108cd5760405162461bcd60e51b815260206004820152601860248201527f43617368626167204944206f7574206f6620626f756e6473000000000000000060448201526064016102f2565b600082815481106108e0576108e0612662565b60009182526020918290206040805161010081018252600890930290910180546001600160a01b0316835260018101548385015260028101548383015260038101546001600160801b03166060840152600481015460808401526005810180548351818702810187019094528084529394919360a08601939283018282801561099257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610974575b5050509183525050600682015460208201526007909101546bffffffffffffffffffffffff1660409091015292915050565b60608060008060008054905067ffffffffffffffff8111156109e8576109e86121f9565b604051908082528060200260200182016040528015610a8157816020015b610a6e60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160006001600160801b0316815260200160008152602001606081526020016000815260200160006bffffffffffffffffffffffff1681525090565b815260200190600190039081610a065790505b50600080549192509067ffffffffffffffff811115610aa257610aa26121f9565b604051908082528060200260200182016040528015610acb578160200160208202803683370190505b5090506000805b600054811015610c6757336001600160a01b031660008281548110610af957610af9612662565b60009182526020909120600890910201546001600160a01b03161415610c555760008181548110610b2c57610b2c612662565b60009182526020918290206040805161010081018252600890930290910180546001600160a01b0316835260018101548385015260028101548383015260038101546001600160801b03166060840152600481015460808401526005810180548351818702810187019094528084529394919360a086019392830182828015610bde57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bc0575b5050509183525050600682015460208201526007909101546bffffffffffffffffffffffff166040909101528451859084908110610c1e57610c1e612662565b602002602001018190525080838381518110610c3c57610c3c612662565b602090810291909101015281610c518161268e565b9250505b80610c5f8161268e565b915050610ad2565b5091959094509092509050565b600081815260036020908152604080832033845282528083208151928301909152805483929190829060ff166001811115610cb157610cb16125c8565b6001811115610cc257610cc26125c8565b9052509050600181516001811115610cdc57610cdc6125c8565b149392505050565b6000548510610d355760405162461bcd60e51b815260206004820152601160248201527f43617368626167206e6f7420666f756e6400000000000000000000000000000060448201526064016102f2565b600085815260036020908152604080832033845290915281208154909190819088908110610d6557610d65612662565b906000526020600020906008020190506000610d808861141c565b82549091506001600160a01b0316331415610e025760405162461bcd60e51b8152602060048201526024808201527f4f776e65722063616e6e6f7420636c61696d207468656972206f776e2063617360448201527f686261670000000000000000000000000000000000000000000000000000000060648201526084016102f2565b6000835460ff166001811115610e1a57610e1a6125c8565b14610e8d5760405162461bcd60e51b815260206004820152602c60248201527f5061727469636970616e742068617320616c726561647920636c61696d65642060448201527f746869732063617368626167000000000000000000000000000000000000000060648201526084016102f2565b6000816001811115610ea157610ea16125c8565b14610eee5760405162461bcd60e51b815260206004820152601460248201527f43617368626167206861732066696e697368656400000000000000000000000060448201526064016102f2565b81600601548714610f415760405162461bcd60e51b815260206004820152601160248201527f50617373776f7264206d69736d6174636800000000000000000000000000000060448201526064016102f2565b6040805160608101825288815233602082015260078401546bffffffffffffffffffffffff1691810191909152610f7d908790879087906103c7565b610fc95760405162461bcd60e51b815260206004820152601360248201527f566572696669636174696f6e206661696c65640000000000000000000000000060448201526064016102f2565b60058201805460018082018355600092835260208320909101805473ffffffffffffffffffffffffffffffffffffffff191633179055845460ff1916178455600383015481546001600160801b039091169082908b90811061102d5761102d612662565b90600052602060002090600802016001015461104991906126ee565b90508083600201600082825461105f91906126c1565b90915550600090506103e8611076836103e7612702565b61108091906126ee565b9050600061108e82846126c1565b905080600260008282546110a291906126a9565b9091555050604051600090339084908381818185875af1925050503d80600081146110e9576040519150601f19603f3d011682016040523d82523d6000602084013e6110ee565b606091505b505090508061113f5760405162461bcd60e51b815260206004820152601460248201527f4574686572206661696c656420746f2073656e7400000000000000000000000060448201526064016102f2565b604080518d815260208101859052338183015290517f7ffa8df2f3699dc68fd62c59a97f94778c63f9ae1f461cd4f1467e95cfbd7eef9181900360600190a1505050505050505050505050565b6000818154811061119c57600080fd5b600091825260209091206008909102018054600182015460028301546003840154600485015460068601546007909601546001600160a01b039095169650929491936001600160801b039091169291906bffffffffffffffffffffffff1687565b6000806112098361141c565b90506001816001811115610cdc57610cdc6125c8565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018161124b6114d5565b90508060800151518551600161126191906126a9565b146112ae5760405162461bcd60e51b815260206004820152601260248201527f76657269666965722d6261642d696e707574000000000000000000000000000060448201526064016102f2565b604080518082019091526000808252602082018190525b865181101561139f57838782815181106112e1576112e1612662565b6020026020010151106113365760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c640060448201526064016102f2565b61138b82611386856080015184600161134f91906126a9565b8151811061135f5761135f612662565b60200260200101518a858151811061137957611379612662565b602002602001015161195e565b611a05565b9150806113978161268e565b9150506112c5565b506113c88183608001516000815181106113bb576113bb612662565b6020026020010151611a05565b90506113fe6113da8660000151611aa8565b8660200151846000015185602001518587604001518b604001518960600151611b47565b61140e5760019350505050611416565b600093505050505b92915050565b60008054821061146e5760405162461bcd60e51b815260206004820152601160248201527f43617368626167206e6f7420666f756e6400000000000000000000000000000060448201526064016102f2565b600080838154811061148257611482612662565b600091825260209091206008909102016003810154600582015460048301549293506001600160801b0390911611904211158180156114be5750805b6114c95760016114cc565b60005b95945050505050565b6114dd6120fb565b6040805180820182527f10829f896b93cac818e71e23ed92feb43cf1afcb245ada9bbc3df1a7b90611d981527f24b6557a4fd033b08d8e52319d88b41f5dcd93fc7e4e95149d092f3f2aa1b7e66020808301919091529083528151608080820184527f01270a2f77e175ad1fc8487ed31fe2df323eb8b0a81f2f4583825a2f369b48f28285019081527f1efce07d6b58735b65179ca185f193c9e75addd934ebe36ebd940604ec8ddef2606080850191909152908352845180860186527f1da7c41c9b27b64c5a89857ba19226ae2cc3dd219f1bea9bf84bb574a81f709581527f10935588b3583835190c051775d0fa07676183423edf752a837d57137deceb43818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835190810184527f1e1cc68957e63e272cbe54f38c2c5c0c94b8f04f36aab4ea8858c2ddb9b3f01c8185019081527f28a4e7a98f7a4a019001d6a8465b751726a3e56b9dd12c5a0096fc70368896a9828401528152835180850185527f17b9aa78af581aaa312ff1126893624b7607b3432e2044b4f5ce8ada71b1abe481527f01cb36943c18316be2a8d3bb63305126e2d5450189c7994297b6826c2dff2fe08185015281840152908401528151600480825260a08201909352919082015b604080518082019091526000808252602082015281526020019060019003908161175857505060808201908152604080518082019091527f2f45015a4da1cfca25fd23f92f7e4d9b5fc2ac74fe37ead8d2c121006c82954481527f24773a3dfd448fe16efdcc0b48a21ca299d28db55287a694bd3d7b1ec503417a6020820152905180516000906117eb576117eb612662565b602002602001018190525060405180604001604052807f1867d65e26ea0b53706948880bfe3d30a74f6c37c1911a31fe6eb7519f3ce64d81526020017f13e8ead08b40febed062dd44bfd70e9bcb7971eaa71b6539f48e7a186051d66f815250816080015160018151811061186257611862612662565b602002602001018190525060405180604001604052807f0163f15aa69088ef369a9cd4c34dbb63dfb0e3bea6ffe3dc23463deed85dc3f981526020017f12ec926373eec86f80f64a991cce3d0d8082a239994dedda543d1c94a5cfc6bc81525081608001516002815181106118d9576118d9612662565b602002602001018190525060405180604001604052807f1f0d6fc792461eb4cbc087108c04746a8222f6b1c06159d755488a6b987cf4ff81526020017f0d7d3f919687f1684fdebbaaa19012a2bbf4ce79b2c91459e18fa30e3a2c8140815250816080015160038151811061195057611950612662565b602002602001018190525090565b604080518082019091526000808252602082015261197a61214c565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080156119ad576119af565bfe5b50806119fd5760405162461bcd60e51b815260206004820152601260248201527f70616972696e672d6d756c2d6661696c6564000000000000000000000000000060448201526064016102f2565b505092915050565b6040805180820190915260008082526020820152611a2161216a565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080156119ad5750806119fd5760405162461bcd60e51b815260206004820152601260248201527f70616972696e672d6164642d6661696c6564000000000000000000000000000060448201526064016102f2565b604080518082019091526000808252602082015281517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015611aef57506020830151155b15611b0f5750506040805180820190915260008082526020820152919050565b604051806040016040528084600001518152602001828560200151611b349190612721565b611b3e90846126c1565b90529392505050565b60408051600480825260a08201909252600091829190816020015b6040805180820190915260008082526020820152815260200190600190039081611b6257505060408051600480825260a0820190925291925060009190602082015b611bac612188565b815260200190600190039081611ba45790505090508a82600081518110611bd557611bd5612662565b60200260200101819052508882600181518110611bf457611bf4612662565b60200260200101819052508682600281518110611c1357611c13612662565b60200260200101819052508482600381518110611c3257611c32612662565b60200260200101819052508981600081518110611c5157611c51612662565b60200260200101819052508781600181518110611c7057611c70612662565b60200260200101819052508581600281518110611c8f57611c8f612662565b60200260200101819052508381600381518110611cae57611cae612662565b6020026020010181905250611cc38282611cd2565b9b9a5050505050505050505050565b60008151835114611d255760405162461bcd60e51b815260206004820152601660248201527f70616972696e672d6c656e677468732d6661696c65640000000000000000000060448201526064016102f2565b82516000611d34826006612702565b905060008167ffffffffffffffff811115611d5157611d516121f9565b604051908082528060200260200182016040528015611d7a578160200160208202803683370190505b50905060005b83811015611fb557868181518110611d9a57611d9a612662565b60200260200101516000015182826006611db49190612702565b611dbf9060006126a9565b81518110611dcf57611dcf612662565b602002602001018181525050868181518110611ded57611ded612662565b60200260200101516020015182826006611e079190612702565b611e129060016126a9565b81518110611e2257611e22612662565b602002602001018181525050858181518110611e4057611e40612662565b6020908102919091010151515182611e59836006612702565b611e649060026126a9565b81518110611e7457611e74612662565b602002602001018181525050858181518110611e9257611e92612662565b60209081029190910181015151015182611ead836006612702565b611eb89060036126a9565b81518110611ec857611ec8612662565b602002602001018181525050858181518110611ee657611ee6612662565b602002602001015160200151600060028110611f0457611f04612662565b602002015182611f15836006612702565b611f209060046126a9565b81518110611f3057611f30612662565b602002602001018181525050858181518110611f4e57611f4e612662565b602002602001015160200151600160028110611f6c57611f6c612662565b602002015182611f7d836006612702565b611f889060056126a9565b81518110611f9857611f98612662565b602090810291909101015280611fad8161268e565b915050611d80565b50611fbe6121a8565b6000602082602086026020860160086107d05a03fa90508080156119ad57508061202a5760405162461bcd60e51b815260206004820152601560248201527f70616972696e672d6f70636f64652d6661696c6564000000000000000000000060448201526064016102f2565b505115159695505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101612062612188565b8152602001612084604051806040016040528060008152602001600081525090565b905290565b8280548282559060005260206000209081019282156120eb579160200282015b828111156120eb578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161782556020909201916001909101906120a9565b506120f79291506121c6565b5090565b6040805160e08101909152600060a0820181815260c0830191909152815260208101612125612188565b8152602001612132612188565b815260200161213f612188565b8152602001606081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061219b6121db565b81526020016120846121db565b60405180602001604052806001906020820280368337509192915050565b5b808211156120f757600081556001016121c7565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715612232576122326121f9565b60405290565b600082601f83011261224957600080fd5b61225161220f565b80604084018581111561226357600080fd5b845b8181101561227d578035845260209384019301612265565b509095945050505050565b600082601f83011261229957600080fd5b6122a161220f565b8060808401858111156122b357600080fd5b845b8181101561227d576122c78782612238565b84526020909301926040016122b5565b6000806000806101608086880312156122ef57600080fd5b6122f98787612238565b94506123088760408801612288565b93506123178760c08801612238565b92508661011f87011261232957600080fd5b6040516060810181811067ffffffffffffffff8211171561234c5761234c6121f9565b60405290860190808883111561236157600080fd5b61010088015b8381101561237f578035825260209182019101612367565b5050809250505092959194509250565b600080600080608085870312156123a557600080fd5b843567ffffffffffffffff811681146123bd57600080fd5b935060208501356bffffffffffffffffffffffff811681146123de57600080fd5b93969395505050506040820135916060013590565b60006020828403121561240557600080fd5b5035919050565b60006101008084016001600160a01b0380855116865260208086015181880152604086015160408801526001600160801b0360608701511660608801526080860151608088015260a08601518460a08901528394508051808552610120890195508282019450600091505b8082101561249957845184168652948201949382019360019190910190612477565b505050505060c083015160c085015260e08301516124c760e08601826bffffffffffffffffffffffff169052565b509392505050565b6020815260006124e2602083018461240c565b9392505050565b6000606082016060835280865180835260808501915060808160051b8601019250602080890160005b8381101561254057607f1988870301855261252e86835161240c565b95509382019390820190600101612512565b50508584038187015287518085528882019482019350915060005b828110156125775784518452938101939281019260010161255b565b50505060409390930193909352509392505050565b6000806040838503121561259f57600080fd5b8235915060208301356001600160a01b03811681146125bd57600080fd5b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016002831061260057634e487b7160e01b600052602160045260246000fd5b91905290565b6000806000806000610140868803121561261f57600080fd5b85359450602086013593506126378760408801612238565b92506126468760808801612288565b9150612656876101008801612238565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156126a2576126a2612678565b5060010190565b600082198211156126bc576126bc612678565b500190565b6000828210156126d3576126d3612678565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826126fd576126fd6126d8565b500490565b600081600019048311821515161561271c5761271c612678565b500290565b600082612730576127306126d8565b50069056fea2646970667358221220d9ebee3f7103406b1765c7ba0608003646125e0fd2f1fc7be84b3ed92c48bc9e64736f6c634300080b0033

Deployed ByteCode Sourcemap

75923:6663:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77178:265;;;;;;;;;;;;;:::i;:::-;;75113:694;;;;;;;;;;-1:-1:-1;75113:694:0;;;;;:::i;:::-;;:::i;:::-;;;2760:14:1;;2753:22;2735:41;;2723:2;2708:18;75113:694:0;;;;;;;;77746:640;;;;;;:::i;:::-;;:::i;77489:209::-;;;;;;;;;;-1:-1:-1;77489:209:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;78997:642::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;76859:83::-;;;;;;;;;;-1:-1:-1;76859:83:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;78683:241::-;;;;;;;;;;-1:-1:-1;78683:241:0;;;;;:::i;:::-;;:::i;80409:1995::-;;;;;;:::i;:::-;;:::i;76580:25::-;;;;;;;;;;-1:-1:-1;76580:25:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;8524:55:1;;;8506:74;;8611:2;8596:18;;8589:34;;;;8639:18;;;8632:34;;;;-1:-1:-1;;;;;8702:47:1;;;8697:2;8682:18;;8675:75;8781:3;8766:19;;8759:35;8825:3;8810:19;;8803:35;8887:26;8875:39;8869:3;8854:19;;8847:68;8493:3;8478:19;76580:25:0;8193:728:1;78442:174:0;;;;;;;;;;-1:-1:-1;78442:174:0;;;;;:::i;:::-;;:::i;77178:265::-;76983:5;;-1:-1:-1;;;;;76983:5:0;76992:10;76983:19;76975:65;;;;-1:-1:-1;;;76975:65:0;;9128:2:1;76975:65:0;;;9110:21:1;9167:2;9147:18;;;9140:30;9206:34;9186:18;;;9179:62;9277:3;9257:18;;;9250:31;9298:19;;76975:65:0;;;;;;;;;77259:20:::1;::::0;;77235:21:::1;77286:24:::0;;;;77336:41:::1;::::0;77259:20;;77235:21;77336:10:::1;::::0;77259:20;;77235:21;77336:41;77235:21;77336:41;77259:20;77336:10;:41:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77317:60;;;77392:7;77384:53;;;::::0;-1:-1:-1;;;77384:53:0;;9740:2:1;77384:53:0::1;::::0;::::1;9722:21:1::0;9779:2;9759:18;;;9752:30;9818:34;9798:18;;;9791:62;9889:3;9869:18;;;9862:31;9910:19;;77384:53:0::1;9538:397:1::0;77384:53:0::1;77228:215;;77178:265::o:0;75113:694::-;75297:6;75316:18;;:::i;:::-;75355:27;;;;;;;;75371:4;;75355:27;;75371:4;75377;;;;75355:27;;;;75345:37;;;75403:55;;;;;;;;75420:4;;:7;75403:55;;;;;;75429:4;;:7;;;75403:55;;;;;;;;;;;;;;;;;;75440:4;;;;;:7;75403:55;;75449:4;:7;;;75403:55;;;;-1:-1:-1;;;75403:55:0;75393:7;;;:65;;;;75479:27;;;;;;;75495:4;;75479:27;;75501:4;;;;75479:27;;;;75469:7;;;:37;75545:24;;75556:12;75545:24;;;;;;;;;-1:-1:-1;;75545:24:0;75556:12;;75545:24;;;;75403:55;75545:24;;;;;-1:-1:-1;75545:24:0;75517:52;;75584:6;75580:90;75600:12;75596:1;:16;75580:90;;;75650:5;75656:1;75650:8;;;;;;;:::i;:::-;;;;;75633:11;75645:1;75633:14;;;;;;;;:::i;:::-;;;;;;;;;;:25;75614:3;;;;:::i;:::-;;;;75580:90;;;;75684:26;75691:11;75704:5;75684:6;:26::i;:::-;75680:120;;75739:4;75732:11;;;;;;75680:120;75783:5;75776:12;;;;75113:694;;;;;;;:::o;77746:640::-;77929:1;77910:16;:20;;;77902:70;;;;-1:-1:-1;;;77902:70:0;;10660:2:1;77902:70:0;;;10642:21:1;10699:2;10679:18;;;10672:30;10738:34;10718:18;;;10711:62;10809:7;10789:18;;;10782:35;10834:19;;77902:70:0;10458:401:1;77902:70:0;77981:22;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77981:22:0;78026:10;78010:26;;78043:42;;;:23;;;:42;78107:9;78092:12;;;:24;;;-1:-1:-1;78123:20:0;;:32;78162:20;;;:12;;;:20;78215:30;78233:12;78215:15;:30;:::i;:::-;78189:23;;;:56;;;78252:20;;;:36;;;-1:-1:-1;78297:22:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;78297:22:0;;;-1:-1:-1;;78297:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;78297:22:0;;;;;;;;;;;;;;;;;;;;;;;;;78189:7;;78297:22;;;;;;;;:::i;:::-;-1:-1:-1;78297:22:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;78297:22:0;;;;;;;;;;;-1:-1:-1;78348:15:0;78333:47;;78348:19;;-1:-1:-1;;78348:19:0;:::i;:::-;78333:47;;;11301:25:1;;;78369:10:0;11357:2:1;11342:18;;11335:83;11274:18;78333:47:0;;;;;;;77895:491;77746:640;;;;:::o;77489:209::-;77567:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77567:14:0;77614:8;:15;77601:28;;77593:65;;;;-1:-1:-1;;;77593:65:0;;11631:2:1;77593:65:0;;;11613:21:1;11670:2;11650:18;;;11643:30;11709:26;11689:18;;;11682:54;11753:18;;77593:65:0;11429:348:1;77593:65:0;77672:8;77681:10;77672:20;;;;;;;;:::i;:::-;;;;;;;;;;77665:27;;;;;;;;77672:20;;;;;;;77665:27;;-1:-1:-1;;;;;77665:27:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;77665:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77672:20;;77665:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;77665:27:0;;;;;;;;;;;;;;;;-1:-1:-1;;;77665:27:0;;;-1:-1:-1;;77665:27:0;;;;;;;;;;;;;;;;;;;;;77489:209;-1:-1:-1;;77489:209:0:o;78997:642::-;79071:16;79096;79121:7;79146:30;79193:8;:15;;;;79179:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79179:30:0;;;;;;;;;;;;;;;;-1:-1:-1;79216:33:0;79266:15;;79146:63;;-1:-1:-1;79216:33:0;79252:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;79252:30:0;;79216:66;;79289:24;79331:9;79326:243;79350:8;:15;79346:19;;79326:243;;;79406:10;-1:-1:-1;;;;;79385:31:0;:8;79394:1;79385:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:17;-1:-1:-1;;;;;79385:17:0;:31;79381:181;;;79463:8;79472:1;79463:11;;;;;;;;:::i;:::-;;;;;;;;;;79429:45;;;;;;;;79463:11;;;;;;;79429:45;;-1:-1:-1;;;;;79429:45:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;79429:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79463:11;;79429:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;79429:45:0;;;;;;;;;;;;;;;;-1:-1:-1;;;79429:45:0;;;-1:-1:-1;;79429:45:0;;;;;;;;;;;;;;;;;;;;:31;;:13;;79443:16;;79429:31;;;;;;:::i;:::-;;;;;;:45;;;;79522:1;79485:16;79502;79485:34;;;;;;;;:::i;:::-;;;;;;;;;;:38;79534:18;;;;:::i;:::-;;;;79381:181;79367:3;;;;:::i;:::-;;;;79326:243;;;-1:-1:-1;79583:13:0;;79598:16;;-1:-1:-1;79616:16:0;;-1:-1:-1;78997:642:0;-1:-1:-1;78997:642:0:o;78683:241::-;78752:4;78798:31;;;:19;:31;;;;;;;;78838:10;78798:57;;;;;;;78765:90;;;;;;;;;;78752:4;;78765:90;78798:57;78765:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;78765:90:0;-1:-1:-1;78893:25:0;78871:18;;:47;;;;;;;;:::i;:::-;;;78683:241;-1:-1:-1;;;78683:241:0:o;80409:1995::-;80633:8;:15;80620:28;;80612:58;;;;-1:-1:-1;;;80612:58:0;;11984:2:1;80612:58:0;;;11966:21:1;12023:2;12003:18;;;11996:30;12062:19;12042:18;;;12035:47;12099:18;;80612:58:0;11782:341:1;80612:58:0;80679:31;80713;;;:19;:31;;;;;;;;80753:10;80713:57;;;;;;;80803:20;;80713:57;;80679:31;;;80733:10;;80803:20;;;;;;:::i;:::-;;;;;;;;;;;80777:46;;80832:25;80860:27;80876:10;80860:15;:27::i;:::-;80912:13;;80832:55;;-1:-1:-1;;;;;;80912:13:0;80929:10;80912:27;;80896:97;;;;-1:-1:-1;;;80896:97:0;;12330:2:1;80896:97:0;;;12312:21:1;12369:2;12349:18;;;12342:30;12408:34;12388:18;;;12381:62;12479:6;12459:18;;;12452:34;12503:19;;80896:97:0;12128:400:1;80896:97:0;81040:28;81018:18;;;;;:50;;;;;;;:::i;:::-;;81002:128;;;;-1:-1:-1;;;81002:128:0;;12735:2:1;81002:128:0;;;12717:21:1;12774:2;12754:18;;;12747:30;12813:34;12793:18;;;12786:62;12884:14;12864:18;;;12857:42;12916:19;;81002:128:0;12533:408:1;81002:128:0;81161:17;81145:12;:33;;;;;;;;:::i;:::-;;81137:66;;;;-1:-1:-1;;;81137:66:0;;13148:2:1;81137:66:0;;;13130:21:1;13187:2;13167:18;;;13160:30;13226:22;13206:18;;;13199:50;13266:18;;81137:66:0;12946:344:1;81137:66:0;81235:7;:20;;;81218:13;:37;81210:67;;;;-1:-1:-1;;;81210:67:0;;13497:2:1;81210:67:0;;;13479:21:1;13536:2;13516:18;;;13509:30;13575:19;13555:18;;;13548:47;13612:18;;81210:67:0;13295:341:1;81210:67:0;81300:375;;;;;;;;;;;81544:10;81300:375;;;;81642:12;;;;;;81300:375;;;;;;;;;81322:6;;81339;;81356;;81300:11;:375::i;:::-;81284:428;;;;-1:-1:-1;;;81284:428:0;;13843:2:1;81284:428:0;;;13825:21:1;13882:2;13862:18;;;13855:30;13921:21;13901:18;;;13894:49;13960:18;;81284:428:0;13641:343:1;81284:428:0;81721:28;;;:45;;;;;;;;-1:-1:-1;81721:45:0;;;;;;;;;;;-1:-1:-1;;81721:45:0;81755:10;81721:45;;;81773:46;;-1:-1:-1;;81773:46:0;;;;81959:23;;;;81916:20;;-1:-1:-1;;;;;81959:23:0;;;;-1:-1:-1;;81925:10:0;;81916:20;;;;;;:::i;:::-;;;;;;;;;;;:33;;;:66;;;;:::i;:::-;81893:89;;82005:12;81989:7;:12;;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;82026:31:0;;-1:-1:-1;82083:4:0;82061:18;:12;82076:3;82061:18;:::i;:::-;82060:27;;;;:::i;:::-;82026:61;-1:-1:-1;82094:21:0;82118:38;82026:61;82118:12;:38;:::i;:::-;82094:62;;82187:13;82163:20;;:37;;;;;;;:::i;:::-;;;;-1:-1:-1;;82228:51:0;;82210:12;;82228:10;;82251:23;;82210:12;82228:51;82210:12;82228:51;82251:23;82228:10;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;82209:70;;;82296:7;82288:40;;;;-1:-1:-1;;;82288:40:0;;14678:2:1;82288:40:0;;;14660:21:1;14717:2;14697:18;;;14690:30;14756:22;14736:18;;;14729:50;14796:18;;82288:40:0;14476:344:1;82288:40:0;82340:58;;;15027:25:1;;;15083:2;15068:18;;15061:34;;;82387:10:0;15111:18:1;;;15104:83;82340:58:0;;;;;;;15015:2:1;82340:58:0;;;80605:1799;;;;;;;80409:1995;;;;;:::o;76580:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;76580:25:0;;;;-1:-1:-1;76580:25:0;;;;-1:-1:-1;;;;;76580:25:0;;;;;;;;;:::o;78442:174::-;78505:4;78518:18;78539:27;78555:10;78539:15;:27::i;:::-;78518:48;-1:-1:-1;78589:21:0;78580:5;:30;;;;;;;;:::i;74109:950::-;74189:4;74235:77;74189:4;74348:14;:12;:14::i;:::-;74323:39;;74401:2;:5;;;:12;74381:5;:12;74396:1;74381:16;;;;:::i;:::-;:32;74373:62;;;;-1:-1:-1;;;74373:62:0;;15400:2:1;74373:62:0;;;15382:21:1;15439:2;15419:18;;;15412:30;15478:20;15458:18;;;15451:48;15516:18;;74373:62:0;15198:342:1;74373:62:0;74524:21;;;;;;;;;74494:27;74524:21;;;;;;;;;74556:227;74577:5;:12;74573:1;:16;74556:227;;;74630:18;74619:5;74625:1;74619:8;;;;;;;;:::i;:::-;;;;;;;:29;74611:72;;;;-1:-1:-1;;;74611:72:0;;15747:2:1;74611:72:0;;;15729:21:1;15786:2;15766:18;;;15759:30;15825:33;15805:18;;;15798:61;15876:18;;74611:72:0;15545:355:1;74611:72:0;74705:66;74722:4;74728:42;74747:2;:5;;;74753:1;74757;74753:5;;;;:::i;:::-;74747:12;;;;;;;;:::i;:::-;;;;;;;74761:5;74767:1;74761:8;;;;;;;;:::i;:::-;;;;;;;74728:18;:42::i;:::-;74705:16;:66::i;:::-;74698:73;-1:-1:-1;74591:3:0;;;;:::i;:::-;;;;74556:227;;;;74800:32;74817:4;74823:2;:5;;;74829:1;74823:8;;;;;;;;:::i;:::-;;;;;;;74800:16;:32::i;:::-;74793:39;;74848:174;74883:23;74898:5;:7;;;74883:14;:23::i;:::-;74908:5;:7;;;74930:2;:8;;;74940:2;:8;;;74963:4;74969:2;:9;;;74993:5;:7;;;75002:2;:9;;;74848:20;:174::i;:::-;74843:189;;75031:1;75024:8;;;;;;;74843:189;75050:1;75043:8;;;;;74109:950;;;;;:::o;79729:535::-;79812:12;79857:15;;79844:28;;79836:58;;;;-1:-1:-1;;;79836:58:0;;11984:2:1;79836:58:0;;;11966:21:1;12023:2;12003:18;;;11996:30;12062:19;12042:18;;;12035:47;12099:18;;79836:58:0;11782:341:1;79836:58:0;79901:23;79927:8;79936:10;79927:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;80034:23;;;;79989:28;;;:35;80087:23;;;;79927:20;;-1:-1:-1;;;;;;80034:23:0;;;-1:-1:-1;;80114:15:0;-1:-1:-1;80087:42:0;-1:-1:-1;80152:44:0;;;;;80181:15;80152:44;:106;;80237:21;80152:106;;;80208:17;80152:106;80138:120;79729:535;-1:-1:-1;;;;;79729:535:0:o;71358:2745::-;71405:22;;:::i;:::-;71451:209;;;;;;;;71481:76;71451:209;;71572:77;71451:209;;;;;;;;71440:220;;;71684:397;;;;;;;;71715:75;71684:397;;;;;;71806:77;71684:397;;;;;;;;;;;;;;;;;;71900:77;71684:397;;71993:76;71684:397;;;;-1:-1:-1;;;71684:397:0;71673:8;;;:408;;;;72104:398;;;;;;;72135:77;72104:398;;;;;;72228:77;72104:398;;;;;;;;;;;;;72322:76;72104:398;;72414:76;72104:398;;;;-1:-1:-1;;;72104:398:0;72092:9;;;:410;72525:398;;;;;;;72556:77;72525:398;;;;;;72649:77;72525:398;;;;;;;;;;;;;72743:77;72525:398;;72836:75;72525:398;;;;-1:-1:-1;;;72525:398:0;72513:9;;;:410;72942:24;;72964:1;72942:24;;;;;;;;;;72964:1;72942:24;;;-1:-1:-1;;;;;;;;;;;;;;;;;72942:24:0;;;;;;;;;;;;-1:-1:-1;;72934:5:0;;;:32;;;72998:211;;;;;;;;;73029:77;72998:211;;73121:77;72998:211;;;;72987:5;;:8;;-1:-1:-1;;72987:8:0;;;;:::i;:::-;;;;;;:222;;;;73279:210;;;;;;;;73310:77;73279:210;;;;73402:76;73279:210;;;73268:2;:5;;;73274:1;73268:8;;;;;;;;:::i;:::-;;;;;;:221;;;;73559:208;;;;;;;;73590:75;73559:208;;;;73680:76;73559:208;;;73548:2;:5;;;73554:1;73548:8;;;;;;;;:::i;:::-;;;;;;:219;;;;73837:210;;;;;;;;73868:77;73837:210;;;;73960:76;73837:210;;;73826:2;:5;;;73832:1;73826:8;;;;;;;;:::i;:::-;;;;;;:221;;;;71358:2745;:::o;67563:552::-;-1:-1:-1;;;;;;;;;;;;;;;;;67661:20:0;;:::i;:::-;67703:3;;67692:14;;:8;67728:3;;;;67717:8;;;:14;67742:8;;;:12;;;-1:-1:-1;67936:4:0;67933:1;67927:4;67692:14;67917:1;67910:4;67903:5;67899:16;67888:53;67877:64;-1:-1:-1;67877:64:0;68028:20;;;;68013:35;;68028:20;68037:9;68013:35;;68078:7;68069:38;;;;-1:-1:-1;;;68069:38:0;;16107:2:1;68069:38:0;;;16089:21:1;16146:2;16126:18;;;16119:30;16185:20;16165:18;;;16158:48;16223:18;;68069:38:0;15905:342:1;68069:38:0;67650:465;;67563:552;;;;:::o;66813:592::-;-1:-1:-1;;;;;;;;;;;;;;;;;66921:20:0;;:::i;:::-;66963:4;;66952:15;;:8;66989:4;;;;66978:8;;;:15;67015:4;;67004:8;;;:15;67041:4;;;67030:8;;;;:15;;;;-1:-1:-1;;67224:1:0;67218:4;66952:15;67208:1;67201:4;67194:5;67190:16;67179:53;67168:64;-1:-1:-1;67168:64:0;67319:20;;;;67304:35;67368:7;67360:37;;;;-1:-1:-1;;;67360:37:0;;16454:2:1;67360:37:0;;;16436:21:1;16493:2;16473:18;;;16466:30;16532:20;16512:18;;;16505:48;16570:18;;67360:37:0;16252:342:1;66412:348:0;-1:-1:-1;;;;;;;;;;;;;;;;;66652:3:0;;66560:77;;66652:8;:20;;;;-1:-1:-1;66664:3:0;;;;:8;66652:20;66648:59;;;-1:-1:-1;;66694:13:0;;;;;;;;;-1:-1:-1;66694:13:0;;;;;;;;66412:348;-1:-1:-1;66412:348:0:o;66648:59::-;66725:27;;;;;;;;66733:1;:3;;;66725:27;;;;66749:1;66743;:3;;;:7;;;;:::i;:::-;66738:13;;:1;:13;:::i;:::-;66725:27;;66718:34;66412:348;-1:-1:-1;;;66412:348:0:o;70427:569::-;70722:16;;;70736:1;70722:16;;;;;;;;;70683:4;;;;70722:16;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;70722:16:0;;;;;;;;;;;;-1:-1:-1;;70771:16:0;;;70785:1;70771:16;;;;;;;;;70700:38;;-1:-1:-1;70749:19:0;;70771:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;70749:38;;70806:2;70798;70801:1;70798:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70827:2;70819;70822:1;70819:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70848:2;70840;70843:1;70840:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70869:2;70861;70864:1;70861:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70890:2;70882;70885:1;70882:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70911:2;70903;70906:1;70903:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70932:2;70924;70927:1;70924:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70953:2;70945;70948:1;70945:5;;;;;;;;:::i;:::-;;;;;;:10;;;;70973:15;70981:2;70985;70973:7;:15::i;:::-;70966:22;70427:569;-1:-1:-1;;;;;;;;;;;70427:569:0:o;68331:1060::-;68413:4;68451:2;:9;68438:2;:9;:22;68430:56;;;;-1:-1:-1;;;68430:56:0;;16918:2:1;68430:56:0;;;16900:21:1;16957:2;16937:18;;;16930:30;16996:24;16976:18;;;16969:52;17038:18;;68430:56:0;16716:346:1;68430:56:0;68513:9;;68497:13;68550:12;68513:9;68561:1;68550:12;:::i;:::-;68533:29;;68573:19;68606:9;68595:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;68595:21:0;;68573:43;;68632:6;68627:315;68648:8;68644:1;:12;68627:315;;;68706:2;68709:1;68706:5;;;;;;;;:::i;:::-;;;;;;;:7;;;68687:5;68693:1;68697;68693:5;;;;:::i;:::-;:9;;68701:1;68693:9;:::i;:::-;68687:16;;;;;;;;:::i;:::-;;;;;;:26;;;;;68747:2;68750:1;68747:5;;;;;;;;:::i;:::-;;;;;;;:7;;;68728:5;68734:1;68738;68734:5;;;;:::i;:::-;:9;;68742:1;68734:9;:::i;:::-;68728:16;;;;;;;;:::i;:::-;;;;;;:26;;;;;68788:2;68791:1;68788:5;;;;;;;;:::i;:::-;;;;;;;;;;;:7;:10;68769:5;68775;:1;68779;68775:5;:::i;:::-;:9;;68783:1;68775:9;:::i;:::-;68769:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;68832:2;68835:1;68832:5;;;;;;;;:::i;:::-;;;;;;;;;;;;:7;:10;;68813:5;68819;:1;68823;68819:5;:::i;:::-;:9;;68827:1;68819:9;:::i;:::-;68813:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;68876:2;68879:1;68876:5;;;;;;;;:::i;:::-;;;;;;;:7;;;68884:1;68876:10;;;;;;;:::i;:::-;;;;;68857:5;68863;:1;68867;68863:5;:::i;:::-;:9;;68871:1;68863:9;:::i;:::-;68857:16;;;;;;;;:::i;:::-;;;;;;:29;;;;;68920:2;68923:1;68920:5;;;;;;;;:::i;:::-;;;;;;;:7;;;68928:1;68920:10;;;;;;;:::i;:::-;;;;;68901:5;68907;:1;68911;68907:5;:::i;:::-;:9;;68915:1;68907:9;:::i;:::-;68901:16;;;;;;;;:::i;:::-;;;;;;;;;;:29;68658:3;;;;:::i;:::-;;;;68627:315;;;;68952:18;;:::i;:::-;68981:12;69181:4;69176:3;69169:4;69158:9;69154:20;69147:4;69140:5;69136:16;69133:1;69126:4;69119:5;69115:16;69104:82;69093:93;-1:-1:-1;69093:93:0;69273:20;;;;69258:35;69322:7;69314:40;;;;-1:-1:-1;;;69314:40:0;;17269:2:1;69314:40:0;;;17251:21:1;17308:2;17288:18;;;17281:30;17347:23;17327:18;;;17320:51;17388:18;;69314:40:0;17067:345:1;69314:40:0;-1:-1:-1;69372:6:0;:11;;;;-1:-1:-1;;;;;;68331:1060:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:184:1:-;-1:-1:-1;;;63:1:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:246;270:2;264:9;;;300:15;;345:18;330:34;;366:22;;;327:62;324:88;;;392:18;;:::i;:::-;428:2;421:22;203:246;:::o;454:479::-;504:5;557:3;550:4;542:6;538:17;534:27;524:55;;575:1;572;565:12;524:55;599:17;;:::i;:::-;638:3;676:2;668:6;664:15;702:3;694:6;691:15;688:35;;;719:1;716;709:12;688:35;743:6;758:146;774:6;769:3;766:15;758:146;;;842:17;;830:30;;889:4;880:14;;;;791;758:146;;;-1:-1:-1;922:5:1;;454:479;-1:-1:-1;;;;;454:479:1:o;938:501::-;994:5;1047:3;1040:4;1032:6;1028:17;1024:27;1014:55;;1065:1;1062;1055:12;1014:55;1089:17;;:::i;:::-;1128:3;1166;1158:6;1154:16;1193:3;1185:6;1182:15;1179:35;;;1210:1;1207;1200:12;1179:35;1234:6;1249:161;1265:6;1260:3;1257:15;1249:161;;;1331:34;1361:3;1356;1331:34;:::i;:::-;1319:47;;1395:4;1386:14;;;;1291:2;1282:12;1249:161;;1444:1146;1645:6;1653;1661;1669;1700:3;1744:2;1732:9;1723:7;1719:23;1715:32;1712:52;;;1760:1;1757;1750:12;1712:52;1783:44;1819:7;1808:9;1783:44;:::i;:::-;1773:54;;1846:59;1897:7;1892:2;1881:9;1877:18;1846:59;:::i;:::-;1836:69;;1924:54;1970:7;1964:3;1953:9;1949:19;1924:54;:::i;:::-;1914:64;;2022:7;2016:3;2005:9;2001:19;1997:33;1987:61;;2044:1;2041;2034:12;1987:61;2077:2;2071:9;2119:2;2111:6;2107:15;2188:6;2176:10;2173:22;2152:18;2140:10;2137:34;2134:62;2131:88;;;2199:18;;:::i;:::-;2235:2;2228:22;2299:18;;;;2270:6;2329:19;;;2326:39;;;2361:1;2358;2351:12;2326:39;2400:3;2389:9;2385:19;2413:146;2429:6;2424:3;2421:15;2413:146;;;2497:17;;2485:30;;2544:4;2535:14;;;;2446;2413:146;;;2417:3;;2578:6;2568:16;;;;1444:1146;;;;;;;:::o;2787:609::-;2871:6;2879;2887;2895;2948:3;2936:9;2927:7;2923:23;2919:33;2916:53;;;2965:1;2962;2955:12;2916:53;3004:9;2991:23;3054:18;3047:5;3043:30;3036:5;3033:41;3023:69;;3088:1;3085;3078:12;3023:69;3111:5;-1:-1:-1;3168:2:1;3153:18;;3140:32;3216:26;3203:40;;3191:53;;3181:81;;3258:1;3255;3248:12;3181:81;2787:609;;3281:7;;-1:-1:-1;;;;3335:2:1;3320:18;;3307:32;;3386:2;3371:18;3358:32;;2787:609::o;3401:180::-;3460:6;3513:2;3501:9;3492:7;3488:23;3484:32;3481:52;;;3529:1;3526;3519:12;3481:52;-1:-1:-1;3552:23:1;;3401:180;-1:-1:-1;3401:180:1:o;3701:1171::-;3751:3;3779:6;3815:2;3810:3;3806:12;-1:-1:-1;;;;;3918:2:1;3910:5;3904:12;3900:21;3895:3;3888:34;3941:4;3992:2;3985:5;3981:14;3975:21;3970:2;3965:3;3961:12;3954:43;4046:4;4039:5;4035:16;4029:23;4022:4;4017:3;4013:14;4006:47;-1:-1:-1;;;;;4106:4:1;4099:5;4095:16;4089:23;4085:64;4078:4;4073:3;4069:14;4062:88;4199:4;4192:5;4188:16;4182:23;4175:4;4170:3;4166:14;4159:47;4252:4;4245:5;4241:16;4235:23;4290:2;4283:4;4278:3;4274:14;4267:26;4315:4;4302:17;;4348:12;4342:19;4383:6;4377:4;4370:20;4417:3;4412;4408:13;4399:22;;4462:2;4448:12;4444:21;4430:35;;4483:1;4474:10;;4493:184;4507:6;4504:1;4501:13;4493:184;;;4574:13;;4570:22;;4556:37;;4615:14;;;;4652:15;;;;4529:1;4522:9;;;;;4493:184;;;4497:3;;;;;4726:4;4719:5;4715:16;4709:23;4702:4;4697:3;4693:14;4686:47;4781:4;4774:5;4770:16;4764:23;4796:49;4839:4;4834:3;4830:14;4814;3662:26;3651:38;3639:51;;3586:110;4796:49;-1:-1:-1;4861:5:1;3701:1171;-1:-1:-1;;;3701:1171:1:o;4877:258::-;5056:2;5045:9;5038:21;5019:4;5076:53;5125:2;5114:9;5110:18;5102:6;5076:53;:::i;:::-;5068:61;4877:258;-1:-1:-1;;;4877:258:1:o;5140:1444::-;5438:4;5486:2;5475:9;5471:18;5516:2;5505:9;5498:21;5539:6;5574;5568:13;5605:6;5597;5590:22;5643:3;5632:9;5628:19;5621:26;;5706:3;5696:6;5693:1;5689:14;5678:9;5674:30;5670:40;5656:54;;5729:4;5768:2;5760:6;5756:15;5789:1;5799:264;5813:6;5810:1;5807:13;5799:264;;;5906:3;5902:8;5890:9;5882:6;5878:22;5874:37;5869:3;5862:50;5935:48;5976:6;5967;5961:13;5935:48;:::i;:::-;5925:58;-1:-1:-1;6041:12:1;;;;6006:15;;;;5835:1;5828:9;5799:264;;;-1:-1:-1;;6099:22:1;;;6079:18;;;6072:50;6175:13;;6197:24;;;6279:15;;;;6239;;;-1:-1:-1;6175:13:1;-1:-1:-1;6314:1:1;6324:189;6340:8;6335:3;6332:17;6324:189;;;6409:15;;6395:30;;6486:17;;;;6447:14;;;;6368:1;6359:11;6324:189;;;-1:-1:-1;;;6566:2:1;6551:18;;;;6544:34;;;;-1:-1:-1;6530:5:1;5140:1444;-1:-1:-1;;;5140:1444:1:o;6589:377::-;6657:6;6665;6718:2;6706:9;6697:7;6693:23;6689:32;6686:52;;;6734:1;6731;6724:12;6686:52;6770:9;6757:23;6747:33;;6830:2;6819:9;6815:18;6802:32;-1:-1:-1;;;;;6867:5:1;6863:54;6856:5;6853:65;6843:93;;6932:1;6929;6922:12;6843:93;6955:5;6945:15;;;6589:377;;;;;:::o;6971:184::-;-1:-1:-1;;;7020:1:1;7013:88;7120:4;7117:1;7110:15;7144:4;7141:1;7134:15;7160:407;7314:2;7299:18;;7347:1;7336:13;;7326:201;;-1:-1:-1;;;7380:1:1;7373:88;7484:4;7481:1;7474:15;7512:4;7509:1;7502:15;7326:201;7536:25;;;7160:407;:::o;7572:616::-;7759:6;7767;7775;7783;7791;7844:3;7832:9;7823:7;7819:23;7815:33;7812:53;;;7861:1;7858;7851:12;7812:53;7897:9;7884:23;7874:33;;7954:2;7943:9;7939:18;7926:32;7916:42;;7977:53;8022:7;8017:2;8006:9;8002:18;7977:53;:::i;:::-;7967:63;;8049:60;8101:7;8095:3;8084:9;8080:19;8049:60;:::i;:::-;8039:70;;8128:54;8174:7;8168:3;8157:9;8153:19;8128:54;:::i;:::-;8118:64;;7572:616;;;;;;;;:::o;9940:184::-;-1:-1:-1;;;9989:1:1;9982:88;10089:4;10086:1;10079:15;10113:4;10110:1;10103:15;10129:184;-1:-1:-1;;;10178:1:1;10171:88;10278:4;10275:1;10268:15;10302:4;10299:1;10292:15;10318:135;10357:3;-1:-1:-1;;10378:17:1;;10375:43;;;10398:18;;:::i;:::-;-1:-1:-1;10445:1:1;10434:13;;10318:135::o;10864:128::-;10904:3;10935:1;10931:6;10928:1;10925:13;10922:39;;;10941:18;;:::i;:::-;-1:-1:-1;10977:9:1;;10864:128::o;10997:125::-;11037:4;11065:1;11062;11059:8;11056:34;;;11070:18;;:::i;:::-;-1:-1:-1;11107:9:1;;10997:125::o;13989:184::-;-1:-1:-1;;;14038:1:1;14031:88;14138:4;14135:1;14128:15;14162:4;14159:1;14152:15;14178:120;14218:1;14244;14234:35;;14249:18;;:::i;:::-;-1:-1:-1;14283:9:1;;14178:120::o;14303:168::-;14343:7;14409:1;14405;14401:6;14397:14;14394:1;14391:21;14386:1;14379:9;14372:17;14368:45;14365:71;;;14416:18;;:::i;:::-;-1:-1:-1;14456:9:1;;14303:168::o;16599:112::-;16631:1;16657;16647:35;;16662:18;;:::i;:::-;-1:-1:-1;16696:9:1;;16599:112::o

Swarm Source

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