-
Notifications
You must be signed in to change notification settings - Fork 14
/
ethereum_smartcontract.contract.register_drupal.yml
11 lines (11 loc) · 66.6 KB
/
ethereum_smartcontract.contract.register_drupal.yml
1
2
3
4
5
6
7
8
9
10
11
uuid: 239ffd66-b3b9-4b95-a267-6456f4388df3
langcode: en
status: true
dependencies: { }
id: register_drupal
label: 'Register Drupal'
contract_src: "pragma solidity ^0.4.19;\r\n\r\ncontract RegisterDrupal {\r\n\r\n // Mapping that matches Drupal generated hash with Ethereum Account address.\r\n mapping (bytes32 => address) _accounts;\r\n\r\n address _registryAdmin;\r\n\r\n // Allowed to administrate accounts only, not everything\r\n address _accountAdmin;\r\n\r\n // If a newer version of this registry is available, force users to use it\r\n bool _registrationDisabled;\r\n\r\n // Event allowing listening to newly signed Accounts (?)\r\n event AccountCreatedEvent (address indexed from, bytes32 indexed hash, int error);\r\n\r\n function accountCreated(address from, bytes32 hash, int error) public {\r\n AccountCreatedEvent(from, hash, error);\r\n }\r\n\r\n // Register Account\r\n function newUser(bytes32 drupalUserHash) public {\r\n\r\n if (_accounts[drupalUserHash] == msg.sender) {\r\n // Hash allready registered to address.\r\n accountCreated(msg.sender, drupalUserHash, 4);\r\n }\r\n else if (_accounts[drupalUserHash] > 0) {\r\n // Hash allready registered to different address.\r\n accountCreated(msg.sender, drupalUserHash, 3);\r\n }\r\n else if (drupalUserHash.length > 32) {\r\n // Hash too long\r\n accountCreated(msg.sender, drupalUserHash, 2);\r\n }\r\n else if (_registrationDisabled){\r\n // Registry is disabled because a newer version is available\r\n accountCreated(msg.sender, drupalUserHash, 1);\r\n }\r\n else {\r\n _accounts[drupalUserHash] = msg.sender;\r\n accountCreated(msg.sender, drupalUserHash, 0);\r\n }\r\n }\r\n\r\n // Validate Account\r\n function validateUserByHash (bytes32 drupalUserHash) public constant returns (address result) {\r\n return _accounts[drupalUserHash];\r\n }\r\n\r\n function contractExists () public pure returns (bool result){\r\n return true;\r\n }\r\n\r\n // Administrative below\r\n function RegisterDrupal() public {\r\n _registryAdmin = msg.sender;\r\n _accountAdmin = msg.sender; // can be changed later\r\n _registrationDisabled = false;\r\n }\r\n\r\n function adminSetRegistrationDisabled(bool registrationDisabled) public {\r\n // currently, the code of the registry can not be updated once it is\r\n // deployed. if a newer version of the registry is available, account\r\n // registration can be disabled\r\n if (msg.sender == _registryAdmin) {\r\n _registrationDisabled = registrationDisabled;\r\n }\r\n }\r\n\r\n function adminSetAccountAdministrator(address accountAdmin) public {\r\n if (msg.sender == _registryAdmin) {\r\n _accountAdmin = accountAdmin;\r\n }\r\n }\r\n\r\n function adminRetrieveDonations() public {\r\n if (msg.sender == _registryAdmin) {\r\n _registryAdmin.transfer(this.balance);\r\n }\r\n }\r\n\r\n function adminDeleteRegistry() public {\r\n if (msg.sender == _registryAdmin) {\r\n selfdestruct(_registryAdmin); // this is a predefined function, it deletes the contract and returns all funds to the admin's address\r\n }\r\n }\r\n\r\n}"
contract_compiled_json: '{"assembly":{".code":[{"begin":26,"end":2802,"name":"PUSH","value":"60"},{"begin":26,"end":2802,"name":"PUSH","value":"40"},{"begin":26,"end":2802,"name":"MSTORE"},{"begin":1744,"end":1906,"name":"CALLVALUE"},{"begin":1744,"end":1906,"name":"ISZERO"},{"begin":1744,"end":1906,"name":"PUSH [tag]","value":"1"},{"begin":1744,"end":1906,"name":"JUMPI"},{"begin":1744,"end":1906,"name":"PUSH","value":"0"},{"begin":1744,"end":1906,"name":"DUP1"},{"begin":1744,"end":1906,"name":"REVERT"},{"begin":1744,"end":1906,"name":"tag","value":"1"},{"begin":1744,"end":1906,"name":"JUMPDEST"},{"begin":1800,"end":1810,"name":"CALLER"},{"begin":1783,"end":1797,"name":"PUSH","value":"1"},{"begin":1783,"end":1797,"name":"PUSH","value":"0"},{"begin":1783,"end":1810,"name":"PUSH","value":"100"},{"begin":1783,"end":1810,"name":"EXP"},{"begin":1783,"end":1810,"name":"DUP2"},{"begin":1783,"end":1810,"name":"SLOAD"},{"begin":1783,"end":1810,"name":"DUP2"},{"begin":1783,"end":1810,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1783,"end":1810,"name":"MUL"},{"begin":1783,"end":1810,"name":"NOT"},{"begin":1783,"end":1810,"name":"AND"},{"begin":1783,"end":1810,"name":"SWAP1"},{"begin":1783,"end":1810,"name":"DUP4"},{"begin":1783,"end":1810,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1783,"end":1810,"name":"AND"},{"begin":1783,"end":1810,"name":"MUL"},{"begin":1783,"end":1810,"name":"OR"},{"begin":1783,"end":1810,"name":"SWAP1"},{"begin":1783,"end":1810,"name":"SSTORE"},{"begin":1783,"end":1810,"name":"POP"},{"begin":1832,"end":1842,"name":"CALLER"},{"begin":1816,"end":1829,"name":"PUSH","value":"2"},{"begin":1816,"end":1829,"name":"PUSH","value":"0"},{"begin":1816,"end":1842,"name":"PUSH","value":"100"},{"begin":1816,"end":1842,"name":"EXP"},{"begin":1816,"end":1842,"name":"DUP2"},{"begin":1816,"end":1842,"name":"SLOAD"},{"begin":1816,"end":1842,"name":"DUP2"},{"begin":1816,"end":1842,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1816,"end":1842,"name":"MUL"},{"begin":1816,"end":1842,"name":"NOT"},{"begin":1816,"end":1842,"name":"AND"},{"begin":1816,"end":1842,"name":"SWAP1"},{"begin":1816,"end":1842,"name":"DUP4"},{"begin":1816,"end":1842,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1816,"end":1842,"name":"AND"},{"begin":1816,"end":1842,"name":"MUL"},{"begin":1816,"end":1842,"name":"OR"},{"begin":1816,"end":1842,"name":"SWAP1"},{"begin":1816,"end":1842,"name":"SSTORE"},{"begin":1816,"end":1842,"name":"POP"},{"begin":1896,"end":1901,"name":"PUSH","value":"0"},{"begin":1872,"end":1893,"name":"PUSH","value":"2"},{"begin":1872,"end":1893,"name":"PUSH","value":"14"},{"begin":1872,"end":1901,"name":"PUSH","value":"100"},{"begin":1872,"end":1901,"name":"EXP"},{"begin":1872,"end":1901,"name":"DUP2"},{"begin":1872,"end":1901,"name":"SLOAD"},{"begin":1872,"end":1901,"name":"DUP2"},{"begin":1872,"end":1901,"name":"PUSH","value":"FF"},{"begin":1872,"end":1901,"name":"MUL"},{"begin":1872,"end":1901,"name":"NOT"},{"begin":1872,"end":1901,"name":"AND"},{"begin":1872,"end":1901,"name":"SWAP1"},{"begin":1872,"end":1901,"name":"DUP4"},{"begin":1872,"end":1901,"name":"ISZERO"},{"begin":1872,"end":1901,"name":"ISZERO"},{"begin":1872,"end":1901,"name":"MUL"},{"begin":1872,"end":1901,"name":"OR"},{"begin":1872,"end":1901,"name":"SWAP1"},{"begin":1872,"end":1901,"name":"SSTORE"},{"begin":1872,"end":1901,"name":"POP"},{"begin":26,"end":2802,"name":"PUSH #[$]","value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH [$]","value":"0000000000000000000000000000000000000000000000000000000000000000"},{"begin":26,"end":2802,"name":"PUSH","value":"0"},{"begin":26,"end":2802,"name":"CODECOPY"},{"begin":26,"end":2802,"name":"PUSH","value":"0"},{"begin":26,"end":2802,"name":"RETURN"}],".data":{"0":{".auxdata":"a165627a7a72305820bd8dd7c6e8aa318c81c9ea45fdb6616f00a51ec3a6b283580056a3ac2bca63470029",".code":[{"begin":26,"end":2802,"name":"PUSH","value":"60"},{"begin":26,"end":2802,"name":"PUSH","value":"40"},{"begin":26,"end":2802,"name":"MSTORE"},{"begin":26,"end":2802,"name":"PUSH","value":"4"},{"begin":26,"end":2802,"name":"CALLDATASIZE"},{"begin":26,"end":2802,"name":"LT"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"1"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"PUSH","value":"0"},{"begin":26,"end":2802,"name":"CALLDATALOAD"},{"begin":26,"end":2802,"name":"PUSH","value":"100000000000000000000000000000000000000000000000000000000"},{"begin":26,"end":2802,"name":"SWAP1"},{"begin":26,"end":2802,"name":"DIV"},{"begin":26,"end":2802,"name":"PUSH","value":"FFFFFFFF"},{"begin":26,"end":2802,"name":"AND"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"6AE9483"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"2"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"111B72C3"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"3"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"2573CE27"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"4"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"345E3416"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"5"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"3AF41DC2"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"6"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"49F0C90D"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"7"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"9B6D86D6"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"8"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"PUSH","value":"F845862F"},{"begin":26,"end":2802,"name":"EQ"},{"begin":26,"end":2802,"name":"PUSH [tag]","value":"9"},{"begin":26,"end":2802,"name":"JUMPI"},{"begin":26,"end":2802,"name":"tag","value":"1"},{"begin":26,"end":2802,"name":"JUMPDEST"},{"begin":26,"end":2802,"name":"PUSH","value":"0"},{"begin":26,"end":2802,"name":"DUP1"},{"begin":26,"end":2802,"name":"REVERT"},{"begin":1632,"end":1714,"name":"tag","value":"2"},{"begin":1632,"end":1714,"name":"JUMPDEST"},{"begin":1632,"end":1714,"name":"CALLVALUE"},{"begin":1632,"end":1714,"name":"ISZERO"},{"begin":1632,"end":1714,"name":"PUSH [tag]","value":"10"},{"begin":1632,"end":1714,"name":"JUMPI"},{"begin":1632,"end":1714,"name":"PUSH","value":"0"},{"begin":1632,"end":1714,"name":"DUP1"},{"begin":1632,"end":1714,"name":"REVERT"},{"begin":1632,"end":1714,"name":"tag","value":"10"},{"begin":1632,"end":1714,"name":"JUMPDEST"},{"begin":1632,"end":1714,"name":"PUSH [tag]","value":"11"},{"begin":1632,"end":1714,"name":"PUSH [tag]","value":"12"},{"begin":1632,"end":1714,"name":"JUMP"},{"begin":1632,"end":1714,"name":"tag","value":"11"},{"begin":1632,"end":1714,"name":"JUMPDEST"},{"begin":1632,"end":1714,"name":"PUSH","value":"40"},{"begin":1632,"end":1714,"name":"MLOAD"},{"begin":1632,"end":1714,"name":"DUP1"},{"begin":1632,"end":1714,"name":"DUP3"},{"begin":1632,"end":1714,"name":"ISZERO"},{"begin":1632,"end":1714,"name":"ISZERO"},{"begin":1632,"end":1714,"name":"ISZERO"},{"begin":1632,"end":1714,"name":"ISZERO"},{"begin":1632,"end":1714,"name":"DUP2"},{"begin":1632,"end":1714,"name":"MSTORE"},{"begin":1632,"end":1714,"name":"PUSH","value":"20"},{"begin":1632,"end":1714,"name":"ADD"},{"begin":1632,"end":1714,"name":"SWAP2"},{"begin":1632,"end":1714,"name":"POP"},{"begin":1632,"end":1714,"name":"POP"},{"begin":1632,"end":1714,"name":"PUSH","value":"40"},{"begin":1632,"end":1714,"name":"MLOAD"},{"begin":1632,"end":1714,"name":"DUP1"},{"begin":1632,"end":1714,"name":"SWAP2"},{"begin":1632,"end":1714,"name":"SUB"},{"begin":1632,"end":1714,"name":"SWAP1"},{"begin":1632,"end":1714,"name":"RETURN"},{"begin":542,"end":661,"name":"tag","value":"3"},{"begin":542,"end":661,"name":"JUMPDEST"},{"begin":542,"end":661,"name":"CALLVALUE"},{"begin":542,"end":661,"name":"ISZERO"},{"begin":542,"end":661,"name":"PUSH [tag]","value":"13"},{"begin":542,"end":661,"name":"JUMPI"},{"begin":542,"end":661,"name":"PUSH","value":"0"},{"begin":542,"end":661,"name":"DUP1"},{"begin":542,"end":661,"name":"REVERT"},{"begin":542,"end":661,"name":"tag","value":"13"},{"begin":542,"end":661,"name":"JUMPDEST"},{"begin":542,"end":661,"name":"PUSH [tag]","value":"14"},{"begin":542,"end":661,"name":"PUSH","value":"4"},{"begin":542,"end":661,"name":"DUP1"},{"begin":542,"end":661,"name":"DUP1"},{"begin":542,"end":661,"name":"CALLDATALOAD"},{"begin":542,"end":661,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":542,"end":661,"name":"AND"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"PUSH","value":"20"},{"begin":542,"end":661,"name":"ADD"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"SWAP2"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"DUP1"},{"begin":542,"end":661,"name":"CALLDATALOAD"},{"begin":542,"end":661,"name":"PUSH","value":"0"},{"begin":542,"end":661,"name":"NOT"},{"begin":542,"end":661,"name":"AND"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"PUSH","value":"20"},{"begin":542,"end":661,"name":"ADD"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"SWAP2"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"DUP1"},{"begin":542,"end":661,"name":"CALLDATALOAD"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"PUSH","value":"20"},{"begin":542,"end":661,"name":"ADD"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"SWAP2"},{"begin":542,"end":661,"name":"SWAP1"},{"begin":542,"end":661,"name":"POP"},{"begin":542,"end":661,"name":"POP"},{"begin":542,"end":661,"name":"PUSH [tag]","value":"15"},{"begin":542,"end":661,"name":"JUMP"},{"begin":542,"end":661,"name":"tag","value":"14"},{"begin":542,"end":661,"name":"JUMPDEST"},{"begin":542,"end":661,"name":"STOP"},{"begin":1489,"end":1628,"name":"tag","value":"4"},{"begin":1489,"end":1628,"name":"JUMPDEST"},{"begin":1489,"end":1628,"name":"CALLVALUE"},{"begin":1489,"end":1628,"name":"ISZERO"},{"begin":1489,"end":1628,"name":"PUSH [tag]","value":"16"},{"begin":1489,"end":1628,"name":"JUMPI"},{"begin":1489,"end":1628,"name":"PUSH","value":"0"},{"begin":1489,"end":1628,"name":"DUP1"},{"begin":1489,"end":1628,"name":"REVERT"},{"begin":1489,"end":1628,"name":"tag","value":"16"},{"begin":1489,"end":1628,"name":"JUMPDEST"},{"begin":1489,"end":1628,"name":"PUSH [tag]","value":"17"},{"begin":1489,"end":1628,"name":"PUSH","value":"4"},{"begin":1489,"end":1628,"name":"DUP1"},{"begin":1489,"end":1628,"name":"DUP1"},{"begin":1489,"end":1628,"name":"CALLDATALOAD"},{"begin":1489,"end":1628,"name":"PUSH","value":"0"},{"begin":1489,"end":1628,"name":"NOT"},{"begin":1489,"end":1628,"name":"AND"},{"begin":1489,"end":1628,"name":"SWAP1"},{"begin":1489,"end":1628,"name":"PUSH","value":"20"},{"begin":1489,"end":1628,"name":"ADD"},{"begin":1489,"end":1628,"name":"SWAP1"},{"begin":1489,"end":1628,"name":"SWAP2"},{"begin":1489,"end":1628,"name":"SWAP1"},{"begin":1489,"end":1628,"name":"POP"},{"begin":1489,"end":1628,"name":"POP"},{"begin":1489,"end":1628,"name":"PUSH [tag]","value":"18"},{"begin":1489,"end":1628,"name":"JUMP"},{"begin":1489,"end":1628,"name":"tag","value":"17"},{"begin":1489,"end":1628,"name":"JUMPDEST"},{"begin":1489,"end":1628,"name":"PUSH","value":"40"},{"begin":1489,"end":1628,"name":"MLOAD"},{"begin":1489,"end":1628,"name":"DUP1"},{"begin":1489,"end":1628,"name":"DUP3"},{"begin":1489,"end":1628,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1489,"end":1628,"name":"AND"},{"begin":1489,"end":1628,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1489,"end":1628,"name":"AND"},{"begin":1489,"end":1628,"name":"DUP2"},{"begin":1489,"end":1628,"name":"MSTORE"},{"begin":1489,"end":1628,"name":"PUSH","value":"20"},{"begin":1489,"end":1628,"name":"ADD"},{"begin":1489,"end":1628,"name":"SWAP2"},{"begin":1489,"end":1628,"name":"POP"},{"begin":1489,"end":1628,"name":"POP"},{"begin":1489,"end":1628,"name":"PUSH","value":"40"},{"begin":1489,"end":1628,"name":"MLOAD"},{"begin":1489,"end":1628,"name":"DUP1"},{"begin":1489,"end":1628,"name":"SWAP2"},{"begin":1489,"end":1628,"name":"SUB"},{"begin":1489,"end":1628,"name":"SWAP1"},{"begin":1489,"end":1628,"name":"RETURN"},{"begin":2430,"end":2567,"name":"tag","value":"5"},{"begin":2430,"end":2567,"name":"JUMPDEST"},{"begin":2430,"end":2567,"name":"CALLVALUE"},{"begin":2430,"end":2567,"name":"ISZERO"},{"begin":2430,"end":2567,"name":"PUSH [tag]","value":"19"},{"begin":2430,"end":2567,"name":"JUMPI"},{"begin":2430,"end":2567,"name":"PUSH","value":"0"},{"begin":2430,"end":2567,"name":"DUP1"},{"begin":2430,"end":2567,"name":"REVERT"},{"begin":2430,"end":2567,"name":"tag","value":"19"},{"begin":2430,"end":2567,"name":"JUMPDEST"},{"begin":2430,"end":2567,"name":"PUSH [tag]","value":"20"},{"begin":2430,"end":2567,"name":"PUSH [tag]","value":"21"},{"begin":2430,"end":2567,"name":"JUMP"},{"begin":2430,"end":2567,"name":"tag","value":"20"},{"begin":2430,"end":2567,"name":"JUMPDEST"},{"begin":2430,"end":2567,"name":"STOP"},{"begin":2571,"end":2799,"name":"tag","value":"6"},{"begin":2571,"end":2799,"name":"JUMPDEST"},{"begin":2571,"end":2799,"name":"CALLVALUE"},{"begin":2571,"end":2799,"name":"ISZERO"},{"begin":2571,"end":2799,"name":"PUSH [tag]","value":"22"},{"begin":2571,"end":2799,"name":"JUMPI"},{"begin":2571,"end":2799,"name":"PUSH","value":"0"},{"begin":2571,"end":2799,"name":"DUP1"},{"begin":2571,"end":2799,"name":"REVERT"},{"begin":2571,"end":2799,"name":"tag","value":"22"},{"begin":2571,"end":2799,"name":"JUMPDEST"},{"begin":2571,"end":2799,"name":"PUSH [tag]","value":"23"},{"begin":2571,"end":2799,"name":"PUSH [tag]","value":"24"},{"begin":2571,"end":2799,"name":"JUMP"},{"begin":2571,"end":2799,"name":"tag","value":"23"},{"begin":2571,"end":2799,"name":"JUMPDEST"},{"begin":2571,"end":2799,"name":"STOP"},{"begin":2272,"end":2426,"name":"tag","value":"7"},{"begin":2272,"end":2426,"name":"JUMPDEST"},{"begin":2272,"end":2426,"name":"CALLVALUE"},{"begin":2272,"end":2426,"name":"ISZERO"},{"begin":2272,"end":2426,"name":"PUSH [tag]","value":"25"},{"begin":2272,"end":2426,"name":"JUMPI"},{"begin":2272,"end":2426,"name":"PUSH","value":"0"},{"begin":2272,"end":2426,"name":"DUP1"},{"begin":2272,"end":2426,"name":"REVERT"},{"begin":2272,"end":2426,"name":"tag","value":"25"},{"begin":2272,"end":2426,"name":"JUMPDEST"},{"begin":2272,"end":2426,"name":"PUSH [tag]","value":"26"},{"begin":2272,"end":2426,"name":"PUSH","value":"4"},{"begin":2272,"end":2426,"name":"DUP1"},{"begin":2272,"end":2426,"name":"DUP1"},{"begin":2272,"end":2426,"name":"CALLDATALOAD"},{"begin":2272,"end":2426,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2272,"end":2426,"name":"AND"},{"begin":2272,"end":2426,"name":"SWAP1"},{"begin":2272,"end":2426,"name":"PUSH","value":"20"},{"begin":2272,"end":2426,"name":"ADD"},{"begin":2272,"end":2426,"name":"SWAP1"},{"begin":2272,"end":2426,"name":"SWAP2"},{"begin":2272,"end":2426,"name":"SWAP1"},{"begin":2272,"end":2426,"name":"POP"},{"begin":2272,"end":2426,"name":"POP"},{"begin":2272,"end":2426,"name":"PUSH [tag]","value":"27"},{"begin":2272,"end":2426,"name":"JUMP"},{"begin":2272,"end":2426,"name":"tag","value":"26"},{"begin":2272,"end":2426,"name":"JUMPDEST"},{"begin":2272,"end":2426,"name":"STOP"},{"begin":1910,"end":2268,"name":"tag","value":"8"},{"begin":1910,"end":2268,"name":"JUMPDEST"},{"begin":1910,"end":2268,"name":"CALLVALUE"},{"begin":1910,"end":2268,"name":"ISZERO"},{"begin":1910,"end":2268,"name":"PUSH [tag]","value":"28"},{"begin":1910,"end":2268,"name":"JUMPI"},{"begin":1910,"end":2268,"name":"PUSH","value":"0"},{"begin":1910,"end":2268,"name":"DUP1"},{"begin":1910,"end":2268,"name":"REVERT"},{"begin":1910,"end":2268,"name":"tag","value":"28"},{"begin":1910,"end":2268,"name":"JUMPDEST"},{"begin":1910,"end":2268,"name":"PUSH [tag]","value":"29"},{"begin":1910,"end":2268,"name":"PUSH","value":"4"},{"begin":1910,"end":2268,"name":"DUP1"},{"begin":1910,"end":2268,"name":"DUP1"},{"begin":1910,"end":2268,"name":"CALLDATALOAD"},{"begin":1910,"end":2268,"name":"ISZERO"},{"begin":1910,"end":2268,"name":"ISZERO"},{"begin":1910,"end":2268,"name":"SWAP1"},{"begin":1910,"end":2268,"name":"PUSH","value":"20"},{"begin":1910,"end":2268,"name":"ADD"},{"begin":1910,"end":2268,"name":"SWAP1"},{"begin":1910,"end":2268,"name":"SWAP2"},{"begin":1910,"end":2268,"name":"SWAP1"},{"begin":1910,"end":2268,"name":"POP"},{"begin":1910,"end":2268,"name":"POP"},{"begin":1910,"end":2268,"name":"PUSH [tag]","value":"30"},{"begin":1910,"end":2268,"name":"JUMP"},{"begin":1910,"end":2268,"name":"tag","value":"29"},{"begin":1910,"end":2268,"name":"JUMPDEST"},{"begin":1910,"end":2268,"name":"STOP"},{"begin":687,"end":1463,"name":"tag","value":"9"},{"begin":687,"end":1463,"name":"JUMPDEST"},{"begin":687,"end":1463,"name":"CALLVALUE"},{"begin":687,"end":1463,"name":"ISZERO"},{"begin":687,"end":1463,"name":"PUSH [tag]","value":"31"},{"begin":687,"end":1463,"name":"JUMPI"},{"begin":687,"end":1463,"name":"PUSH","value":"0"},{"begin":687,"end":1463,"name":"DUP1"},{"begin":687,"end":1463,"name":"REVERT"},{"begin":687,"end":1463,"name":"tag","value":"31"},{"begin":687,"end":1463,"name":"JUMPDEST"},{"begin":687,"end":1463,"name":"PUSH [tag]","value":"32"},{"begin":687,"end":1463,"name":"PUSH","value":"4"},{"begin":687,"end":1463,"name":"DUP1"},{"begin":687,"end":1463,"name":"DUP1"},{"begin":687,"end":1463,"name":"CALLDATALOAD"},{"begin":687,"end":1463,"name":"PUSH","value":"0"},{"begin":687,"end":1463,"name":"NOT"},{"begin":687,"end":1463,"name":"AND"},{"begin":687,"end":1463,"name":"SWAP1"},{"begin":687,"end":1463,"name":"PUSH","value":"20"},{"begin":687,"end":1463,"name":"ADD"},{"begin":687,"end":1463,"name":"SWAP1"},{"begin":687,"end":1463,"name":"SWAP2"},{"begin":687,"end":1463,"name":"SWAP1"},{"begin":687,"end":1463,"name":"POP"},{"begin":687,"end":1463,"name":"POP"},{"begin":687,"end":1463,"name":"PUSH [tag]","value":"33"},{"begin":687,"end":1463,"name":"JUMP"},{"begin":687,"end":1463,"name":"tag","value":"32"},{"begin":687,"end":1463,"name":"JUMPDEST"},{"begin":687,"end":1463,"name":"STOP"},{"begin":1632,"end":1714,"name":"tag","value":"12"},{"begin":1632,"end":1714,"name":"JUMPDEST"},{"begin":1680,"end":1691,"name":"PUSH","value":"0"},{"begin":1705,"end":1709,"name":"PUSH","value":"1"},{"begin":1698,"end":1709,"name":"SWAP1"},{"begin":1698,"end":1709,"name":"POP"},{"begin":1632,"end":1714,"name":"SWAP1"},{"begin":1632,"end":1714,"name":"JUMP","value":"[out]"},{"begin":542,"end":661,"name":"tag","value":"15"},{"begin":542,"end":661,"name":"JUMPDEST"},{"begin":644,"end":648,"name":"DUP2"},{"begin":618,"end":656,"name":"PUSH","value":"0"},{"begin":618,"end":656,"name":"NOT"},{"begin":618,"end":656,"name":"AND"},{"begin":638,"end":642,"name":"DUP4"},{"begin":618,"end":656,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":618,"end":656,"name":"AND"},{"begin":618,"end":656,"name":"PUSH","value":"DD4ADF6C5EF0C5A78200BCEBCE519E97649524D2C8DC89CF0F8BAA99CC39BB53"},{"begin":650,"end":655,"name":"DUP4"},{"begin":618,"end":656,"name":"PUSH","value":"40"},{"begin":618,"end":656,"name":"MLOAD"},{"begin":618,"end":656,"name":"DUP1"},{"begin":618,"end":656,"name":"DUP3"},{"begin":618,"end":656,"name":"DUP2"},{"begin":618,"end":656,"name":"MSTORE"},{"begin":618,"end":656,"name":"PUSH","value":"20"},{"begin":618,"end":656,"name":"ADD"},{"begin":618,"end":656,"name":"SWAP2"},{"begin":618,"end":656,"name":"POP"},{"begin":618,"end":656,"name":"POP"},{"begin":618,"end":656,"name":"PUSH","value":"40"},{"begin":618,"end":656,"name":"MLOAD"},{"begin":618,"end":656,"name":"DUP1"},{"begin":618,"end":656,"name":"SWAP2"},{"begin":618,"end":656,"name":"SUB"},{"begin":618,"end":656,"name":"SWAP1"},{"begin":618,"end":656,"name":"LOG3"},{"begin":542,"end":661,"name":"POP"},{"begin":542,"end":661,"name":"POP"},{"begin":542,"end":661,"name":"POP"},{"begin":542,"end":661,"name":"JUMP","value":"[out]"},{"begin":1489,"end":1628,"name":"tag","value":"18"},{"begin":1489,"end":1628,"name":"JUMPDEST"},{"begin":1567,"end":1581,"name":"PUSH","value":"0"},{"begin":1598,"end":1607,"name":"DUP1"},{"begin":1598,"end":1623,"name":"PUSH","value":"0"},{"begin":1608,"end":1622,"name":"DUP4"},{"begin":1598,"end":1623,"name":"PUSH","value":"0"},{"begin":1598,"end":1623,"name":"NOT"},{"begin":1598,"end":1623,"name":"AND"},{"begin":1598,"end":1623,"name":"PUSH","value":"0"},{"begin":1598,"end":1623,"name":"NOT"},{"begin":1598,"end":1623,"name":"AND"},{"begin":1598,"end":1623,"name":"DUP2"},{"begin":1598,"end":1623,"name":"MSTORE"},{"begin":1598,"end":1623,"name":"PUSH","value":"20"},{"begin":1598,"end":1623,"name":"ADD"},{"begin":1598,"end":1623,"name":"SWAP1"},{"begin":1598,"end":1623,"name":"DUP2"},{"begin":1598,"end":1623,"name":"MSTORE"},{"begin":1598,"end":1623,"name":"PUSH","value":"20"},{"begin":1598,"end":1623,"name":"ADD"},{"begin":1598,"end":1623,"name":"PUSH","value":"0"},{"begin":1598,"end":1623,"name":"KECCAK256"},{"begin":1598,"end":1623,"name":"PUSH","value":"0"},{"begin":1598,"end":1623,"name":"SWAP1"},{"begin":1598,"end":1623,"name":"SLOAD"},{"begin":1598,"end":1623,"name":"SWAP1"},{"begin":1598,"end":1623,"name":"PUSH","value":"100"},{"begin":1598,"end":1623,"name":"EXP"},{"begin":1598,"end":1623,"name":"SWAP1"},{"begin":1598,"end":1623,"name":"DIV"},{"begin":1598,"end":1623,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1598,"end":1623,"name":"AND"},{"begin":1591,"end":1623,"name":"SWAP1"},{"begin":1591,"end":1623,"name":"POP"},{"begin":1489,"end":1628,"name":"SWAP2"},{"begin":1489,"end":1628,"name":"SWAP1"},{"begin":1489,"end":1628,"name":"POP"},{"begin":1489,"end":1628,"name":"JUMP","value":"[out]"},{"begin":2430,"end":2567,"name":"tag","value":"21"},{"begin":2430,"end":2567,"name":"JUMPDEST"},{"begin":2495,"end":2509,"name":"PUSH","value":"1"},{"begin":2495,"end":2509,"name":"PUSH","value":"0"},{"begin":2495,"end":2509,"name":"SWAP1"},{"begin":2495,"end":2509,"name":"SLOAD"},{"begin":2495,"end":2509,"name":"SWAP1"},{"begin":2495,"end":2509,"name":"PUSH","value":"100"},{"begin":2495,"end":2509,"name":"EXP"},{"begin":2495,"end":2509,"name":"SWAP1"},{"begin":2495,"end":2509,"name":"DIV"},{"begin":2495,"end":2509,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2495,"end":2509,"name":"AND"},{"begin":2481,"end":2509,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2481,"end":2509,"name":"AND"},{"begin":2481,"end":2491,"name":"CALLER"},{"begin":2481,"end":2509,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2481,"end":2509,"name":"AND"},{"begin":2481,"end":2509,"name":"EQ"},{"begin":2477,"end":2563,"name":"ISZERO"},{"begin":2477,"end":2563,"name":"PUSH [tag]","value":"38"},{"begin":2477,"end":2563,"name":"JUMPI"},{"begin":2519,"end":2533,"name":"PUSH","value":"1"},{"begin":2519,"end":2533,"name":"PUSH","value":"0"},{"begin":2519,"end":2533,"name":"SWAP1"},{"begin":2519,"end":2533,"name":"SLOAD"},{"begin":2519,"end":2533,"name":"SWAP1"},{"begin":2519,"end":2533,"name":"PUSH","value":"100"},{"begin":2519,"end":2533,"name":"EXP"},{"begin":2519,"end":2533,"name":"SWAP1"},{"begin":2519,"end":2533,"name":"DIV"},{"begin":2519,"end":2533,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2519,"end":2533,"name":"AND"},{"begin":2519,"end":2542,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2519,"end":2542,"name":"AND"},{"begin":2519,"end":2556,"name":"PUSH","value":"8FC"},{"begin":2543,"end":2547,"name":"ADDRESS"},{"begin":2543,"end":2555,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2543,"end":2555,"name":"AND"},{"begin":2543,"end":2555,"name":"BALANCE"},{"begin":2519,"end":2556,"name":"SWAP1"},{"begin":2519,"end":2556,"name":"DUP2"},{"begin":2519,"end":2556,"name":"ISZERO"},{"begin":2519,"end":2556,"name":"MUL"},{"begin":2519,"end":2556,"name":"SWAP1"},{"begin":2519,"end":2556,"name":"PUSH","value":"40"},{"begin":2519,"end":2556,"name":"MLOAD"},{"begin":2519,"end":2556,"name":"PUSH","value":"0"},{"begin":2519,"end":2556,"name":"PUSH","value":"40"},{"begin":2519,"end":2556,"name":"MLOAD"},{"begin":2519,"end":2556,"name":"DUP1"},{"begin":2519,"end":2556,"name":"DUP4"},{"begin":2519,"end":2556,"name":"SUB"},{"begin":2519,"end":2556,"name":"DUP2"},{"begin":2519,"end":2556,"name":"DUP6"},{"begin":2519,"end":2556,"name":"DUP9"},{"begin":2519,"end":2556,"name":"DUP9"},{"begin":2519,"end":2556,"name":"CALL"},{"begin":2519,"end":2556,"name":"SWAP4"},{"begin":2519,"end":2556,"name":"POP"},{"begin":2519,"end":2556,"name":"POP"},{"begin":2519,"end":2556,"name":"POP"},{"begin":2519,"end":2556,"name":"POP"},{"begin":2519,"end":2556,"name":"ISZERO"},{"begin":2519,"end":2556,"name":"ISZERO"},{"begin":2519,"end":2556,"name":"PUSH [tag]","value":"39"},{"begin":2519,"end":2556,"name":"JUMPI"},{"begin":2519,"end":2556,"name":"PUSH","value":"0"},{"begin":2519,"end":2556,"name":"DUP1"},{"begin":2519,"end":2556,"name":"REVERT"},{"begin":2519,"end":2556,"name":"tag","value":"39"},{"begin":2519,"end":2556,"name":"JUMPDEST"},{"begin":2477,"end":2563,"name":"tag","value":"38"},{"begin":2477,"end":2563,"name":"JUMPDEST"},{"begin":2430,"end":2567,"name":"JUMP","value":"[out]"},{"begin":2571,"end":2799,"name":"tag","value":"24"},{"begin":2571,"end":2799,"name":"JUMPDEST"},{"begin":2633,"end":2647,"name":"PUSH","value":"1"},{"begin":2633,"end":2647,"name":"PUSH","value":"0"},{"begin":2633,"end":2647,"name":"SWAP1"},{"begin":2633,"end":2647,"name":"SLOAD"},{"begin":2633,"end":2647,"name":"SWAP1"},{"begin":2633,"end":2647,"name":"PUSH","value":"100"},{"begin":2633,"end":2647,"name":"EXP"},{"begin":2633,"end":2647,"name":"SWAP1"},{"begin":2633,"end":2647,"name":"DIV"},{"begin":2633,"end":2647,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2633,"end":2647,"name":"AND"},{"begin":2619,"end":2647,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2619,"end":2647,"name":"AND"},{"begin":2619,"end":2629,"name":"CALLER"},{"begin":2619,"end":2647,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2619,"end":2647,"name":"AND"},{"begin":2619,"end":2647,"name":"EQ"},{"begin":2615,"end":2795,"name":"ISZERO"},{"begin":2615,"end":2795,"name":"PUSH [tag]","value":"41"},{"begin":2615,"end":2795,"name":"JUMPI"},{"begin":2670,"end":2684,"name":"PUSH","value":"1"},{"begin":2670,"end":2684,"name":"PUSH","value":"0"},{"begin":2670,"end":2684,"name":"SWAP1"},{"begin":2670,"end":2684,"name":"SLOAD"},{"begin":2670,"end":2684,"name":"SWAP1"},{"begin":2670,"end":2684,"name":"PUSH","value":"100"},{"begin":2670,"end":2684,"name":"EXP"},{"begin":2670,"end":2684,"name":"SWAP1"},{"begin":2670,"end":2684,"name":"DIV"},{"begin":2670,"end":2684,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2670,"end":2684,"name":"AND"},{"begin":2657,"end":2685,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2657,"end":2685,"name":"AND"},{"begin":2657,"end":2685,"name":"SELFDESTRUCT"},{"begin":2615,"end":2795,"name":"tag","value":"41"},{"begin":2615,"end":2795,"name":"JUMPDEST"},{"begin":2571,"end":2799,"name":"JUMP","value":"[out]"},{"begin":2272,"end":2426,"name":"tag","value":"27"},{"begin":2272,"end":2426,"name":"JUMPDEST"},{"begin":2363,"end":2377,"name":"PUSH","value":"1"},{"begin":2363,"end":2377,"name":"PUSH","value":"0"},{"begin":2363,"end":2377,"name":"SWAP1"},{"begin":2363,"end":2377,"name":"SLOAD"},{"begin":2363,"end":2377,"name":"SWAP1"},{"begin":2363,"end":2377,"name":"PUSH","value":"100"},{"begin":2363,"end":2377,"name":"EXP"},{"begin":2363,"end":2377,"name":"SWAP1"},{"begin":2363,"end":2377,"name":"DIV"},{"begin":2363,"end":2377,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2363,"end":2377,"name":"AND"},{"begin":2349,"end":2377,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2349,"end":2377,"name":"AND"},{"begin":2349,"end":2359,"name":"CALLER"},{"begin":2349,"end":2377,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2349,"end":2377,"name":"AND"},{"begin":2349,"end":2377,"name":"EQ"},{"begin":2345,"end":2422,"name":"ISZERO"},{"begin":2345,"end":2422,"name":"PUSH [tag]","value":"43"},{"begin":2345,"end":2422,"name":"JUMPI"},{"begin":2403,"end":2415,"name":"DUP1"},{"begin":2387,"end":2400,"name":"PUSH","value":"2"},{"begin":2387,"end":2400,"name":"PUSH","value":"0"},{"begin":2387,"end":2415,"name":"PUSH","value":"100"},{"begin":2387,"end":2415,"name":"EXP"},{"begin":2387,"end":2415,"name":"DUP2"},{"begin":2387,"end":2415,"name":"SLOAD"},{"begin":2387,"end":2415,"name":"DUP2"},{"begin":2387,"end":2415,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2387,"end":2415,"name":"MUL"},{"begin":2387,"end":2415,"name":"NOT"},{"begin":2387,"end":2415,"name":"AND"},{"begin":2387,"end":2415,"name":"SWAP1"},{"begin":2387,"end":2415,"name":"DUP4"},{"begin":2387,"end":2415,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2387,"end":2415,"name":"AND"},{"begin":2387,"end":2415,"name":"MUL"},{"begin":2387,"end":2415,"name":"OR"},{"begin":2387,"end":2415,"name":"SWAP1"},{"begin":2387,"end":2415,"name":"SSTORE"},{"begin":2387,"end":2415,"name":"POP"},{"begin":2345,"end":2422,"name":"tag","value":"43"},{"begin":2345,"end":2422,"name":"JUMPDEST"},{"begin":2272,"end":2426,"name":"POP"},{"begin":2272,"end":2426,"name":"JUMP","value":"[out]"},{"begin":1910,"end":2268,"name":"tag","value":"30"},{"begin":1910,"end":2268,"name":"JUMPDEST"},{"begin":2189,"end":2203,"name":"PUSH","value":"1"},{"begin":2189,"end":2203,"name":"PUSH","value":"0"},{"begin":2189,"end":2203,"name":"SWAP1"},{"begin":2189,"end":2203,"name":"SLOAD"},{"begin":2189,"end":2203,"name":"SWAP1"},{"begin":2189,"end":2203,"name":"PUSH","value":"100"},{"begin":2189,"end":2203,"name":"EXP"},{"begin":2189,"end":2203,"name":"SWAP1"},{"begin":2189,"end":2203,"name":"DIV"},{"begin":2189,"end":2203,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2189,"end":2203,"name":"AND"},{"begin":2175,"end":2203,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2175,"end":2203,"name":"AND"},{"begin":2175,"end":2185,"name":"CALLER"},{"begin":2175,"end":2203,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":2175,"end":2203,"name":"AND"},{"begin":2175,"end":2203,"name":"EQ"},{"begin":2171,"end":2264,"name":"ISZERO"},{"begin":2171,"end":2264,"name":"PUSH [tag]","value":"45"},{"begin":2171,"end":2264,"name":"JUMPI"},{"begin":2237,"end":2257,"name":"DUP1"},{"begin":2213,"end":2234,"name":"PUSH","value":"2"},{"begin":2213,"end":2234,"name":"PUSH","value":"14"},{"begin":2213,"end":2257,"name":"PUSH","value":"100"},{"begin":2213,"end":2257,"name":"EXP"},{"begin":2213,"end":2257,"name":"DUP2"},{"begin":2213,"end":2257,"name":"SLOAD"},{"begin":2213,"end":2257,"name":"DUP2"},{"begin":2213,"end":2257,"name":"PUSH","value":"FF"},{"begin":2213,"end":2257,"name":"MUL"},{"begin":2213,"end":2257,"name":"NOT"},{"begin":2213,"end":2257,"name":"AND"},{"begin":2213,"end":2257,"name":"SWAP1"},{"begin":2213,"end":2257,"name":"DUP4"},{"begin":2213,"end":2257,"name":"ISZERO"},{"begin":2213,"end":2257,"name":"ISZERO"},{"begin":2213,"end":2257,"name":"MUL"},{"begin":2213,"end":2257,"name":"OR"},{"begin":2213,"end":2257,"name":"SWAP1"},{"begin":2213,"end":2257,"name":"SSTORE"},{"begin":2213,"end":2257,"name":"POP"},{"begin":2171,"end":2264,"name":"tag","value":"45"},{"begin":2171,"end":2264,"name":"JUMPDEST"},{"begin":1910,"end":2268,"name":"POP"},{"begin":1910,"end":2268,"name":"JUMP","value":"[out]"},{"begin":687,"end":1463,"name":"tag","value":"33"},{"begin":687,"end":1463,"name":"JUMPDEST"},{"begin":775,"end":785,"name":"CALLER"},{"begin":746,"end":785,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":746,"end":785,"name":"AND"},{"begin":746,"end":755,"name":"PUSH","value":"0"},{"begin":746,"end":771,"name":"DUP1"},{"begin":756,"end":770,"name":"DUP4"},{"begin":746,"end":771,"name":"PUSH","value":"0"},{"begin":746,"end":771,"name":"NOT"},{"begin":746,"end":771,"name":"AND"},{"begin":746,"end":771,"name":"PUSH","value":"0"},{"begin":746,"end":771,"name":"NOT"},{"begin":746,"end":771,"name":"AND"},{"begin":746,"end":771,"name":"DUP2"},{"begin":746,"end":771,"name":"MSTORE"},{"begin":746,"end":771,"name":"PUSH","value":"20"},{"begin":746,"end":771,"name":"ADD"},{"begin":746,"end":771,"name":"SWAP1"},{"begin":746,"end":771,"name":"DUP2"},{"begin":746,"end":771,"name":"MSTORE"},{"begin":746,"end":771,"name":"PUSH","value":"20"},{"begin":746,"end":771,"name":"ADD"},{"begin":746,"end":771,"name":"PUSH","value":"0"},{"begin":746,"end":771,"name":"KECCAK256"},{"begin":746,"end":771,"name":"PUSH","value":"0"},{"begin":746,"end":771,"name":"SWAP1"},{"begin":746,"end":771,"name":"SLOAD"},{"begin":746,"end":771,"name":"SWAP1"},{"begin":746,"end":771,"name":"PUSH","value":"100"},{"begin":746,"end":771,"name":"EXP"},{"begin":746,"end":771,"name":"SWAP1"},{"begin":746,"end":771,"name":"DIV"},{"begin":746,"end":771,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":746,"end":771,"name":"AND"},{"begin":746,"end":785,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":746,"end":785,"name":"AND"},{"begin":746,"end":785,"name":"EQ"},{"begin":742,"end":1459,"name":"ISZERO"},{"begin":742,"end":1459,"name":"PUSH [tag]","value":"47"},{"begin":742,"end":1459,"name":"JUMPI"},{"begin":841,"end":886,"name":"PUSH [tag]","value":"48"},{"begin":856,"end":866,"name":"CALLER"},{"begin":868,"end":882,"name":"DUP3"},{"begin":884,"end":885,"name":"PUSH","value":"4"},{"begin":841,"end":855,"name":"PUSH [tag]","value":"15"},{"begin":841,"end":886,"name":"JUMP","value":"[in]"},{"begin":841,"end":886,"name":"tag","value":"48"},{"begin":841,"end":886,"name":"JUMPDEST"},{"begin":742,"end":1459,"name":"PUSH [tag]","value":"49"},{"begin":742,"end":1459,"name":"JUMP"},{"begin":742,"end":1459,"name":"tag","value":"47"},{"begin":742,"end":1459,"name":"JUMPDEST"},{"begin":935,"end":936,"name":"PUSH","value":"0"},{"begin":907,"end":916,"name":"DUP1"},{"begin":907,"end":932,"name":"PUSH","value":"0"},{"begin":917,"end":931,"name":"DUP4"},{"begin":907,"end":932,"name":"PUSH","value":"0"},{"begin":907,"end":932,"name":"NOT"},{"begin":907,"end":932,"name":"AND"},{"begin":907,"end":932,"name":"PUSH","value":"0"},{"begin":907,"end":932,"name":"NOT"},{"begin":907,"end":932,"name":"AND"},{"begin":907,"end":932,"name":"DUP2"},{"begin":907,"end":932,"name":"MSTORE"},{"begin":907,"end":932,"name":"PUSH","value":"20"},{"begin":907,"end":932,"name":"ADD"},{"begin":907,"end":932,"name":"SWAP1"},{"begin":907,"end":932,"name":"DUP2"},{"begin":907,"end":932,"name":"MSTORE"},{"begin":907,"end":932,"name":"PUSH","value":"20"},{"begin":907,"end":932,"name":"ADD"},{"begin":907,"end":932,"name":"PUSH","value":"0"},{"begin":907,"end":932,"name":"KECCAK256"},{"begin":907,"end":932,"name":"PUSH","value":"0"},{"begin":907,"end":932,"name":"SWAP1"},{"begin":907,"end":932,"name":"SLOAD"},{"begin":907,"end":932,"name":"SWAP1"},{"begin":907,"end":932,"name":"PUSH","value":"100"},{"begin":907,"end":932,"name":"EXP"},{"begin":907,"end":932,"name":"SWAP1"},{"begin":907,"end":932,"name":"DIV"},{"begin":907,"end":932,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":907,"end":932,"name":"AND"},{"begin":907,"end":936,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":907,"end":936,"name":"AND"},{"begin":907,"end":936,"name":"GT"},{"begin":903,"end":1459,"name":"ISZERO"},{"begin":903,"end":1459,"name":"PUSH [tag]","value":"50"},{"begin":903,"end":1459,"name":"JUMPI"},{"begin":1002,"end":1047,"name":"PUSH [tag]","value":"51"},{"begin":1017,"end":1027,"name":"CALLER"},{"begin":1029,"end":1043,"name":"DUP3"},{"begin":1045,"end":1046,"name":"PUSH","value":"3"},{"begin":1002,"end":1016,"name":"PUSH [tag]","value":"15"},{"begin":1002,"end":1047,"name":"JUMP","value":"[in]"},{"begin":1002,"end":1047,"name":"tag","value":"51"},{"begin":1002,"end":1047,"name":"JUMPDEST"},{"begin":903,"end":1459,"name":"PUSH [tag]","value":"52"},{"begin":903,"end":1459,"name":"JUMP"},{"begin":903,"end":1459,"name":"tag","value":"50"},{"begin":903,"end":1459,"name":"JUMPDEST"},{"begin":1093,"end":1095,"name":"PUSH","value":"20"},{"begin":1069,"end":1090,"name":"DUP1"},{"begin":1069,"end":1095,"name":"PUSH","value":"FF"},{"begin":1069,"end":1095,"name":"AND"},{"begin":1069,"end":1095,"name":"GT"},{"begin":1065,"end":1459,"name":"ISZERO"},{"begin":1065,"end":1459,"name":"PUSH [tag]","value":"53"},{"begin":1065,"end":1459,"name":"JUMPI"},{"begin":1128,"end":1173,"name":"PUSH [tag]","value":"54"},{"begin":1143,"end":1153,"name":"CALLER"},{"begin":1155,"end":1169,"name":"DUP3"},{"begin":1171,"end":1172,"name":"PUSH","value":"2"},{"begin":1128,"end":1142,"name":"PUSH [tag]","value":"15"},{"begin":1128,"end":1173,"name":"JUMP","value":"[in]"},{"begin":1128,"end":1173,"name":"tag","value":"54"},{"begin":1128,"end":1173,"name":"JUMPDEST"},{"begin":1065,"end":1459,"name":"PUSH [tag]","value":"55"},{"begin":1065,"end":1459,"name":"JUMP"},{"begin":1065,"end":1459,"name":"tag","value":"53"},{"begin":1065,"end":1459,"name":"JUMPDEST"},{"begin":1194,"end":1215,"name":"PUSH","value":"2"},{"begin":1194,"end":1215,"name":"PUSH","value":"14"},{"begin":1194,"end":1215,"name":"SWAP1"},{"begin":1194,"end":1215,"name":"SLOAD"},{"begin":1194,"end":1215,"name":"SWAP1"},{"begin":1194,"end":1215,"name":"PUSH","value":"100"},{"begin":1194,"end":1215,"name":"EXP"},{"begin":1194,"end":1215,"name":"SWAP1"},{"begin":1194,"end":1215,"name":"DIV"},{"begin":1194,"end":1215,"name":"PUSH","value":"FF"},{"begin":1194,"end":1215,"name":"AND"},{"begin":1190,"end":1459,"name":"ISZERO"},{"begin":1190,"end":1459,"name":"PUSH [tag]","value":"56"},{"begin":1190,"end":1459,"name":"JUMPI"},{"begin":1291,"end":1336,"name":"PUSH [tag]","value":"57"},{"begin":1306,"end":1316,"name":"CALLER"},{"begin":1318,"end":1332,"name":"DUP3"},{"begin":1334,"end":1335,"name":"PUSH","value":"1"},{"begin":1291,"end":1305,"name":"PUSH [tag]","value":"15"},{"begin":1291,"end":1336,"name":"JUMP","value":"[in]"},{"begin":1291,"end":1336,"name":"tag","value":"57"},{"begin":1291,"end":1336,"name":"JUMPDEST"},{"begin":1190,"end":1459,"name":"PUSH [tag]","value":"58"},{"begin":1190,"end":1459,"name":"JUMP"},{"begin":1190,"end":1459,"name":"tag","value":"56"},{"begin":1190,"end":1459,"name":"JUMPDEST"},{"begin":1389,"end":1399,"name":"CALLER"},{"begin":1361,"end":1370,"name":"PUSH","value":"0"},{"begin":1361,"end":1386,"name":"DUP1"},{"begin":1371,"end":1385,"name":"DUP4"},{"begin":1361,"end":1386,"name":"PUSH","value":"0"},{"begin":1361,"end":1386,"name":"NOT"},{"begin":1361,"end":1386,"name":"AND"},{"begin":1361,"end":1386,"name":"PUSH","value":"0"},{"begin":1361,"end":1386,"name":"NOT"},{"begin":1361,"end":1386,"name":"AND"},{"begin":1361,"end":1386,"name":"DUP2"},{"begin":1361,"end":1386,"name":"MSTORE"},{"begin":1361,"end":1386,"name":"PUSH","value":"20"},{"begin":1361,"end":1386,"name":"ADD"},{"begin":1361,"end":1386,"name":"SWAP1"},{"begin":1361,"end":1386,"name":"DUP2"},{"begin":1361,"end":1386,"name":"MSTORE"},{"begin":1361,"end":1386,"name":"PUSH","value":"20"},{"begin":1361,"end":1386,"name":"ADD"},{"begin":1361,"end":1386,"name":"PUSH","value":"0"},{"begin":1361,"end":1386,"name":"KECCAK256"},{"begin":1361,"end":1386,"name":"PUSH","value":"0"},{"begin":1361,"end":1399,"name":"PUSH","value":"100"},{"begin":1361,"end":1399,"name":"EXP"},{"begin":1361,"end":1399,"name":"DUP2"},{"begin":1361,"end":1399,"name":"SLOAD"},{"begin":1361,"end":1399,"name":"DUP2"},{"begin":1361,"end":1399,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1361,"end":1399,"name":"MUL"},{"begin":1361,"end":1399,"name":"NOT"},{"begin":1361,"end":1399,"name":"AND"},{"begin":1361,"end":1399,"name":"SWAP1"},{"begin":1361,"end":1399,"name":"DUP4"},{"begin":1361,"end":1399,"name":"PUSH","value":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"},{"begin":1361,"end":1399,"name":"AND"},{"begin":1361,"end":1399,"name":"MUL"},{"begin":1361,"end":1399,"name":"OR"},{"begin":1361,"end":1399,"name":"SWAP1"},{"begin":1361,"end":1399,"name":"SSTORE"},{"begin":1361,"end":1399,"name":"POP"},{"begin":1407,"end":1452,"name":"PUSH [tag]","value":"59"},{"begin":1422,"end":1432,"name":"CALLER"},{"begin":1434,"end":1448,"name":"DUP3"},{"begin":1450,"end":1451,"name":"PUSH","value":"0"},{"begin":1407,"end":1421,"name":"PUSH [tag]","value":"15"},{"begin":1407,"end":1452,"name":"JUMP","value":"[in]"},{"begin":1407,"end":1452,"name":"tag","value":"59"},{"begin":1407,"end":1452,"name":"JUMPDEST"},{"begin":1190,"end":1459,"name":"tag","value":"58"},{"begin":1190,"end":1459,"name":"JUMPDEST"},{"begin":1065,"end":1459,"name":"tag","value":"55"},{"begin":1065,"end":1459,"name":"JUMPDEST"},{"begin":903,"end":1459,"name":"tag","value":"52"},{"begin":903,"end":1459,"name":"JUMPDEST"},{"begin":742,"end":1459,"name":"tag","value":"49"},{"begin":742,"end":1459,"name":"JUMPDEST"},{"begin":687,"end":1463,"name":"POP"},{"begin":687,"end":1463,"name":"JUMP","value":"[out]"}]}}},"bytecode":"6060604052341561000f57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260146101000a81548160ff021916908315150217905550610702806100bb6000396000f30060606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306ae948314610093578063111b72c3146100c05780632573ce271461010f578063345e3416146101765780633af41dc21461018b57806349f0c90d146101a05780639b6d86d6146101d9578063f845862f146101fe575b600080fd5b341561009e57600080fd5b6100a6610225565b604051808215151515815260200191505060405180910390f35b34156100cb57600080fd5b61010d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190803590602001909190505061022e565b005b341561011a57600080fd5b610134600480803560001916906020019091905050610286565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561018157600080fd5b6101896102ca565b005b341561019657600080fd5b61019e61039c565b005b34156101ab57600080fd5b6101d7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061042f565b005b34156101e457600080fd5b6101fc600480803515159060200190919050506104ca565b005b341561020957600080fd5b61022360048080356000191690602001909190505061053e565b005b60006001905090565b81600019168373ffffffffffffffffffffffffffffffffffffffff167fdd4adf6c5ef0c5a78200bcebce519e97649524d2c8dc89cf0f8baa99cc39bb53836040518082815260200191505060405180910390a3505050565b6000806000836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561039a57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561039957600080fd5b5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561042d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104c75780600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561053b5780600260146101000a81548160ff0219169083151502179055505b50565b3373ffffffffffffffffffffffffffffffffffffffff16600080836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105bd576105b83382600461022e565b6106d3565b6000806000836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115610627576106223382600361022e565b6106d2565b60208060ff1611156106445761063f3382600261022e565b6106d1565b600260149054906101000a900460ff161561066a576106653382600161022e565b6106d0565b33600080836000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106cf3382600061022e565b5b5b5b5b505600a165627a7a72305820bd8dd7c6e8aa318c81c9ea45fdb6616f00a51ec3a6b283580056a3ac2bca63470029","functionHashes":{"accountCreated(address,bytes32,int256)":"111b72c3","adminDeleteRegistry()":"3af41dc2","adminRetrieveDonations()":"345e3416","adminSetAccountAdministrator(address)":"49f0c90d","adminSetRegistrationDisabled(bool)":"9b6d86d6","contractExists()":"06ae9483","newUser(bytes32)":"f845862f","validateUserByHash(bytes32)":"2573ce27"},"gasEstimates":{"creation":[61243,358800],"external":{"accountCreated(address,bytes32,int256)":2088,"adminDeleteRegistry()":30724,"adminRetrieveDonations()":null,"adminSetAccountAdministrator(address)":20820,"adminSetRegistrationDisabled(bool)":20892,"contractExists()":206,"newUser(bytes32)":23637,"validateUserByHash(bytes32)":630},"internal":{}},"interface":"[{\"constant\":true,\"inputs\":[],\"name\":\"contractExists\",\"outputs\":[{\"name\":\"result\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\"},{\"name\":\"error\",\"type\":\"int256\"}],\"name\":\"accountCreated\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"drupalUserHash\",\"type\":\"bytes32\"}],\"name\":\"validateUserByHash\",\"outputs\":[{\"name\":\"result\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"adminRetrieveDonations\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"adminDeleteRegistry\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"accountAdmin\",\"type\":\"address\"}],\"name\":\"adminSetAccountAdministrator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"registrationDisabled\",\"type\":\"bool\"}],\"name\":\"adminSetRegistrationDisabled\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"drupalUserHash\",\"type\":\"bytes32\"}],\"name\":\"newUser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"error\",\"type\":\"int256\"}],\"name\":\"AccountCreatedEvent\",\"type\":\"event\"}]","metadata":"{\"compiler\":{\"version\":\"0.4.20+commit.3155dd80\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"contractExists\",\"outputs\":[{\"name\":\"result\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"hash\",\"type\":\"bytes32\"},{\"name\":\"error\",\"type\":\"int256\"}],\"name\":\"accountCreated\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"drupalUserHash\",\"type\":\"bytes32\"}],\"name\":\"validateUserByHash\",\"outputs\":[{\"name\":\"result\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"adminRetrieveDonations\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"adminDeleteRegistry\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"accountAdmin\",\"type\":\"address\"}],\"name\":\"adminSetAccountAdministrator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"registrationDisabled\",\"type\":\"bool\"}],\"name\":\"adminSetRegistrationDisabled\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"drupalUserHash\",\"type\":\"bytes32\"}],\"name\":\"newUser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"error\",\"type\":\"int256\"}],\"name\":\"AccountCreatedEvent\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"\":\"RegisterDrupal\"},\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"\":{\"keccak256\":\"0xfd8e8796c8d2a7a9f95741daaaddfee0777537e70623c620d0775dbbca37b929\",\"urls\":[\"bzzr://9d129becac0756f6285d6c902f30172c56f4958c5de6ac2d25e57aa4a1667357\"]}},\"version\":1}","opcodes":"PUSH1 0x60 PUSH1 0x40 MSTORE CALLVALUE ISZERO PUSH2 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x702 DUP1 PUSH2 0xBB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x60 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8E JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0x6AE9483 EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0x111B72C3 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0x2573CE27 EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x345E3416 EQ PUSH2 0x176 JUMPI DUP1 PUSH4 0x3AF41DC2 EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x49F0C90D EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x9B6D86D6 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xF845862F EQ PUSH2 0x1FE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA6 PUSH2 0x225 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH1 0x4 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH1 0x0 NOT AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 POP POP PUSH2 0x22E JUMP JUMPDEST STOP JUMPDEST CALLVALUE ISZERO PUSH2 0x11A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 DUP1 CALLDATALOAD PUSH1 0x0 NOT AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 POP POP PUSH2 0x286 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE ISZERO PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x189 PUSH2 0x2CA JUMP JUMPDEST STOP JUMPDEST CALLVALUE ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19E PUSH2 0x39C JUMP JUMPDEST STOP JUMPDEST CALLVALUE ISZERO PUSH2 0x1AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1D7 PUSH1 0x4 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 POP POP PUSH2 0x42F JUMP JUMPDEST STOP JUMPDEST CALLVALUE ISZERO PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FC PUSH1 0x4 DUP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 POP POP PUSH2 0x4CA JUMP JUMPDEST STOP JUMPDEST CALLVALUE ISZERO PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 DUP1 CALLDATALOAD PUSH1 0x0 NOT AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP2 SWAP1 POP POP PUSH2 0x53E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP SWAP1 JUMP JUMPDEST DUP2 PUSH1 0x0 NOT AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDD4ADF6C5EF0C5A78200BCEBCE519E97649524D2C8DC89CF0F8BAA99CC39BB53 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x0 NOT AND PUSH1 0x0 NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x39A JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x42D JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x4C7 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x53B JUMPI DUP1 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP4 PUSH1 0x0 NOT AND PUSH1 0x0 NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x5BD JUMPI PUSH2 0x5B8 CALLER DUP3 PUSH1 0x4 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x6D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x0 NOT AND PUSH1 0x0 NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND GT ISZERO PUSH2 0x627 JUMPI PUSH2 0x622 CALLER DUP3 PUSH1 0x3 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x6D2 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0xFF AND GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x63F CALLER DUP3 PUSH1 0x2 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x66A JUMPI PUSH2 0x665 CALLER DUP3 PUSH1 0x1 PUSH2 0x22E JUMP JUMPDEST PUSH2 0x6D0 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 DUP4 PUSH1 0x0 NOT AND PUSH1 0x0 NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x6CF CALLER DUP3 PUSH1 0x0 PUSH2 0x22E JUMP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xbd DUP14 0xd7 0xc6 0xe8 0xaa BALANCE DUP13 DUP2 0xc9 0xea GASLIMIT REVERT 0xb6 PUSH2 0x6F00 0xa5 0x1e 0xc3 0xa6 0xb2 DUP4 PC STOP JUMP LOG3 0xac 0x2b 0xca PUSH4 0x47002900 ","runtimeBytecode":"60606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306ae948314610093578063111b72c3146100c05780632573ce271461010f578063345e3416146101765780633af41dc21461018b57806349f0c90d146101a05780639b6d86d6146101d9578063f845862f146101fe575b600080fd5b341561009e57600080fd5b6100a6610225565b604051808215151515815260200191505060405180910390f35b34156100cb57600080fd5b61010d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190803590602001909190505061022e565b005b341561011a57600080fd5b610134600480803560001916906020019091905050610286565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561018157600080fd5b6101896102ca565b005b341561019657600080fd5b61019e61039c565b005b34156101ab57600080fd5b6101d7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061042f565b005b34156101e457600080fd5b6101fc600480803515159060200190919050506104ca565b005b341561020957600080fd5b61022360048080356000191690602001909190505061053e565b005b60006001905090565b81600019168373ffffffffffffffffffffffffffffffffffffffff167fdd4adf6c5ef0c5a78200bcebce519e97649524d2c8dc89cf0f8baa99cc39bb53836040518082815260200191505060405180910390a3505050565b6000806000836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561039a57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561039957600080fd5b5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561042d57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104c75780600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561053b5780600260146101000a81548160ff0219169083151502179055505b50565b3373ffffffffffffffffffffffffffffffffffffffff16600080836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105bd576105b83382600461022e565b6106d3565b6000806000836000191660001916815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161115610627576106223382600361022e565b6106d2565b60208060ff1611156106445761063f3382600261022e565b6106d1565b600260149054906101000a900460ff161561066a576106653382600161022e565b6106d0565b33600080836000191660001916815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106cf3382600061022e565b5b5b5b5b505600a165627a7a72305820bd8dd7c6e8aa318c81c9ea45fdb6616f00a51ec3a6b283580056a3ac2bca63470029","srcmap":"26:2776:0:-;;;1744:162;;;;;;;;1800:10;1783:14;;:27;;;;;;;;;;;;;;;;;;1832:10;1816:13;;:26;;;;;;;;;;;;;;;;;;1896:5;1872:21;;:29;;;;;;;;;;;;;;;;;;26:2776;;;;;;","srcmapRuntime":"26:2776:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;542:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1489:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2430:137;;;;;;;;;;;;;;2571:228;;;;;;;;;;;;;;2272:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:358;;;;;;;;;;;;;;;;;;;;;;;;;;;;687:776;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:82;1680:11;1705:4;1698:11;;1632:82;:::o;542:119::-;644:4;618:38;;;638:4;618:38;;;650:5;618:38;;;;;;;;;;;;;;;;;;542:119;;;:::o;1489:139::-;1567:14;1598:9;:25;1608:14;1598:25;;;;;;;;;;;;;;;;;;;;;;;;;;;1591:32;;1489:139;;;:::o;2430:137::-;2495:14;;;;;;;;;;;2481:28;;:10;:28;;;2477:86;;;2519:14;;;;;;;;;;;:23;;:37;2543:4;:12;;;2519:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2477:86;2430:137::o;2571:228::-;2633:14;;;;;;;;;;;2619:28;;:10;:28;;;2615:180;;;2670:14;;;;;;;;;;;2657:28;;;2615:180;2571:228::o;2272:154::-;2363:14;;;;;;;;;;;2349:28;;:10;:28;;;2345:77;;;2403:12;2387:13;;:28;;;;;;;;;;;;;;;;;;2345:77;2272:154;:::o;1910:358::-;2189:14;;;;;;;;;;;2175:28;;:10;:28;;;2171:93;;;2237:20;2213:21;;:44;;;;;;;;;;;;;;;;;;2171:93;1910:358;:::o;687:776::-;775:10;746:39;;:9;:25;756:14;746:25;;;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;742:717;;;841:45;856:10;868:14;884:1;841:14;:45::i;:::-;742:717;;;935:1;907:9;:25;917:14;907:25;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;903:556;;;1002:45;1017:10;1029:14;1045:1;1002:14;:45::i;:::-;903:556;;;1093:2;1069:21;:26;;;1065:394;;;1128:45;1143:10;1155:14;1171:1;1128:14;:45::i;:::-;1065:394;;;1194:21;;;;;;;;;;;1190:269;;;1291:45;1306:10;1318:14;1334:1;1291:14;:45::i;:::-;1190:269;;;1389:10;1361:9;:25;1371:14;1361:25;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1407:45;1422:10;1434:14;1450:1;1407:14;:45::i;:::-;1190:269;1065:394;903:556;742:717;687:776;:::o"}'
networks:
3: '0xd4fbc42a04e61520c3075107c664d74a7874361e'
42: '0xdacb85f3a6f12ca7893f887f875064880ce14d7d'