From b07624f58740495c96ab0ea96a53e119c30fb24c Mon Sep 17 00:00:00 2001 From: "jason.huang" <20609724+doutv@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:36:16 +0800 Subject: [PATCH 1/6] add 7212 p256verify loadtest --- bindings/tester/LoadTester.abi | 1423 +-------------------------- bindings/tester/LoadTester.bin | 2 +- bindings/tester/loadTester.go | 25 +- bindings/tester/precompiles.go | 30 + contracts/src/tester/LoadTester.sol | 10 + 5 files changed, 65 insertions(+), 1425 deletions(-) diff --git a/bindings/tester/LoadTester.abi b/bindings/tester/LoadTester.abi index 79c585e69..90fa832b2 100644 --- a/bindings/tester/LoadTester.abi +++ b/bindings/tester/LoadTester.abi @@ -1,1422 +1 @@ -[ - { - "type": "function", - "name": "dumpster", - "inputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "getCallCounter", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "inc", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "loopBlockHashUntilLimit", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "loopUntilLimit", - "inputs": [], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "store", - "inputs": [ - { - "name": "trash", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testADD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testADDMOD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testADDRESS", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testAND", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testBALANCE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testBASEFEE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testBLOCKHASH", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testBYTE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testBlake2f", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCALLDATACOPY", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCALLDATALOAD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCALLDATASIZE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCALLER", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCALLVALUE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCHAINID", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCODECOPY", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCODESIZE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testCOINBASE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testDIFFICULTY", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testDIV", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testECAdd", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testECMul", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testECPairing", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testECRecover", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "address", - "internalType": "address" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testEQ", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testEXP", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testEXTCODESIZE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testGAS", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testGASLIMIT", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testGASPRICE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testGT", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testISZERO", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testIdentity", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testLOG0", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testLOG1", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testLOG2", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testLOG3", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testLOG4", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testLT", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMLOAD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMOD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMSIZE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMSTORE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMSTORE8", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMUL", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testMULMOD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testModExp", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes", - "internalType": "bytes" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testNOT", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testNUMBER", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testOR", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testORIGIN", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testRETURNDATACOPY", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testRETURNDATASIZE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testRipemd160", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes20", - "internalType": "bytes20" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSAR", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSDIV", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSELFBALANCE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSGT", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSHA256", - "inputs": [ - { - "name": "inputData", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "result", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSHA3", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSHL", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSHR", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSIGNEXTEND", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSLOAD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSLT", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSMOD", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSSTORE", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testSUB", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testTIMESTAMP", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "testXOR", - "inputs": [ - { - "name": "x", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - } -] +[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dumpster","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCallCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"loopBlockHashUntilLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"loopUntilLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"trash","type":"bytes"}],"name":"store","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testADD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testADDMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testADDRESS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testAND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBALANCE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBASEFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBLOCKHASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBYTE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testBlake2f","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLDATACOPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLDATALOAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLDATASIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLVALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCODECOPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCODESIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCOINBASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testDIFFICULTY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testDIV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECAdd","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECMul","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECPairing","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECRecover","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testEQ","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testEXP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testEXTCODESIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGASLIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGASPRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testISZERO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testIdentity","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG4","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMLOAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMSIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMSTORE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMSTORE8","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMUL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMULMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testModExp","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testNOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testNUMBER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testORIGIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testP256Verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testRETURNDATACOPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testRETURNDATASIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testRipemd160","outputs":[{"internalType":"bytes20","name":"result","type":"bytes20"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSDIV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSELFBALANCE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSGT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testSHA256","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSHA3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSHL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSHR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSIGNEXTEND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSLOAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSLT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSSTORE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSUB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testTIMESTAMP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testXOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/bindings/tester/LoadTester.bin b/bindings/tester/LoadTester.bin index f3d74a6c7..c8717ea17 100644 --- a/bindings/tester/LoadTester.bin +++ b/bindings/tester/LoadTester.bin @@ -1 +1 @@ -0x608060405234801561001057600080fd5b50611d1e806100206000396000f3fe608060405234801561001057600080fd5b50600436106104545760003560e01c806380947f8011610241578063bf529ca11161013b578063dd9bef60116100c3578063f279ca8111610087578063f279ca811461098f578063f4d1fc61146109a2578063f58fc36a146109b5578063f6b0bbf7146109c8578063fde7721c146109e857600080fd5b8063dd9bef6014610930578063de97a36314610943578063e9f9b3f214610956578063ea5141e614610969578063edf003cf1461097c57600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef146108d1578063d117320b146108e4578063d51e7b5b146108f7578063d53ff3fd1461090a578063d93cd5581461091d57600080fd5b8063bf529ca114610885578063c360aba614610898578063c420eb61146108ab578063c4bd65d5146108be57600080fd5b8063a18683cb116101c9578063b374012b1161018d578063b374012b14610826578063b3d847f214610839578063b7b862071461084c578063b81c14841461085f578063bdc875fc1461087257600080fd5b8063a18683cb146107c5578063a271b721146107e5578063a60a1087146107ed578063a645c9c214610800578063acaebdf61461081357600080fd5b8063962e4dc211610210578063962e4dc21461077957806398456f3e1461078c5780639a2b7c811461079f5780639cce7cf9146107b2578063a040aec6146104a857600080fd5b806380947f801461072d578063880eff3914610740578063918a5fcd1461075357806391e7b2771461076657600080fd5b80633430ec061161035257806360e13cde116102da5780636f099c8d1161029e5780636f099c8d146106ce57806371d91d28146106e15780637b6e0b0e146106f45780637c191d20146107075780637de8c6f81461071a57600080fd5b806360e13cde1461067a578063613d0a821461068d57806363138d4f146106a0578063659bbb4f146106b35780636e7f1fe7146106bb57600080fd5b806340fe26621161032157806340fe26621461061b57806344cf3bc71461062e5780634a61af1f146106415780634d2c74b3146106545780635590c2d91461066757600080fd5b80633430ec06146105da578063371303c0146105ed5780633a411f12146105f55780633a425dfc1461060857600080fd5b806318093b46116103e0578063219cddeb116103a4578063219cddeb1461057b5780632294fc7f1461058e5780632871ef85146105a15780632b21ef44146105b45780632d34e798146105c757600080fd5b806318093b461461051c57806319b621d61461052f5780631aba07ea146105425780631de2f343146105555780632007332e1461056857600080fd5b80630ba8a73b116104275780630ba8a73b146104c85780631287a68c146104db578063135d52f7146104e35780631581cf19146104f6578063165821501461050957600080fd5b8063034aef7114610459578063050082f814610482578063087b4e84146104955780630b3b996a146104a8575b600080fd5b61046c610467366004611786565b6109fb565b60405161047991906117b7565b60405180910390f35b61046c610490366004611786565b610a2d565b61046c6104a3366004611786565b610a56565b6104bb6104b63660046118bc565b610a87565b6040516104799190611953565b61046c6104d6366004611786565b610aaa565b60005461046c565b61046c6104f1366004611786565b610acf565b61046c610504366004611786565b610af1565b61046c610517366004611786565b610b1a565b61046c61052a366004611786565b610b46565b61046c61053d366004611786565b610b71565b61046c610550366004611786565b610bdd565b61046c610563366004611786565b610c13565b61046c610576366004611786565b610c40565b61046c610589366004611786565b610c62565b61046c61059c366004611786565b610c8b565b61046c6105af366004611786565b610cc0565b61046c6105c2366004611786565b610ce9565b61046c6105d5366004611786565b610d12565b6104bb6105e8366004611786565b610d3b565b61046c610de4565b61046c610603366004611786565b610dfd565b61046c610616366004611786565b610e1f565b61046c610629366004611786565b610e4a565b61046c61063c366004611786565b610e79565b61046c61064f366004611786565b610ea2565b61046c610662366004611786565b610ecf565b61046c610675366004611786565b610ef8565b61046c610688366004611786565b610f2e565b6104bb61069b3660046118bc565b610f5a565b61046c6106ae3660046118bc565b610f85565b61046c610fae565b61046c6106c9366004611786565b610fe8565b61046c6106dc366004611786565b611013565b61046c6106ef366004611786565b61103c565b61046c610702366004611786565b611067565b61046c610715366004611786565b611092565b61046c610728366004611786565b6110bb565b61046c61073b366004611786565b6110dd565b61046c61074e366004611786565b61110b565b61046c610761366004611786565b611138565b61046c610774366004611786565b611161565b6104bb6107873660046118bc565b61119f565b61046c61079a366004611786565b6111f0565b61046c6107ad366004611786565b611220565b6104bb6107c03660046118bc565b611242565b6107d86107d33660046118bc565b611262565b6040516104799190611985565b61046c6112bc565b61046c6107fb366004611786565b6112fd565b61046c61080e366004611786565b611326565b61046c610821366004611786565b611348565b61046c6108343660046119e5565b611373565b61046c610847366004611786565b6113a2565b61046c61085a366004611786565b6113cb565b61046c61086d366004611786565b6113f4565b61046c610880366004611786565b61141d565b61046c610893366004611786565b611446565b61046c6108a6366004611786565b61147a565b61046c6108b9366004611786565b61149c565b61046c6108cc366004611786565b6114c5565b61046c6108df366004611786565b6114eb565b61046c6108f2366004611786565b611516565b61046c610905366004611786565b611540565b61046c610918366004611786565b611562565b61046c61092b366004611786565b611584565b61046c61093e366004611786565b6115b0565b61046c610951366004611786565b6115e2565b61046c610964366004611786565b61160c565b61046c610977366004611786565b611635565b6104bb61098a3660046118bc565b611664565b61046c61099d366004611786565b6116a3565b61046c6109b0366004611786565b6116cd565b61046c6109c3366004611786565b6116f8565b6109db6109d63660046118bc565b611723565b6040516104799190611a42565b61046c6109f6366004611786565b611751565b6000610a05610de4565b5065deadbeef00366000805b84811015610a2457369150600101610a11565b50909392505050565b6000610a37610de4565b5065deadbeef00326000805b84811015610a2457329150600101610a43565b6000610a60610de4565b5065deadbeef005260005b83811015610a80576000829052600101610a6b565b5092915050565b606060086040828451602086016000855af180610aa357600080fd5b5050919050565b6000610ab4610de4565b5065deadbeef000160005b83811015610a8057600101610abf565b6000610ad9610de4565b5065deadbeef001760008315610a8057600101610abf565b6000610afb610de4565b5065deadbeef00346000805b84811015610a2457349150600101610b07565b6000610b24610de4565b5065deadbeef000660005b83811015610a805760001990910690600101610b2f565b6000610b50610de4565b5065deadbeef00136000805b84811015610a24576001808413925001610b5c565b6000610b7b610de4565b506001600160e01b0319600090815265deadbeef002090805b84811015610bab5760046000209150600101610b94565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610a80575060009392505050565b6000610be7610de4565b5065deadbeef00a4601081905260005b83811015610a80576004600360028360066010a4600101610bf7565b6000610c1d610de4565b5065deadbeef001a6000805b84811015610a2457600083901a9150600101610c29565b6000610c4a610de4565b5065deadbeef001b60008315610a8057600101610abf565b6000610c6c610de4565b5065deadbeef00426000805b84811015610a2457429150600101610c78565b6000610c95610de4565b5065deadbeef0031600030815b85811015610cb65781319250600101610ca2565b5091949350505050565b6000610cca610de4565b5065deadbeef00486000805b84811015610a2457489150600101610cd6565b6000610cf3610de4565b5065deadbeef003d6000805b84811015610a24573d9150600101610cff565b6000610d1c610de4565b5065deadbeef00436000805b84811015610a2457439150600101610d28565b60028181548110610d4b57600080fd5b906000526020600020018054909150610d6390611a66565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8f90611a66565b8015610ddc5780601f10610db157610100808354040283529160200191610ddc565b820191906000526020600020905b815481529060010190602001808311610dbf57829003601f168201915b505050505081565b60008054610df3906001611aa8565b6000819055919050565b6000610e07610de4565b5065deadbeef000460008315610a8057600101610abf565b6000610e29610de4565b5065deadbeef003760005b83811015610a8057602060008037600101610e34565b6000610e54610de4565b5065deadbeef00a0601081905260005b83811015610a805760066010a0600101610e64565b6000610e83610de4565b5065deadbeef00336000805b84811015610a2457339150600101610e8f565b6000610eac610de4565b5065deadbeef005360005b83811015610a805763deadbeef600052600101610eb7565b6000610ed9610de4565b5065deadbeef003a6000805b84811015610a24573a9150600101610ee5565b6000610f02610de4565b5065deadbeef00516000818152805b84811015610f26576000519150600101610f11565b509392505050565b6000610f38610de4565b5065deadbeef001d60005b83811015610a805760009190911d90600101610f43565b6060600560208301835160405160208183856000885af180610f7b57600080fd5b5095945050505050565b600060026020830183518360208183856000885af180610fa457600080fd5b5050505050919050565b6000610fb8610de4565b505b6103e85a1115610fe1576001806000828254610fd69190611aa8565b90915550610fba9050565b5060015490565b6000610ff2610de4565b5065deadbeef00106000805b84811015610a24576001838110925001610ffe565b600061101d610de4565b5065deadbeef00446000805b84811015610a2457449150600101611029565b6000611046610de4565b5065deadbeef00116000805b84811015610a24576001808411925001611052565b6000611071610de4565b5065deadbeef003e60005b83811015610a805760206000803e60010161107c565b600061109c610de4565b5065deadbeef00456000805b84811015610a24574591506001016110a8565b60006110c5610de4565b5065deadbeef000260008315610a8057600101610abf565b60006110e7610de4565b5065deadbeef000860005b83811015610a80576000196000830891506001016110f2565b6000611115610de4565b5065deadbeef005460008181555b83811015610a80576000549150600101611123565b6000611142610de4565b5065deadbeef005a6000805b84811015610a24575a915060010161114e565b600061116b610de4565b5065deadbeef001960005b8381101561118957901990600101611176565b5065deadbeef0019811461119957195b92915050565b606081516060146111cb5760405162461bcd60e51b81526004016111c290611ae9565b60405180910390fd5b600760208301835160408482846000875af1806111e757600080fd5b50505050919050565b60006111fa610de4565b5065deadbeef00a1601081905260005b83811015610a80578060066010a160010161120a565b600061122a610de4565b5065deadbeef001660008315610a8057600101610abf565b60606004602083018351604051818183856000885af180610f7b57600080fd5b600081516080146112855760405162461bcd60e51b81526004016111c290611b2d565b6001602083016040840151601f1a602082015260206040516080836000865af1806112af57600080fd5b6040515195945050505050565b60006112c6610de4565b505b6103e85a1115610fe15760018060008282546112e49190611aa8565b90915550506001546112f7904390611b53565b506112c8565b6000611307610de4565b5065deadbeef00466000805b84811015610a2457469150600101611313565b6000611330610de4565b5065deadbeef000560008315610a8057600101610abf565b6000611352610de4565b5065deadbeef003960005b83811015610a805760206000803960010161135d565b60028054600181018255600091825283908390602084200191611397919083611c17565b505060025492915050565b60006113ac610de4565b5065deadbeef00596000805b84811015610a24575991506001016113b8565b60006113d5610de4565b5065deadbeef00386000805b84811015610a24573891506001016113e1565b60006113fe610de4565b5065deadbeef00416000805b84811015610a245741915060010161140a565b6000611427610de4565b5065deadbeef00306000805b84811015610a2457309150600101611433565b6000611450610de4565b5065deadbeef00a3601081905260005b83811015610a8057600360028260066010a3600101611460565b6000611484610de4565b5065deadbeef000b60008315610a8057600101610abf565b60006114a6610de4565b5065deadbeef00476000805b84811015610a24574791506001016114b2565b60006114cf610de4565b5065deadbeef001c6000805b84811015610a24576001016114db565b60006114f5610de4565b5065deadbeef00356000805b84811015610a24576000359150600101611501565b6000611520610de4565b5065deadbeef005560005b83811015610a8057600082905560010161152b565b600061154a610de4565b5065deadbeef001860008315610a8057600101610abf565b600061156c610de4565b5065deadbeef000360008315610a8057600101610abf565b600061158e610de4565b5065deadbeef000760005b83811015610a805760001990910790600101611599565b60006115ba610de4565b5065deadbeef00a2601081905260005b83811015610a805760028160066010a26001016115ca565b60006115ec610de4565b5065deadbeef000a60005b83811015610a805760019182900a91016115f7565b6000611616610de4565b5065deadbeef00146000805b84811015610a2457600191508101611622565b600061163f610de4565b5065deadbeef004060006000194301815b85811015610cb65781409250600101611650565b606081516080146116875760405162461bcd60e51b81526004016111c290611ae9565b600660208301835160408482846000875af1806111e757600080fd5b60006116ad610de4565b5065deadbeef00156000805b84811015610a2457821591506001016116b9565b60006116d7610de4565b5065deadbeef00126000805b84811015610a245760018381129250016116e3565b6000611702610de4565b5065deadbeef003b600030815b85811015610cb657813b925060010161170f565b6000600360208301835160405160148183856000885af18061174457600080fd5b8151979650505050505050565b600061175b610de4565b5065deadbeef000960005b83811015610a8057600019600183099150600101611766565b8035611199565b60006020828403121561179b5761179b600080fd5b60006117a7848461177f565b949350505050565b805b82525050565b6020810161119982846117af565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611801576118016117c5565b6040525050565b60006118176000604051905090565b905061182382826117db565b919050565b600067ffffffffffffffff821115611842576118426117c5565b601f19601f83011660200192915050565b82818337506000910152565b600061187261186d84611828565b611808565b90508281526020810184848401111561188d5761188d600080fd5b610f26848285611853565b600082601f8301126118ac576118ac600080fd5b81356117a784826020860161185f565b6000602082840312156118d1576118d1600080fd5b813567ffffffffffffffff8111156118eb576118eb600080fd5b6117a784828501611898565b60005b838110156119125780820151838201526020016118fa565b50506000910152565b600061192b826000815192915050565b8084526020840193506119428185602086016118f7565b601f01601f19169290920192915050565b60208082528101611964818461191b565b9392505050565b60006001600160a01b038216611199565b6117b18161196b565b60208101611199828461197c565b60008083601f8401126119a8576119a8600080fd5b50813567ffffffffffffffff8111156119c3576119c3600080fd5b6020830191508360018202830111156119de576119de600080fd5b9250929050565b600080602083850312156119fb576119fb600080fd5b823567ffffffffffffffff811115611a1557611a15600080fd5b611a2185828601611993565b92509250509250929050565b6bffffffffffffffffffffffff1981166117b1565b602081016111998284611a2d565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611a7a57607f821691505b602082108103611a8c57611a8c611a50565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561119957611199611a92565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b6020808252810161119981611abb565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e00000000000081529150611ae2565b6020808252810161119981611af9565b634e487b7160e01b600052601260045260246000fd5b600082611b6257611b62611b3d565b500690565b6000611199611b738381565b90565b611b7f83611b67565b815460001960089490940293841b1916921b91909117905550565b6000611ba7818484611b76565b505050565b81811015611bc757611bbf600082611b9a565b600101611bac565b5050565b601f821115611ba757611be981600081815281906020902092915050565b6020601f85010481016020851015611bfe5750805b611c106020601f860104830182611bac565b5050505050565b8267ffffffffffffffff811115611c3057611c306117c5565b611c3a8254611a66565b611c45828285611bcb565b6000601f831160018114611c795760008415611c615750858201355b600019600886021c1981166002860217865550611cdf565b601f198416611c9386600081815281906020902092915050565b60005b82811015611cb65788850135825560209485019460019092019101611c96565b86831015611cd257600019601f88166008021c19858a01351682555b6001600288020188555050505b5050505050505056fea2646970667358221220b3a835504b6ee4829d77d46cf13a8e6b8f6628dead0c6e15b8148e4555ee87e864736f6c63430008170033 +6080604052348015600e575f5ffd5b50612f4c8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125dc565b611289565b6040516104889190612616565b60405180910390f35b6104ab60048036038101906104a691906125dc565b6112c1565b6040516104b89190612616565b60405180910390f35b6104db60048036038101906104d691906125dc565b6112f9565b6040516104e89190612616565b60405180910390f35b61050b6004803603810190610506919061276b565b61132f565b6040516105189190612812565b60405180910390f35b61053b600480360381019061053691906125dc565b611353565b6040516105489190612616565b60405180910390f35b61055961138b565b6040516105669190612616565b60405180910390f35b610589600480360381019061058491906125dc565b611393565b6040516105969190612616565b60405180910390f35b6105b960048036038101906105b491906125dc565b6113cb565b6040516105c69190612616565b60405180910390f35b6105e960048036038101906105e491906125dc565b611403565b6040516105f69190612616565b60405180910390f35b610619600480360381019061061491906125dc565b61145b565b6040516106269190612616565b60405180910390f35b610649600480360381019061064491906125dc565b611496565b6040516106569190612616565b60405180910390f35b610679600480360381019061067491906125dc565b61151f565b6040516106869190612616565b60405180910390f35b6106a960048036038101906106a491906125dc565b611562565b6040516106b69190612616565b60405180910390f35b6106d960048036038101906106d491906125dc565b61159c565b6040516106e69190612616565b60405180910390f35b610709600480360381019061070491906125dc565b6115d4565b6040516107169190612616565b60405180910390f35b610739600480360381019061073491906125dc565b61160c565b6040516107469190612616565b60405180910390f35b610769600480360381019061076491906125dc565b611647565b6040516107769190612616565b60405180910390f35b610799600480360381019061079491906125dc565b61167f565b6040516107a69190612616565b60405180910390f35b6107c960048036038101906107c491906125dc565b6116b7565b6040516107d69190612616565b60405180910390f35b6107f960048036038101906107f491906125dc565b6116ef565b6040516108069190612812565b60405180910390f35b610817611795565b6040516108249190612616565b60405180910390f35b610847600480360381019061084291906125dc565b6117b0565b6040516108549190612616565b60405180910390f35b610877600480360381019061087291906125dc565b6117e9565b6040516108849190612616565b60405180910390f35b6108a760048036038101906108a291906125dc565b611821565b6040516108b49190612616565b60405180910390f35b6108d760048036038101906108d291906125dc565b61185d565b6040516108e49190612616565b60405180910390f35b610907600480360381019061090291906125dc565b611895565b6040516109149190612616565b60405180910390f35b610937600480360381019061093291906125dc565b6118cf565b6040516109449190612616565b60405180910390f35b610967600480360381019061096291906125dc565b611907565b6040516109749190612616565b60405180910390f35b610997600480360381019061099291906125dc565b611946565b6040516109a49190612616565b60405180910390f35b6109c760048036038101906109c2919061276b565b61197e565b6040516109d49190612812565b60405180910390f35b6109f760048036038101906109f2919061276b565b6119ad565b604051610a04919061284a565b60405180910390f35b610a156119d6565b604051610a229190612616565b60405180910390f35b610a456004803603810190610a4091906125dc565b611a10565b604051610a529190612616565b60405180910390f35b610a756004803603810190610a7091906125dc565b611a4b565b604051610a829190612616565b60405180910390f35b610aa56004803603810190610aa091906125dc565b611a83565b604051610ab29190612616565b60405180910390f35b610ad56004803603810190610ad091906125dc565b611abe565b604051610ae29190612616565b60405180910390f35b610b056004803603810190610b0091906125dc565b611af6565b604051610b129190612616565b60405180910390f35b610b356004803603810190610b3091906125dc565b611b2e565b604051610b429190612616565b60405180910390f35b610b656004803603810190610b6091906125dc565b611b67565b604051610b729190612616565b60405180910390f35b610b956004803603810190610b9091906125dc565b611bc0565b604051610ba29190612616565b60405180910390f35b610bc56004803603810190610bc091906125dc565b611bfa565b604051610bd29190612616565b60405180910390f35b610bf56004803603810190610bf091906125dc565b611c32565b604051610c029190612616565b60405180910390f35b610c256004803603810190610c20919061276b565b611c7b565b604051610c329190612812565b60405180910390f35b610c556004803603810190610c5091906125dc565b611ce6565b604051610c629190612616565b60405180910390f35b610c856004803603810190610c8091906125dc565b611d23565b604051610c929190612616565b60405180910390f35b610cb56004803603810190610cb0919061276b565b611d5b565b604051610cc29190612812565b60405180910390f35b610ce56004803603810190610ce0919061276b565b611d89565b604051610cf29190612812565b60405180910390f35b610d156004803603810190610d10919061276b565b611dad565b604051610d2291906128a2565b60405180910390f35b610d33611e2b565b604051610d409190612616565b60405180910390f35b610d636004803603810190610d5e91906125dc565b611e74565b604051610d709190612616565b60405180910390f35b610d936004803603810190610d8e91906125dc565b611eac565b604051610da09190612616565b60405180910390f35b610dc36004803603810190610dbe91906125dc565b611ee5565b604051610dd09190612616565b60405180910390f35b610df36004803603810190610dee9190612918565b611f1d565b604051610e009190612616565b60405180910390f35b610e236004803603810190610e1e91906125dc565b611f67565b604051610e309190612616565b60405180910390f35b610e536004803603810190610e4e91906125dc565b611f9f565b604051610e609190612616565b60405180910390f35b610e836004803603810190610e7e91906125dc565b611fd7565b604051610e909190612616565b60405180910390f35b610eb36004803603810190610eae91906125dc565b61200f565b604051610ec09190612616565b60405180910390f35b610ee36004803603810190610ede91906125dc565b612047565b604051610ef09190612616565b60405180910390f35b610f136004803603810190610f0e91906125dc565b612088565b604051610f209190612616565b60405180910390f35b610f436004803603810190610f3e91906125dc565b6120c1565b604051610f509190612616565b60405180910390f35b610f736004803603810190610f6e91906125dc565b6120f9565b604051610f809190612616565b60405180910390f35b610fa36004803603810190610f9e919061276b565b612133565b604051610fb0919061297d565b60405180910390f35b610fd36004803603810190610fce91906125dc565b6121cd565b604051610fe09190612616565b60405180910390f35b6110036004803603810190610ffe91906125dc565b612206565b6040516110109190612616565b60405180910390f35b611033600480360381019061102e91906125dc565b61223c565b6040516110409190612616565b60405180910390f35b611063600480360381019061105e91906125dc565b612274565b6040516110709190612616565b60405180910390f35b611093600480360381019061108e91906125dc565b6122ac565b6040516110a09190612616565b60405180910390f35b6110c360048036038101906110be91906125dc565b612304565b6040516110d09190612616565b60405180910390f35b6110f360048036038101906110ee91906125dc565b612343565b6040516111009190612616565b60405180910390f35b611123600480360381019061111e91906125dc565b61237c565b6040516111309190612616565b60405180910390f35b611153600480360381019061114e91906125dc565b6123b6565b6040516111609190612616565b60405180910390f35b611183600480360381019061117e919061276b565b6123f4565b6040516111909190612812565b60405180910390f35b6111b360048036038101906111ae91906125dc565b612460565b6040516111c09190612616565b60405180910390f35b6111e360048036038101906111de91906125dc565b612499565b6040516111f09190612616565b60405180910390f35b611213600480360381019061120e91906125dc565b6124d4565b6040516112209190612616565b60405180910390f35b611243600480360381019061123e919061276b565b61250f565b60405161125091906129d0565b60405180910390f35b611273600480360381019061126e91906125dc565b61253e565b6040516112809190612616565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a16565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a16565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a73565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a73565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b00565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b68565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a73565b9250508190555043600154611e669190612bb3565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d8d565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f5f61010073ffffffffffffffffffffffffffffffffffffffff168460405161215d9190612e94565b5f60405180830381855afa9150503d805f8114612195576040519150601f19603f3d011682016040523d82523d5f602084013e61219a565b606091505b5091509150816121ad576121ac612eaa565b5b6001818060200190518101906121c39190612eeb565b1492505050919050565b5f6121d6611795565b505f65deadbeef003590505f5f5b848110156121fb575f3591506001810190506121e4565b505080915050919050565b5f61220f611795565b505f65deadbeef005590505f5b8381101561223257815f5560018101905061221c565b5080915050919050565b5f612245611795565b505f65deadbeef001890505f5b8381101561226a575f82189150600181019050612252565b5080915050919050565b5f61227d611795565b505f65deadbeef000390505f5b838110156122a2575f8203915060018101905061228a565b5080915050919050565b5f6122b5611795565b505f65deadbeef000790505f5b838110156122fa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c2565b5080915050919050565b5f61230d611795565b505f65deadbeef00a29050806010525f5b838110156123395760028160066010a260018101905061231e565b5080915050919050565b5f61234c611795565b505f65deadbeef000a90505f5b83811015612372576001820a9150600181019050612359565b5080915050919050565b5f612385611795565b505f65deadbeef001490505f5f5b848110156123ab578283149150600181019050612393565b505080915050919050565b5f6123bf611795565b505f65deadbeef004090505f600143035f5b858110156123e857814092506001810190506123d1565b50505080915050919050565b6060608082511461243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243190612b00565b60405180910390fd5b5f6006905060208301835160408482845f875af180612457575f5ffd5b50505050919050565b5f612469611795565b505f65deadbeef001590505f5f5b8481101561248e5782159150600181019050612477565b505080915050919050565b5f6124a2611795565b505f65deadbeef001290505f5f5b848110156124c9578260011291506001810190506124b0565b505080915050919050565b5f6124dd611795565b505f65deadbeef003b90505f305f5b8581101561250357813b92506001810190506124ec565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612530575f5ffd5b815195505050505050919050565b5f612547611795565b505f65deadbeef000990505f5b8381101561258e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612554565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125bb816125a9565b81146125c5575f5ffd5b50565b5f813590506125d6816125b2565b92915050565b5f602082840312156125f1576125f06125a1565b5b5f6125fe848285016125c8565b91505092915050565b612610816125a9565b82525050565b5f6020820190506126295f830184612607565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61267d82612637565b810181811067ffffffffffffffff8211171561269c5761269b612647565b5b80604052505050565b5f6126ae612598565b90506126ba8282612674565b919050565b5f67ffffffffffffffff8211156126d9576126d8612647565b5b6126e282612637565b9050602081019050919050565b828183375f83830152505050565b5f61270f61270a846126bf565b6126a5565b90508281526020810184848401111561272b5761272a612633565b5b6127368482856126ef565b509392505050565b5f82601f8301126127525761275161262f565b5b81356127628482602086016126fd565b91505092915050565b5f602082840312156127805761277f6125a1565b5b5f82013567ffffffffffffffff81111561279d5761279c6125a5565b5b6127a98482850161273e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e4826127b2565b6127ee81856127bc565b93506127fe8185602086016127cc565b61280781612637565b840191505092915050565b5f6020820190508181035f83015261282a81846127da565b905092915050565b5f819050919050565b61284481612832565b82525050565b5f60208201905061285d5f83018461283b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288c82612863565b9050919050565b61289c81612882565b82525050565b5f6020820190506128b55f830184612893565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128d8576128d761262f565b5b8235905067ffffffffffffffff8111156128f5576128f46128bb565b5b602083019150836001820283011115612911576129106128bf565b5b9250929050565b5f5f6020838503121561292e5761292d6125a1565b5b5f83013567ffffffffffffffff81111561294b5761294a6125a5565b5b612957858286016128c3565b92509250509250929050565b5f8115159050919050565b61297781612963565b82525050565b5f6020820190506129905f83018461296e565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129ca81612996565b82525050565b5f6020820190506129e35f8301846129c1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a2d57607f821691505b602082108103612a4057612a3f6129e9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7d826125a9565b9150612a88836125a9565b9250828201905080821115612aa057612a9f612a46565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aea601483612aa6565b9150612af582612ab6565b602082019050919050565b5f6020820190508181035f830152612b1781612ade565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b52601a83612aa6565b9150612b5d82612b1e565b602082019050919050565b5f6020820190508181035f830152612b7f81612b46565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bbd826125a9565b9150612bc8836125a9565b925082612bd857612bd7612b86565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c0e565b612c538683612c0e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c8e612c89612c84846125a9565b612c6b565b6125a9565b9050919050565b5f819050919050565b612ca783612c74565b612cbb612cb382612c95565b848454612c1a565b825550505050565b5f5f905090565b612cd2612cc3565b612cdd818484612c9e565b505050565b5b81811015612d0057612cf55f82612cca565b600181019050612ce3565b5050565b601f821115612d4557612d1681612bed565b612d1f84612bff565b81016020851015612d2e578190505b612d42612d3a85612bff565b830182612ce2565b50505b505050565b5f82821c905092915050565b5f612d655f1984600802612d4a565b1980831691505092915050565b5f612d7d8383612d56565b9150826002028217905092915050565b612d978383612be3565b67ffffffffffffffff811115612db057612daf612647565b5b612dba8254612a16565b612dc5828285612d04565b5f601f831160018114612df2575f8415612de0578287013590505b612dea8582612d72565b865550612e51565b601f198416612e0086612bed565b5f5b82811015612e2757848901358255600182019150602085019450602081019050612e02565b86831015612e445784890135612e40601f891682612d56565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e6e826127b2565b612e788185612e5a565b9350612e888185602086016127cc565b80840191505092915050565b5f612e9f8284612e64565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612ee5816125b2565b92915050565b5f60208284031215612f0057612eff6125a1565b5b5f612f0d84828501612ed7565b9150509291505056fea26469706673582212201293a76772d1a22df7157d651777276f6dfb3d30be3e2d7c6b1449884a79f70064736f6c634300081b0033 \ No newline at end of file diff --git a/bindings/tester/loadTester.go b/bindings/tester/loadTester.go index 5c8257506..b4be65679 100644 --- a/bindings/tester/loadTester.go +++ b/bindings/tester/loadTester.go @@ -31,8 +31,8 @@ var ( // LoadTesterMetaData contains all meta data concerning the LoadTester contract. var LoadTesterMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"dumpster\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCallCounter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inc\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopBlockHashUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"store\",\"inputs\":[{\"name\":\"trash\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDRESS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testAND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBASEFEE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBLOCKHASH\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBYTE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBlake2f\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATALOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLVALUE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCHAINID\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODECOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCOINBASE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIFFICULTY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECAdd\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECMul\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECPairing\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECRecover\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEQ\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXTCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGAS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASLIMIT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASPRICE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testISZERO\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testIdentity\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG0\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG1\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG2\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG4\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE8\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMUL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMULMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testModExp\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNOT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNUMBER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testORIGIN\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRipemd160\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSAR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSELFBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA256\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSIGNEXTEND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSUB\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testTIMESTAMP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testXOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"}]", - Bin: "0x608060405234801561001057600080fd5b50611d1e806100206000396000f3fe608060405234801561001057600080fd5b50600436106104545760003560e01c806380947f8011610241578063bf529ca11161013b578063dd9bef60116100c3578063f279ca8111610087578063f279ca811461098f578063f4d1fc61146109a2578063f58fc36a146109b5578063f6b0bbf7146109c8578063fde7721c146109e857600080fd5b8063dd9bef6014610930578063de97a36314610943578063e9f9b3f214610956578063ea5141e614610969578063edf003cf1461097c57600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef146108d1578063d117320b146108e4578063d51e7b5b146108f7578063d53ff3fd1461090a578063d93cd5581461091d57600080fd5b8063bf529ca114610885578063c360aba614610898578063c420eb61146108ab578063c4bd65d5146108be57600080fd5b8063a18683cb116101c9578063b374012b1161018d578063b374012b14610826578063b3d847f214610839578063b7b862071461084c578063b81c14841461085f578063bdc875fc1461087257600080fd5b8063a18683cb146107c5578063a271b721146107e5578063a60a1087146107ed578063a645c9c214610800578063acaebdf61461081357600080fd5b8063962e4dc211610210578063962e4dc21461077957806398456f3e1461078c5780639a2b7c811461079f5780639cce7cf9146107b2578063a040aec6146104a857600080fd5b806380947f801461072d578063880eff3914610740578063918a5fcd1461075357806391e7b2771461076657600080fd5b80633430ec061161035257806360e13cde116102da5780636f099c8d1161029e5780636f099c8d146106ce57806371d91d28146106e15780637b6e0b0e146106f45780637c191d20146107075780637de8c6f81461071a57600080fd5b806360e13cde1461067a578063613d0a821461068d57806363138d4f146106a0578063659bbb4f146106b35780636e7f1fe7146106bb57600080fd5b806340fe26621161032157806340fe26621461061b57806344cf3bc71461062e5780634a61af1f146106415780634d2c74b3146106545780635590c2d91461066757600080fd5b80633430ec06146105da578063371303c0146105ed5780633a411f12146105f55780633a425dfc1461060857600080fd5b806318093b46116103e0578063219cddeb116103a4578063219cddeb1461057b5780632294fc7f1461058e5780632871ef85146105a15780632b21ef44146105b45780632d34e798146105c757600080fd5b806318093b461461051c57806319b621d61461052f5780631aba07ea146105425780631de2f343146105555780632007332e1461056857600080fd5b80630ba8a73b116104275780630ba8a73b146104c85780631287a68c146104db578063135d52f7146104e35780631581cf19146104f6578063165821501461050957600080fd5b8063034aef7114610459578063050082f814610482578063087b4e84146104955780630b3b996a146104a8575b600080fd5b61046c610467366004611786565b6109fb565b60405161047991906117b7565b60405180910390f35b61046c610490366004611786565b610a2d565b61046c6104a3366004611786565b610a56565b6104bb6104b63660046118bc565b610a87565b6040516104799190611953565b61046c6104d6366004611786565b610aaa565b60005461046c565b61046c6104f1366004611786565b610acf565b61046c610504366004611786565b610af1565b61046c610517366004611786565b610b1a565b61046c61052a366004611786565b610b46565b61046c61053d366004611786565b610b71565b61046c610550366004611786565b610bdd565b61046c610563366004611786565b610c13565b61046c610576366004611786565b610c40565b61046c610589366004611786565b610c62565b61046c61059c366004611786565b610c8b565b61046c6105af366004611786565b610cc0565b61046c6105c2366004611786565b610ce9565b61046c6105d5366004611786565b610d12565b6104bb6105e8366004611786565b610d3b565b61046c610de4565b61046c610603366004611786565b610dfd565b61046c610616366004611786565b610e1f565b61046c610629366004611786565b610e4a565b61046c61063c366004611786565b610e79565b61046c61064f366004611786565b610ea2565b61046c610662366004611786565b610ecf565b61046c610675366004611786565b610ef8565b61046c610688366004611786565b610f2e565b6104bb61069b3660046118bc565b610f5a565b61046c6106ae3660046118bc565b610f85565b61046c610fae565b61046c6106c9366004611786565b610fe8565b61046c6106dc366004611786565b611013565b61046c6106ef366004611786565b61103c565b61046c610702366004611786565b611067565b61046c610715366004611786565b611092565b61046c610728366004611786565b6110bb565b61046c61073b366004611786565b6110dd565b61046c61074e366004611786565b61110b565b61046c610761366004611786565b611138565b61046c610774366004611786565b611161565b6104bb6107873660046118bc565b61119f565b61046c61079a366004611786565b6111f0565b61046c6107ad366004611786565b611220565b6104bb6107c03660046118bc565b611242565b6107d86107d33660046118bc565b611262565b6040516104799190611985565b61046c6112bc565b61046c6107fb366004611786565b6112fd565b61046c61080e366004611786565b611326565b61046c610821366004611786565b611348565b61046c6108343660046119e5565b611373565b61046c610847366004611786565b6113a2565b61046c61085a366004611786565b6113cb565b61046c61086d366004611786565b6113f4565b61046c610880366004611786565b61141d565b61046c610893366004611786565b611446565b61046c6108a6366004611786565b61147a565b61046c6108b9366004611786565b61149c565b61046c6108cc366004611786565b6114c5565b61046c6108df366004611786565b6114eb565b61046c6108f2366004611786565b611516565b61046c610905366004611786565b611540565b61046c610918366004611786565b611562565b61046c61092b366004611786565b611584565b61046c61093e366004611786565b6115b0565b61046c610951366004611786565b6115e2565b61046c610964366004611786565b61160c565b61046c610977366004611786565b611635565b6104bb61098a3660046118bc565b611664565b61046c61099d366004611786565b6116a3565b61046c6109b0366004611786565b6116cd565b61046c6109c3366004611786565b6116f8565b6109db6109d63660046118bc565b611723565b6040516104799190611a42565b61046c6109f6366004611786565b611751565b6000610a05610de4565b5065deadbeef00366000805b84811015610a2457369150600101610a11565b50909392505050565b6000610a37610de4565b5065deadbeef00326000805b84811015610a2457329150600101610a43565b6000610a60610de4565b5065deadbeef005260005b83811015610a80576000829052600101610a6b565b5092915050565b606060086040828451602086016000855af180610aa357600080fd5b5050919050565b6000610ab4610de4565b5065deadbeef000160005b83811015610a8057600101610abf565b6000610ad9610de4565b5065deadbeef001760008315610a8057600101610abf565b6000610afb610de4565b5065deadbeef00346000805b84811015610a2457349150600101610b07565b6000610b24610de4565b5065deadbeef000660005b83811015610a805760001990910690600101610b2f565b6000610b50610de4565b5065deadbeef00136000805b84811015610a24576001808413925001610b5c565b6000610b7b610de4565b506001600160e01b0319600090815265deadbeef002090805b84811015610bab5760046000209150600101610b94565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610a80575060009392505050565b6000610be7610de4565b5065deadbeef00a4601081905260005b83811015610a80576004600360028360066010a4600101610bf7565b6000610c1d610de4565b5065deadbeef001a6000805b84811015610a2457600083901a9150600101610c29565b6000610c4a610de4565b5065deadbeef001b60008315610a8057600101610abf565b6000610c6c610de4565b5065deadbeef00426000805b84811015610a2457429150600101610c78565b6000610c95610de4565b5065deadbeef0031600030815b85811015610cb65781319250600101610ca2565b5091949350505050565b6000610cca610de4565b5065deadbeef00486000805b84811015610a2457489150600101610cd6565b6000610cf3610de4565b5065deadbeef003d6000805b84811015610a24573d9150600101610cff565b6000610d1c610de4565b5065deadbeef00436000805b84811015610a2457439150600101610d28565b60028181548110610d4b57600080fd5b906000526020600020018054909150610d6390611a66565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8f90611a66565b8015610ddc5780601f10610db157610100808354040283529160200191610ddc565b820191906000526020600020905b815481529060010190602001808311610dbf57829003601f168201915b505050505081565b60008054610df3906001611aa8565b6000819055919050565b6000610e07610de4565b5065deadbeef000460008315610a8057600101610abf565b6000610e29610de4565b5065deadbeef003760005b83811015610a8057602060008037600101610e34565b6000610e54610de4565b5065deadbeef00a0601081905260005b83811015610a805760066010a0600101610e64565b6000610e83610de4565b5065deadbeef00336000805b84811015610a2457339150600101610e8f565b6000610eac610de4565b5065deadbeef005360005b83811015610a805763deadbeef600052600101610eb7565b6000610ed9610de4565b5065deadbeef003a6000805b84811015610a24573a9150600101610ee5565b6000610f02610de4565b5065deadbeef00516000818152805b84811015610f26576000519150600101610f11565b509392505050565b6000610f38610de4565b5065deadbeef001d60005b83811015610a805760009190911d90600101610f43565b6060600560208301835160405160208183856000885af180610f7b57600080fd5b5095945050505050565b600060026020830183518360208183856000885af180610fa457600080fd5b5050505050919050565b6000610fb8610de4565b505b6103e85a1115610fe1576001806000828254610fd69190611aa8565b90915550610fba9050565b5060015490565b6000610ff2610de4565b5065deadbeef00106000805b84811015610a24576001838110925001610ffe565b600061101d610de4565b5065deadbeef00446000805b84811015610a2457449150600101611029565b6000611046610de4565b5065deadbeef00116000805b84811015610a24576001808411925001611052565b6000611071610de4565b5065deadbeef003e60005b83811015610a805760206000803e60010161107c565b600061109c610de4565b5065deadbeef00456000805b84811015610a24574591506001016110a8565b60006110c5610de4565b5065deadbeef000260008315610a8057600101610abf565b60006110e7610de4565b5065deadbeef000860005b83811015610a80576000196000830891506001016110f2565b6000611115610de4565b5065deadbeef005460008181555b83811015610a80576000549150600101611123565b6000611142610de4565b5065deadbeef005a6000805b84811015610a24575a915060010161114e565b600061116b610de4565b5065deadbeef001960005b8381101561118957901990600101611176565b5065deadbeef0019811461119957195b92915050565b606081516060146111cb5760405162461bcd60e51b81526004016111c290611ae9565b60405180910390fd5b600760208301835160408482846000875af1806111e757600080fd5b50505050919050565b60006111fa610de4565b5065deadbeef00a1601081905260005b83811015610a80578060066010a160010161120a565b600061122a610de4565b5065deadbeef001660008315610a8057600101610abf565b60606004602083018351604051818183856000885af180610f7b57600080fd5b600081516080146112855760405162461bcd60e51b81526004016111c290611b2d565b6001602083016040840151601f1a602082015260206040516080836000865af1806112af57600080fd5b6040515195945050505050565b60006112c6610de4565b505b6103e85a1115610fe15760018060008282546112e49190611aa8565b90915550506001546112f7904390611b53565b506112c8565b6000611307610de4565b5065deadbeef00466000805b84811015610a2457469150600101611313565b6000611330610de4565b5065deadbeef000560008315610a8057600101610abf565b6000611352610de4565b5065deadbeef003960005b83811015610a805760206000803960010161135d565b60028054600181018255600091825283908390602084200191611397919083611c17565b505060025492915050565b60006113ac610de4565b5065deadbeef00596000805b84811015610a24575991506001016113b8565b60006113d5610de4565b5065deadbeef00386000805b84811015610a24573891506001016113e1565b60006113fe610de4565b5065deadbeef00416000805b84811015610a245741915060010161140a565b6000611427610de4565b5065deadbeef00306000805b84811015610a2457309150600101611433565b6000611450610de4565b5065deadbeef00a3601081905260005b83811015610a8057600360028260066010a3600101611460565b6000611484610de4565b5065deadbeef000b60008315610a8057600101610abf565b60006114a6610de4565b5065deadbeef00476000805b84811015610a24574791506001016114b2565b60006114cf610de4565b5065deadbeef001c6000805b84811015610a24576001016114db565b60006114f5610de4565b5065deadbeef00356000805b84811015610a24576000359150600101611501565b6000611520610de4565b5065deadbeef005560005b83811015610a8057600082905560010161152b565b600061154a610de4565b5065deadbeef001860008315610a8057600101610abf565b600061156c610de4565b5065deadbeef000360008315610a8057600101610abf565b600061158e610de4565b5065deadbeef000760005b83811015610a805760001990910790600101611599565b60006115ba610de4565b5065deadbeef00a2601081905260005b83811015610a805760028160066010a26001016115ca565b60006115ec610de4565b5065deadbeef000a60005b83811015610a805760019182900a91016115f7565b6000611616610de4565b5065deadbeef00146000805b84811015610a2457600191508101611622565b600061163f610de4565b5065deadbeef004060006000194301815b85811015610cb65781409250600101611650565b606081516080146116875760405162461bcd60e51b81526004016111c290611ae9565b600660208301835160408482846000875af1806111e757600080fd5b60006116ad610de4565b5065deadbeef00156000805b84811015610a2457821591506001016116b9565b60006116d7610de4565b5065deadbeef00126000805b84811015610a245760018381129250016116e3565b6000611702610de4565b5065deadbeef003b600030815b85811015610cb657813b925060010161170f565b6000600360208301835160405160148183856000885af18061174457600080fd5b8151979650505050505050565b600061175b610de4565b5065deadbeef000960005b83811015610a8057600019600183099150600101611766565b8035611199565b60006020828403121561179b5761179b600080fd5b60006117a7848461177f565b949350505050565b805b82525050565b6020810161119982846117af565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611801576118016117c5565b6040525050565b60006118176000604051905090565b905061182382826117db565b919050565b600067ffffffffffffffff821115611842576118426117c5565b601f19601f83011660200192915050565b82818337506000910152565b600061187261186d84611828565b611808565b90508281526020810184848401111561188d5761188d600080fd5b610f26848285611853565b600082601f8301126118ac576118ac600080fd5b81356117a784826020860161185f565b6000602082840312156118d1576118d1600080fd5b813567ffffffffffffffff8111156118eb576118eb600080fd5b6117a784828501611898565b60005b838110156119125780820151838201526020016118fa565b50506000910152565b600061192b826000815192915050565b8084526020840193506119428185602086016118f7565b601f01601f19169290920192915050565b60208082528101611964818461191b565b9392505050565b60006001600160a01b038216611199565b6117b18161196b565b60208101611199828461197c565b60008083601f8401126119a8576119a8600080fd5b50813567ffffffffffffffff8111156119c3576119c3600080fd5b6020830191508360018202830111156119de576119de600080fd5b9250929050565b600080602083850312156119fb576119fb600080fd5b823567ffffffffffffffff811115611a1557611a15600080fd5b611a2185828601611993565b92509250509250929050565b6bffffffffffffffffffffffff1981166117b1565b602081016111998284611a2d565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611a7a57607f821691505b602082108103611a8c57611a8c611a50565b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561119957611199611a92565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b6020808252810161119981611abb565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e00000000000081529150611ae2565b6020808252810161119981611af9565b634e487b7160e01b600052601260045260246000fd5b600082611b6257611b62611b3d565b500690565b6000611199611b738381565b90565b611b7f83611b67565b815460001960089490940293841b1916921b91909117905550565b6000611ba7818484611b76565b505050565b81811015611bc757611bbf600082611b9a565b600101611bac565b5050565b601f821115611ba757611be981600081815281906020902092915050565b6020601f85010481016020851015611bfe5750805b611c106020601f860104830182611bac565b5050505050565b8267ffffffffffffffff811115611c3057611c306117c5565b611c3a8254611a66565b611c45828285611bcb565b6000601f831160018114611c795760008415611c615750858201355b600019600886021c1981166002860217865550611cdf565b601f198416611c9386600081815281906020902092915050565b60005b82811015611cb65788850135825560209485019460019092019101611c96565b86831015611cd257600019601f88166008021c19858a01351682555b6001600288020188555050505b5050505050505056fea2646970667358221220b3a835504b6ee4829d77d46cf13a8e6b8f6628dead0c6e15b8148e4555ee87e864736f6c63430008170033", + ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dumpster\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCallCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inc\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loopBlockHashUntilLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loopUntilLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"trash\",\"type\":\"bytes\"}],\"name\":\"store\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADDMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADDRESS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testAND\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBASEFEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBLOCKHASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBYTE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testBlake2f\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATACOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATALOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATASIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLVALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCHAINID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCODECOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCODESIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCOINBASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testDIFFICULTY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testDIV\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECAdd\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECMul\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECPairing\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECRecover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEQ\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEXP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEXTCODESIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGASLIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGASPRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testISZERO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testIdentity\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG0\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG4\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMLOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSTORE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSTORE8\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMUL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMULMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testModExp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testNOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testNUMBER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testORIGIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testP256Verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testRETURNDATACOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testRETURNDATASIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testRipemd160\",\"outputs\":[{\"internalType\":\"bytes20\",\"name\":\"result\",\"type\":\"bytes20\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSAR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSDIV\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSELFBALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSGT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testSHA256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHA3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSIGNEXTEND\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSLOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSLT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSSTORE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSUB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testTIMESTAMP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testXOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052348015600e575f5ffd5b50612f4c8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125dc565b611289565b6040516104889190612616565b60405180910390f35b6104ab60048036038101906104a691906125dc565b6112c1565b6040516104b89190612616565b60405180910390f35b6104db60048036038101906104d691906125dc565b6112f9565b6040516104e89190612616565b60405180910390f35b61050b6004803603810190610506919061276b565b61132f565b6040516105189190612812565b60405180910390f35b61053b600480360381019061053691906125dc565b611353565b6040516105489190612616565b60405180910390f35b61055961138b565b6040516105669190612616565b60405180910390f35b610589600480360381019061058491906125dc565b611393565b6040516105969190612616565b60405180910390f35b6105b960048036038101906105b491906125dc565b6113cb565b6040516105c69190612616565b60405180910390f35b6105e960048036038101906105e491906125dc565b611403565b6040516105f69190612616565b60405180910390f35b610619600480360381019061061491906125dc565b61145b565b6040516106269190612616565b60405180910390f35b610649600480360381019061064491906125dc565b611496565b6040516106569190612616565b60405180910390f35b610679600480360381019061067491906125dc565b61151f565b6040516106869190612616565b60405180910390f35b6106a960048036038101906106a491906125dc565b611562565b6040516106b69190612616565b60405180910390f35b6106d960048036038101906106d491906125dc565b61159c565b6040516106e69190612616565b60405180910390f35b610709600480360381019061070491906125dc565b6115d4565b6040516107169190612616565b60405180910390f35b610739600480360381019061073491906125dc565b61160c565b6040516107469190612616565b60405180910390f35b610769600480360381019061076491906125dc565b611647565b6040516107769190612616565b60405180910390f35b610799600480360381019061079491906125dc565b61167f565b6040516107a69190612616565b60405180910390f35b6107c960048036038101906107c491906125dc565b6116b7565b6040516107d69190612616565b60405180910390f35b6107f960048036038101906107f491906125dc565b6116ef565b6040516108069190612812565b60405180910390f35b610817611795565b6040516108249190612616565b60405180910390f35b610847600480360381019061084291906125dc565b6117b0565b6040516108549190612616565b60405180910390f35b610877600480360381019061087291906125dc565b6117e9565b6040516108849190612616565b60405180910390f35b6108a760048036038101906108a291906125dc565b611821565b6040516108b49190612616565b60405180910390f35b6108d760048036038101906108d291906125dc565b61185d565b6040516108e49190612616565b60405180910390f35b610907600480360381019061090291906125dc565b611895565b6040516109149190612616565b60405180910390f35b610937600480360381019061093291906125dc565b6118cf565b6040516109449190612616565b60405180910390f35b610967600480360381019061096291906125dc565b611907565b6040516109749190612616565b60405180910390f35b610997600480360381019061099291906125dc565b611946565b6040516109a49190612616565b60405180910390f35b6109c760048036038101906109c2919061276b565b61197e565b6040516109d49190612812565b60405180910390f35b6109f760048036038101906109f2919061276b565b6119ad565b604051610a04919061284a565b60405180910390f35b610a156119d6565b604051610a229190612616565b60405180910390f35b610a456004803603810190610a4091906125dc565b611a10565b604051610a529190612616565b60405180910390f35b610a756004803603810190610a7091906125dc565b611a4b565b604051610a829190612616565b60405180910390f35b610aa56004803603810190610aa091906125dc565b611a83565b604051610ab29190612616565b60405180910390f35b610ad56004803603810190610ad091906125dc565b611abe565b604051610ae29190612616565b60405180910390f35b610b056004803603810190610b0091906125dc565b611af6565b604051610b129190612616565b60405180910390f35b610b356004803603810190610b3091906125dc565b611b2e565b604051610b429190612616565b60405180910390f35b610b656004803603810190610b6091906125dc565b611b67565b604051610b729190612616565b60405180910390f35b610b956004803603810190610b9091906125dc565b611bc0565b604051610ba29190612616565b60405180910390f35b610bc56004803603810190610bc091906125dc565b611bfa565b604051610bd29190612616565b60405180910390f35b610bf56004803603810190610bf091906125dc565b611c32565b604051610c029190612616565b60405180910390f35b610c256004803603810190610c20919061276b565b611c7b565b604051610c329190612812565b60405180910390f35b610c556004803603810190610c5091906125dc565b611ce6565b604051610c629190612616565b60405180910390f35b610c856004803603810190610c8091906125dc565b611d23565b604051610c929190612616565b60405180910390f35b610cb56004803603810190610cb0919061276b565b611d5b565b604051610cc29190612812565b60405180910390f35b610ce56004803603810190610ce0919061276b565b611d89565b604051610cf29190612812565b60405180910390f35b610d156004803603810190610d10919061276b565b611dad565b604051610d2291906128a2565b60405180910390f35b610d33611e2b565b604051610d409190612616565b60405180910390f35b610d636004803603810190610d5e91906125dc565b611e74565b604051610d709190612616565b60405180910390f35b610d936004803603810190610d8e91906125dc565b611eac565b604051610da09190612616565b60405180910390f35b610dc36004803603810190610dbe91906125dc565b611ee5565b604051610dd09190612616565b60405180910390f35b610df36004803603810190610dee9190612918565b611f1d565b604051610e009190612616565b60405180910390f35b610e236004803603810190610e1e91906125dc565b611f67565b604051610e309190612616565b60405180910390f35b610e536004803603810190610e4e91906125dc565b611f9f565b604051610e609190612616565b60405180910390f35b610e836004803603810190610e7e91906125dc565b611fd7565b604051610e909190612616565b60405180910390f35b610eb36004803603810190610eae91906125dc565b61200f565b604051610ec09190612616565b60405180910390f35b610ee36004803603810190610ede91906125dc565b612047565b604051610ef09190612616565b60405180910390f35b610f136004803603810190610f0e91906125dc565b612088565b604051610f209190612616565b60405180910390f35b610f436004803603810190610f3e91906125dc565b6120c1565b604051610f509190612616565b60405180910390f35b610f736004803603810190610f6e91906125dc565b6120f9565b604051610f809190612616565b60405180910390f35b610fa36004803603810190610f9e919061276b565b612133565b604051610fb0919061297d565b60405180910390f35b610fd36004803603810190610fce91906125dc565b6121cd565b604051610fe09190612616565b60405180910390f35b6110036004803603810190610ffe91906125dc565b612206565b6040516110109190612616565b60405180910390f35b611033600480360381019061102e91906125dc565b61223c565b6040516110409190612616565b60405180910390f35b611063600480360381019061105e91906125dc565b612274565b6040516110709190612616565b60405180910390f35b611093600480360381019061108e91906125dc565b6122ac565b6040516110a09190612616565b60405180910390f35b6110c360048036038101906110be91906125dc565b612304565b6040516110d09190612616565b60405180910390f35b6110f360048036038101906110ee91906125dc565b612343565b6040516111009190612616565b60405180910390f35b611123600480360381019061111e91906125dc565b61237c565b6040516111309190612616565b60405180910390f35b611153600480360381019061114e91906125dc565b6123b6565b6040516111609190612616565b60405180910390f35b611183600480360381019061117e919061276b565b6123f4565b6040516111909190612812565b60405180910390f35b6111b360048036038101906111ae91906125dc565b612460565b6040516111c09190612616565b60405180910390f35b6111e360048036038101906111de91906125dc565b612499565b6040516111f09190612616565b60405180910390f35b611213600480360381019061120e91906125dc565b6124d4565b6040516112209190612616565b60405180910390f35b611243600480360381019061123e919061276b565b61250f565b60405161125091906129d0565b60405180910390f35b611273600480360381019061126e91906125dc565b61253e565b6040516112809190612616565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a16565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a16565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a73565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a73565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b00565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b68565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a73565b9250508190555043600154611e669190612bb3565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d8d565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f5f61010073ffffffffffffffffffffffffffffffffffffffff168460405161215d9190612e94565b5f60405180830381855afa9150503d805f8114612195576040519150601f19603f3d011682016040523d82523d5f602084013e61219a565b606091505b5091509150816121ad576121ac612eaa565b5b6001818060200190518101906121c39190612eeb565b1492505050919050565b5f6121d6611795565b505f65deadbeef003590505f5f5b848110156121fb575f3591506001810190506121e4565b505080915050919050565b5f61220f611795565b505f65deadbeef005590505f5b8381101561223257815f5560018101905061221c565b5080915050919050565b5f612245611795565b505f65deadbeef001890505f5b8381101561226a575f82189150600181019050612252565b5080915050919050565b5f61227d611795565b505f65deadbeef000390505f5b838110156122a2575f8203915060018101905061228a565b5080915050919050565b5f6122b5611795565b505f65deadbeef000790505f5b838110156122fa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c2565b5080915050919050565b5f61230d611795565b505f65deadbeef00a29050806010525f5b838110156123395760028160066010a260018101905061231e565b5080915050919050565b5f61234c611795565b505f65deadbeef000a90505f5b83811015612372576001820a9150600181019050612359565b5080915050919050565b5f612385611795565b505f65deadbeef001490505f5f5b848110156123ab578283149150600181019050612393565b505080915050919050565b5f6123bf611795565b505f65deadbeef004090505f600143035f5b858110156123e857814092506001810190506123d1565b50505080915050919050565b6060608082511461243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243190612b00565b60405180910390fd5b5f6006905060208301835160408482845f875af180612457575f5ffd5b50505050919050565b5f612469611795565b505f65deadbeef001590505f5f5b8481101561248e5782159150600181019050612477565b505080915050919050565b5f6124a2611795565b505f65deadbeef001290505f5f5b848110156124c9578260011291506001810190506124b0565b505080915050919050565b5f6124dd611795565b505f65deadbeef003b90505f305f5b8581101561250357813b92506001810190506124ec565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612530575f5ffd5b815195505050505050919050565b5f612547611795565b505f65deadbeef000990505f5b8381101561258e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612554565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125bb816125a9565b81146125c5575f5ffd5b50565b5f813590506125d6816125b2565b92915050565b5f602082840312156125f1576125f06125a1565b5b5f6125fe848285016125c8565b91505092915050565b612610816125a9565b82525050565b5f6020820190506126295f830184612607565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61267d82612637565b810181811067ffffffffffffffff8211171561269c5761269b612647565b5b80604052505050565b5f6126ae612598565b90506126ba8282612674565b919050565b5f67ffffffffffffffff8211156126d9576126d8612647565b5b6126e282612637565b9050602081019050919050565b828183375f83830152505050565b5f61270f61270a846126bf565b6126a5565b90508281526020810184848401111561272b5761272a612633565b5b6127368482856126ef565b509392505050565b5f82601f8301126127525761275161262f565b5b81356127628482602086016126fd565b91505092915050565b5f602082840312156127805761277f6125a1565b5b5f82013567ffffffffffffffff81111561279d5761279c6125a5565b5b6127a98482850161273e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e4826127b2565b6127ee81856127bc565b93506127fe8185602086016127cc565b61280781612637565b840191505092915050565b5f6020820190508181035f83015261282a81846127da565b905092915050565b5f819050919050565b61284481612832565b82525050565b5f60208201905061285d5f83018461283b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288c82612863565b9050919050565b61289c81612882565b82525050565b5f6020820190506128b55f830184612893565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128d8576128d761262f565b5b8235905067ffffffffffffffff8111156128f5576128f46128bb565b5b602083019150836001820283011115612911576129106128bf565b5b9250929050565b5f5f6020838503121561292e5761292d6125a1565b5b5f83013567ffffffffffffffff81111561294b5761294a6125a5565b5b612957858286016128c3565b92509250509250929050565b5f8115159050919050565b61297781612963565b82525050565b5f6020820190506129905f83018461296e565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129ca81612996565b82525050565b5f6020820190506129e35f8301846129c1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a2d57607f821691505b602082108103612a4057612a3f6129e9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7d826125a9565b9150612a88836125a9565b9250828201905080821115612aa057612a9f612a46565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aea601483612aa6565b9150612af582612ab6565b602082019050919050565b5f6020820190508181035f830152612b1781612ade565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b52601a83612aa6565b9150612b5d82612b1e565b602082019050919050565b5f6020820190508181035f830152612b7f81612b46565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bbd826125a9565b9150612bc8836125a9565b925082612bd857612bd7612b86565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c0e565b612c538683612c0e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c8e612c89612c84846125a9565b612c6b565b6125a9565b9050919050565b5f819050919050565b612ca783612c74565b612cbb612cb382612c95565b848454612c1a565b825550505050565b5f5f905090565b612cd2612cc3565b612cdd818484612c9e565b505050565b5b81811015612d0057612cf55f82612cca565b600181019050612ce3565b5050565b601f821115612d4557612d1681612bed565b612d1f84612bff565b81016020851015612d2e578190505b612d42612d3a85612bff565b830182612ce2565b50505b505050565b5f82821c905092915050565b5f612d655f1984600802612d4a565b1980831691505092915050565b5f612d7d8383612d56565b9150826002028217905092915050565b612d978383612be3565b67ffffffffffffffff811115612db057612daf612647565b5b612dba8254612a16565b612dc5828285612d04565b5f601f831160018114612df2575f8415612de0578287013590505b612dea8582612d72565b865550612e51565b601f198416612e0086612bed565b5f5b82811015612e2757848901358255600182019150602085019450602081019050612e02565b86831015612e445784890135612e40601f891682612d56565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e6e826127b2565b612e788185612e5a565b9350612e888185602086016127cc565b80840191505092915050565b5f612e9f8284612e64565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612ee5816125b2565b92915050565b5f60208284031215612f0057612eff6125a1565b5b5f612f0d84828501612ed7565b9150509291505056fea26469706673582212201293a76772d1a22df7157d651777276f6dfb3d30be3e2d7c6b1449884a79f70064736f6c634300081b0033", } // LoadTesterABI is the input ABI used to generate the binding from. @@ -1419,6 +1419,27 @@ func (_LoadTester *LoadTesterTransactorSession) TestORIGIN(x *big.Int) (*types.T return _LoadTester.Contract.TestORIGIN(&_LoadTester.TransactOpts, x) } +// TestP256Verify is a paid mutator transaction binding the contract method 0xc711e539. +// +// Solidity: function testP256Verify(bytes inputData) returns(bool) +func (_LoadTester *LoadTesterTransactor) TestP256Verify(opts *bind.TransactOpts, inputData []byte) (*types.Transaction, error) { + return _LoadTester.contract.Transact(opts, "testP256Verify", inputData) +} + +// TestP256Verify is a paid mutator transaction binding the contract method 0xc711e539. +// +// Solidity: function testP256Verify(bytes inputData) returns(bool) +func (_LoadTester *LoadTesterSession) TestP256Verify(inputData []byte) (*types.Transaction, error) { + return _LoadTester.Contract.TestP256Verify(&_LoadTester.TransactOpts, inputData) +} + +// TestP256Verify is a paid mutator transaction binding the contract method 0xc711e539. +// +// Solidity: function testP256Verify(bytes inputData) returns(bool) +func (_LoadTester *LoadTesterTransactorSession) TestP256Verify(inputData []byte) (*types.Transaction, error) { + return _LoadTester.Contract.TestP256Verify(&_LoadTester.TransactOpts, inputData) +} + // TestRETURNDATACOPY is a paid mutator transaction binding the contract method 0x7b6e0b0e. // // Solidity: function testRETURNDATACOPY(uint256 x) returns(uint256) diff --git a/bindings/tester/precompiles.go b/bindings/tester/precompiles.go index eb59e0e2e..6d573e505 100644 --- a/bindings/tester/precompiles.go +++ b/bindings/tester/precompiles.go @@ -2,6 +2,8 @@ package tester import ( "crypto/ecdsa" + "crypto/elliptic" + cryptorand "crypto/rand" "encoding/binary" "encoding/hex" "fmt" @@ -162,6 +164,29 @@ func GenerateBlake2FInput() []byte { return inputData } +func GenerateP256VerifyInput() []byte { + message := []byte("Test P256Verify") + privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) + if err != nil { + panic(err) + } + publicKey := privateKey.PublicKey + messageHash := crypto.Keccak256Hash(message) + signature, err := crypto.Sign(messageHash.Bytes(), privateKey) + if err != nil { + panic(err) + } + + // Prepare input data for ecRecover precompiled contract + inputData := make([]byte, 0, 160) + inputData = append(inputData, messageHash.Bytes()...) + inputData = append(inputData, signature...) + inputData = append(inputData, publicKey.X.Bytes()...) + inputData = append(inputData, publicKey.Y.Bytes()...) + + return inputData +} + func CallPrecompiledContracts(address int, lt *LoadTester, opts *bind.TransactOpts, iterations uint64, privateKey *ecdsa.PrivateKey) (*ethtypes.Transaction, error) { var inputData []byte @@ -202,6 +227,10 @@ func CallPrecompiledContracts(address int, lt *LoadTester, opts *bind.TransactOp log.Trace().Str("method", "TestBlake2f").Msg("Executing contract method") inputData = GenerateECPairingInput() return lt.TestBlake2f(opts, inputData) + case 100: + log.Trace().Str("method", "TestP256Verify").Msg("Executing contract method") + inputData = GenerateP256VerifyInput() + return lt.TestP256Verify(opts, inputData) } return nil, fmt.Errorf("unrecognized precompiled address %d", address) @@ -218,6 +247,7 @@ func GetRandomPrecompiledContractAddress() int { // 7, // NOTE: ecMul requires a lot of gas and buggy 8, 9, + 100, } return codes[rand.Intn(len(codes))] diff --git a/contracts/src/tester/LoadTester.sol b/contracts/src/tester/LoadTester.sol index b97d3187a..4203feee9 100644 --- a/contracts/src/tester/LoadTester.sol +++ b/contracts/src/tester/LoadTester.sol @@ -929,4 +929,14 @@ contract LoadTester { } } } + + // RIP-7212 Precompile for secp256r1 Curve Support + // https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md + address constant VERIFIER = 0x0000000000000000000000000000000000000100; + function testP256Verify(bytes memory inputData) public returns (bool) { + (bool success, bytes memory ret) = VERIFIER.staticcall(inputData); + assert(success); // never reverts, always returns 0 or 1 + + return abi.decode(ret, (uint256)) == 1; + } } From d3c1a4e040f00ca39e52c941cf59b094681d2c2b Mon Sep 17 00:00:00 2001 From: "jason.huang" <20609724+doutv@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:36:16 +0800 Subject: [PATCH 2/6] update loadtest contract --- bindings/tester/LoadTester.bin | 2 +- bindings/tester/loadTester.go | 2 +- contracts/src/tester/LoadTester.sol | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bindings/tester/LoadTester.bin b/bindings/tester/LoadTester.bin index c8717ea17..5acd10cb5 100644 --- a/bindings/tester/LoadTester.bin +++ b/bindings/tester/LoadTester.bin @@ -1 +1 @@ -6080604052348015600e575f5ffd5b50612f4c8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125dc565b611289565b6040516104889190612616565b60405180910390f35b6104ab60048036038101906104a691906125dc565b6112c1565b6040516104b89190612616565b60405180910390f35b6104db60048036038101906104d691906125dc565b6112f9565b6040516104e89190612616565b60405180910390f35b61050b6004803603810190610506919061276b565b61132f565b6040516105189190612812565b60405180910390f35b61053b600480360381019061053691906125dc565b611353565b6040516105489190612616565b60405180910390f35b61055961138b565b6040516105669190612616565b60405180910390f35b610589600480360381019061058491906125dc565b611393565b6040516105969190612616565b60405180910390f35b6105b960048036038101906105b491906125dc565b6113cb565b6040516105c69190612616565b60405180910390f35b6105e960048036038101906105e491906125dc565b611403565b6040516105f69190612616565b60405180910390f35b610619600480360381019061061491906125dc565b61145b565b6040516106269190612616565b60405180910390f35b610649600480360381019061064491906125dc565b611496565b6040516106569190612616565b60405180910390f35b610679600480360381019061067491906125dc565b61151f565b6040516106869190612616565b60405180910390f35b6106a960048036038101906106a491906125dc565b611562565b6040516106b69190612616565b60405180910390f35b6106d960048036038101906106d491906125dc565b61159c565b6040516106e69190612616565b60405180910390f35b610709600480360381019061070491906125dc565b6115d4565b6040516107169190612616565b60405180910390f35b610739600480360381019061073491906125dc565b61160c565b6040516107469190612616565b60405180910390f35b610769600480360381019061076491906125dc565b611647565b6040516107769190612616565b60405180910390f35b610799600480360381019061079491906125dc565b61167f565b6040516107a69190612616565b60405180910390f35b6107c960048036038101906107c491906125dc565b6116b7565b6040516107d69190612616565b60405180910390f35b6107f960048036038101906107f491906125dc565b6116ef565b6040516108069190612812565b60405180910390f35b610817611795565b6040516108249190612616565b60405180910390f35b610847600480360381019061084291906125dc565b6117b0565b6040516108549190612616565b60405180910390f35b610877600480360381019061087291906125dc565b6117e9565b6040516108849190612616565b60405180910390f35b6108a760048036038101906108a291906125dc565b611821565b6040516108b49190612616565b60405180910390f35b6108d760048036038101906108d291906125dc565b61185d565b6040516108e49190612616565b60405180910390f35b610907600480360381019061090291906125dc565b611895565b6040516109149190612616565b60405180910390f35b610937600480360381019061093291906125dc565b6118cf565b6040516109449190612616565b60405180910390f35b610967600480360381019061096291906125dc565b611907565b6040516109749190612616565b60405180910390f35b610997600480360381019061099291906125dc565b611946565b6040516109a49190612616565b60405180910390f35b6109c760048036038101906109c2919061276b565b61197e565b6040516109d49190612812565b60405180910390f35b6109f760048036038101906109f2919061276b565b6119ad565b604051610a04919061284a565b60405180910390f35b610a156119d6565b604051610a229190612616565b60405180910390f35b610a456004803603810190610a4091906125dc565b611a10565b604051610a529190612616565b60405180910390f35b610a756004803603810190610a7091906125dc565b611a4b565b604051610a829190612616565b60405180910390f35b610aa56004803603810190610aa091906125dc565b611a83565b604051610ab29190612616565b60405180910390f35b610ad56004803603810190610ad091906125dc565b611abe565b604051610ae29190612616565b60405180910390f35b610b056004803603810190610b0091906125dc565b611af6565b604051610b129190612616565b60405180910390f35b610b356004803603810190610b3091906125dc565b611b2e565b604051610b429190612616565b60405180910390f35b610b656004803603810190610b6091906125dc565b611b67565b604051610b729190612616565b60405180910390f35b610b956004803603810190610b9091906125dc565b611bc0565b604051610ba29190612616565b60405180910390f35b610bc56004803603810190610bc091906125dc565b611bfa565b604051610bd29190612616565b60405180910390f35b610bf56004803603810190610bf091906125dc565b611c32565b604051610c029190612616565b60405180910390f35b610c256004803603810190610c20919061276b565b611c7b565b604051610c329190612812565b60405180910390f35b610c556004803603810190610c5091906125dc565b611ce6565b604051610c629190612616565b60405180910390f35b610c856004803603810190610c8091906125dc565b611d23565b604051610c929190612616565b60405180910390f35b610cb56004803603810190610cb0919061276b565b611d5b565b604051610cc29190612812565b60405180910390f35b610ce56004803603810190610ce0919061276b565b611d89565b604051610cf29190612812565b60405180910390f35b610d156004803603810190610d10919061276b565b611dad565b604051610d2291906128a2565b60405180910390f35b610d33611e2b565b604051610d409190612616565b60405180910390f35b610d636004803603810190610d5e91906125dc565b611e74565b604051610d709190612616565b60405180910390f35b610d936004803603810190610d8e91906125dc565b611eac565b604051610da09190612616565b60405180910390f35b610dc36004803603810190610dbe91906125dc565b611ee5565b604051610dd09190612616565b60405180910390f35b610df36004803603810190610dee9190612918565b611f1d565b604051610e009190612616565b60405180910390f35b610e236004803603810190610e1e91906125dc565b611f67565b604051610e309190612616565b60405180910390f35b610e536004803603810190610e4e91906125dc565b611f9f565b604051610e609190612616565b60405180910390f35b610e836004803603810190610e7e91906125dc565b611fd7565b604051610e909190612616565b60405180910390f35b610eb36004803603810190610eae91906125dc565b61200f565b604051610ec09190612616565b60405180910390f35b610ee36004803603810190610ede91906125dc565b612047565b604051610ef09190612616565b60405180910390f35b610f136004803603810190610f0e91906125dc565b612088565b604051610f209190612616565b60405180910390f35b610f436004803603810190610f3e91906125dc565b6120c1565b604051610f509190612616565b60405180910390f35b610f736004803603810190610f6e91906125dc565b6120f9565b604051610f809190612616565b60405180910390f35b610fa36004803603810190610f9e919061276b565b612133565b604051610fb0919061297d565b60405180910390f35b610fd36004803603810190610fce91906125dc565b6121cd565b604051610fe09190612616565b60405180910390f35b6110036004803603810190610ffe91906125dc565b612206565b6040516110109190612616565b60405180910390f35b611033600480360381019061102e91906125dc565b61223c565b6040516110409190612616565b60405180910390f35b611063600480360381019061105e91906125dc565b612274565b6040516110709190612616565b60405180910390f35b611093600480360381019061108e91906125dc565b6122ac565b6040516110a09190612616565b60405180910390f35b6110c360048036038101906110be91906125dc565b612304565b6040516110d09190612616565b60405180910390f35b6110f360048036038101906110ee91906125dc565b612343565b6040516111009190612616565b60405180910390f35b611123600480360381019061111e91906125dc565b61237c565b6040516111309190612616565b60405180910390f35b611153600480360381019061114e91906125dc565b6123b6565b6040516111609190612616565b60405180910390f35b611183600480360381019061117e919061276b565b6123f4565b6040516111909190612812565b60405180910390f35b6111b360048036038101906111ae91906125dc565b612460565b6040516111c09190612616565b60405180910390f35b6111e360048036038101906111de91906125dc565b612499565b6040516111f09190612616565b60405180910390f35b611213600480360381019061120e91906125dc565b6124d4565b6040516112209190612616565b60405180910390f35b611243600480360381019061123e919061276b565b61250f565b60405161125091906129d0565b60405180910390f35b611273600480360381019061126e91906125dc565b61253e565b6040516112809190612616565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a16565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a16565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a73565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a73565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b00565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b68565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a73565b9250508190555043600154611e669190612bb3565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d8d565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f5f61010073ffffffffffffffffffffffffffffffffffffffff168460405161215d9190612e94565b5f60405180830381855afa9150503d805f8114612195576040519150601f19603f3d011682016040523d82523d5f602084013e61219a565b606091505b5091509150816121ad576121ac612eaa565b5b6001818060200190518101906121c39190612eeb565b1492505050919050565b5f6121d6611795565b505f65deadbeef003590505f5f5b848110156121fb575f3591506001810190506121e4565b505080915050919050565b5f61220f611795565b505f65deadbeef005590505f5b8381101561223257815f5560018101905061221c565b5080915050919050565b5f612245611795565b505f65deadbeef001890505f5b8381101561226a575f82189150600181019050612252565b5080915050919050565b5f61227d611795565b505f65deadbeef000390505f5b838110156122a2575f8203915060018101905061228a565b5080915050919050565b5f6122b5611795565b505f65deadbeef000790505f5b838110156122fa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c2565b5080915050919050565b5f61230d611795565b505f65deadbeef00a29050806010525f5b838110156123395760028160066010a260018101905061231e565b5080915050919050565b5f61234c611795565b505f65deadbeef000a90505f5b83811015612372576001820a9150600181019050612359565b5080915050919050565b5f612385611795565b505f65deadbeef001490505f5f5b848110156123ab578283149150600181019050612393565b505080915050919050565b5f6123bf611795565b505f65deadbeef004090505f600143035f5b858110156123e857814092506001810190506123d1565b50505080915050919050565b6060608082511461243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243190612b00565b60405180910390fd5b5f6006905060208301835160408482845f875af180612457575f5ffd5b50505050919050565b5f612469611795565b505f65deadbeef001590505f5f5b8481101561248e5782159150600181019050612477565b505080915050919050565b5f6124a2611795565b505f65deadbeef001290505f5f5b848110156124c9578260011291506001810190506124b0565b505080915050919050565b5f6124dd611795565b505f65deadbeef003b90505f305f5b8581101561250357813b92506001810190506124ec565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612530575f5ffd5b815195505050505050919050565b5f612547611795565b505f65deadbeef000990505f5b8381101561258e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612554565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125bb816125a9565b81146125c5575f5ffd5b50565b5f813590506125d6816125b2565b92915050565b5f602082840312156125f1576125f06125a1565b5b5f6125fe848285016125c8565b91505092915050565b612610816125a9565b82525050565b5f6020820190506126295f830184612607565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61267d82612637565b810181811067ffffffffffffffff8211171561269c5761269b612647565b5b80604052505050565b5f6126ae612598565b90506126ba8282612674565b919050565b5f67ffffffffffffffff8211156126d9576126d8612647565b5b6126e282612637565b9050602081019050919050565b828183375f83830152505050565b5f61270f61270a846126bf565b6126a5565b90508281526020810184848401111561272b5761272a612633565b5b6127368482856126ef565b509392505050565b5f82601f8301126127525761275161262f565b5b81356127628482602086016126fd565b91505092915050565b5f602082840312156127805761277f6125a1565b5b5f82013567ffffffffffffffff81111561279d5761279c6125a5565b5b6127a98482850161273e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e4826127b2565b6127ee81856127bc565b93506127fe8185602086016127cc565b61280781612637565b840191505092915050565b5f6020820190508181035f83015261282a81846127da565b905092915050565b5f819050919050565b61284481612832565b82525050565b5f60208201905061285d5f83018461283b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288c82612863565b9050919050565b61289c81612882565b82525050565b5f6020820190506128b55f830184612893565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128d8576128d761262f565b5b8235905067ffffffffffffffff8111156128f5576128f46128bb565b5b602083019150836001820283011115612911576129106128bf565b5b9250929050565b5f5f6020838503121561292e5761292d6125a1565b5b5f83013567ffffffffffffffff81111561294b5761294a6125a5565b5b612957858286016128c3565b92509250509250929050565b5f8115159050919050565b61297781612963565b82525050565b5f6020820190506129905f83018461296e565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129ca81612996565b82525050565b5f6020820190506129e35f8301846129c1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a2d57607f821691505b602082108103612a4057612a3f6129e9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7d826125a9565b9150612a88836125a9565b9250828201905080821115612aa057612a9f612a46565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aea601483612aa6565b9150612af582612ab6565b602082019050919050565b5f6020820190508181035f830152612b1781612ade565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b52601a83612aa6565b9150612b5d82612b1e565b602082019050919050565b5f6020820190508181035f830152612b7f81612b46565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bbd826125a9565b9150612bc8836125a9565b925082612bd857612bd7612b86565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c0e565b612c538683612c0e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c8e612c89612c84846125a9565b612c6b565b6125a9565b9050919050565b5f819050919050565b612ca783612c74565b612cbb612cb382612c95565b848454612c1a565b825550505050565b5f5f905090565b612cd2612cc3565b612cdd818484612c9e565b505050565b5b81811015612d0057612cf55f82612cca565b600181019050612ce3565b5050565b601f821115612d4557612d1681612bed565b612d1f84612bff565b81016020851015612d2e578190505b612d42612d3a85612bff565b830182612ce2565b50505b505050565b5f82821c905092915050565b5f612d655f1984600802612d4a565b1980831691505092915050565b5f612d7d8383612d56565b9150826002028217905092915050565b612d978383612be3565b67ffffffffffffffff811115612db057612daf612647565b5b612dba8254612a16565b612dc5828285612d04565b5f601f831160018114612df2575f8415612de0578287013590505b612dea8582612d72565b865550612e51565b601f198416612e0086612bed565b5f5b82811015612e2757848901358255600182019150602085019450602081019050612e02565b86831015612e445784890135612e40601f891682612d56565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e6e826127b2565b612e788185612e5a565b9350612e888185602086016127cc565b80840191505092915050565b5f612e9f8284612e64565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612ee5816125b2565b92915050565b5f60208284031215612f0057612eff6125a1565b5b5f612f0d84828501612ed7565b9150509291505056fea26469706673582212201293a76772d1a22df7157d651777276f6dfb3d30be3e2d7c6b1449884a79f70064736f6c634300081b0033 \ No newline at end of file +6080604052348015600e575f5ffd5b50612f518061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125e1565b611289565b604051610488919061261b565b60405180910390f35b6104ab60048036038101906104a691906125e1565b6112c1565b6040516104b8919061261b565b60405180910390f35b6104db60048036038101906104d691906125e1565b6112f9565b6040516104e8919061261b565b60405180910390f35b61050b60048036038101906105069190612770565b61132f565b6040516105189190612817565b60405180910390f35b61053b600480360381019061053691906125e1565b611353565b604051610548919061261b565b60405180910390f35b61055961138b565b604051610566919061261b565b60405180910390f35b610589600480360381019061058491906125e1565b611393565b604051610596919061261b565b60405180910390f35b6105b960048036038101906105b491906125e1565b6113cb565b6040516105c6919061261b565b60405180910390f35b6105e960048036038101906105e491906125e1565b611403565b6040516105f6919061261b565b60405180910390f35b610619600480360381019061061491906125e1565b61145b565b604051610626919061261b565b60405180910390f35b610649600480360381019061064491906125e1565b611496565b604051610656919061261b565b60405180910390f35b610679600480360381019061067491906125e1565b61151f565b604051610686919061261b565b60405180910390f35b6106a960048036038101906106a491906125e1565b611562565b6040516106b6919061261b565b60405180910390f35b6106d960048036038101906106d491906125e1565b61159c565b6040516106e6919061261b565b60405180910390f35b610709600480360381019061070491906125e1565b6115d4565b604051610716919061261b565b60405180910390f35b610739600480360381019061073491906125e1565b61160c565b604051610746919061261b565b60405180910390f35b610769600480360381019061076491906125e1565b611647565b604051610776919061261b565b60405180910390f35b610799600480360381019061079491906125e1565b61167f565b6040516107a6919061261b565b60405180910390f35b6107c960048036038101906107c491906125e1565b6116b7565b6040516107d6919061261b565b60405180910390f35b6107f960048036038101906107f491906125e1565b6116ef565b6040516108069190612817565b60405180910390f35b610817611795565b604051610824919061261b565b60405180910390f35b610847600480360381019061084291906125e1565b6117b0565b604051610854919061261b565b60405180910390f35b610877600480360381019061087291906125e1565b6117e9565b604051610884919061261b565b60405180910390f35b6108a760048036038101906108a291906125e1565b611821565b6040516108b4919061261b565b60405180910390f35b6108d760048036038101906108d291906125e1565b61185d565b6040516108e4919061261b565b60405180910390f35b610907600480360381019061090291906125e1565b611895565b604051610914919061261b565b60405180910390f35b610937600480360381019061093291906125e1565b6118cf565b604051610944919061261b565b60405180910390f35b610967600480360381019061096291906125e1565b611907565b604051610974919061261b565b60405180910390f35b610997600480360381019061099291906125e1565b611946565b6040516109a4919061261b565b60405180910390f35b6109c760048036038101906109c29190612770565b61197e565b6040516109d49190612817565b60405180910390f35b6109f760048036038101906109f29190612770565b6119ad565b604051610a04919061284f565b60405180910390f35b610a156119d6565b604051610a22919061261b565b60405180910390f35b610a456004803603810190610a4091906125e1565b611a10565b604051610a52919061261b565b60405180910390f35b610a756004803603810190610a7091906125e1565b611a4b565b604051610a82919061261b565b60405180910390f35b610aa56004803603810190610aa091906125e1565b611a83565b604051610ab2919061261b565b60405180910390f35b610ad56004803603810190610ad091906125e1565b611abe565b604051610ae2919061261b565b60405180910390f35b610b056004803603810190610b0091906125e1565b611af6565b604051610b12919061261b565b60405180910390f35b610b356004803603810190610b3091906125e1565b611b2e565b604051610b42919061261b565b60405180910390f35b610b656004803603810190610b6091906125e1565b611b67565b604051610b72919061261b565b60405180910390f35b610b956004803603810190610b9091906125e1565b611bc0565b604051610ba2919061261b565b60405180910390f35b610bc56004803603810190610bc091906125e1565b611bfa565b604051610bd2919061261b565b60405180910390f35b610bf56004803603810190610bf091906125e1565b611c32565b604051610c02919061261b565b60405180910390f35b610c256004803603810190610c209190612770565b611c7b565b604051610c329190612817565b60405180910390f35b610c556004803603810190610c5091906125e1565b611ce6565b604051610c62919061261b565b60405180910390f35b610c856004803603810190610c8091906125e1565b611d23565b604051610c92919061261b565b60405180910390f35b610cb56004803603810190610cb09190612770565b611d5b565b604051610cc29190612817565b60405180910390f35b610ce56004803603810190610ce09190612770565b611d89565b604051610cf29190612817565b60405180910390f35b610d156004803603810190610d109190612770565b611dad565b604051610d2291906128a7565b60405180910390f35b610d33611e2b565b604051610d40919061261b565b60405180910390f35b610d636004803603810190610d5e91906125e1565b611e74565b604051610d70919061261b565b60405180910390f35b610d936004803603810190610d8e91906125e1565b611eac565b604051610da0919061261b565b60405180910390f35b610dc36004803603810190610dbe91906125e1565b611ee5565b604051610dd0919061261b565b60405180910390f35b610df36004803603810190610dee919061291d565b611f1d565b604051610e00919061261b565b60405180910390f35b610e236004803603810190610e1e91906125e1565b611f67565b604051610e30919061261b565b60405180910390f35b610e536004803603810190610e4e91906125e1565b611f9f565b604051610e60919061261b565b60405180910390f35b610e836004803603810190610e7e91906125e1565b611fd7565b604051610e90919061261b565b60405180910390f35b610eb36004803603810190610eae91906125e1565b61200f565b604051610ec0919061261b565b60405180910390f35b610ee36004803603810190610ede91906125e1565b612047565b604051610ef0919061261b565b60405180910390f35b610f136004803603810190610f0e91906125e1565b612088565b604051610f20919061261b565b60405180910390f35b610f436004803603810190610f3e91906125e1565b6120c1565b604051610f50919061261b565b60405180910390f35b610f736004803603810190610f6e91906125e1565b6120f9565b604051610f80919061261b565b60405180910390f35b610fa36004803603810190610f9e9190612770565b612133565b604051610fb09190612982565b60405180910390f35b610fd36004803603810190610fce91906125e1565b6121d2565b604051610fe0919061261b565b60405180910390f35b6110036004803603810190610ffe91906125e1565b61220b565b604051611010919061261b565b60405180910390f35b611033600480360381019061102e91906125e1565b612241565b604051611040919061261b565b60405180910390f35b611063600480360381019061105e91906125e1565b612279565b604051611070919061261b565b60405180910390f35b611093600480360381019061108e91906125e1565b6122b1565b6040516110a0919061261b565b60405180910390f35b6110c360048036038101906110be91906125e1565b612309565b6040516110d0919061261b565b60405180910390f35b6110f360048036038101906110ee91906125e1565b612348565b604051611100919061261b565b60405180910390f35b611123600480360381019061111e91906125e1565b612381565b604051611130919061261b565b60405180910390f35b611153600480360381019061114e91906125e1565b6123bb565b604051611160919061261b565b60405180910390f35b611183600480360381019061117e9190612770565b6123f9565b6040516111909190612817565b60405180910390f35b6111b360048036038101906111ae91906125e1565b612465565b6040516111c0919061261b565b60405180910390f35b6111e360048036038101906111de91906125e1565b61249e565b6040516111f0919061261b565b60405180910390f35b611213600480360381019061120e91906125e1565b6124d9565b604051611220919061261b565b60405180910390f35b611243600480360381019061123e9190612770565b612514565b60405161125091906129d5565b60405180910390f35b611273600480360381019061126e91906125e1565b612543565b604051611280919061261b565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a1b565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a1b565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a78565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a78565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b05565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b6d565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a78565b9250508190555043600154611e669190612bb8565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d92565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f61010090505f5f8273ffffffffffffffffffffffffffffffffffffffff16856040516121619190612e99565b5f60405180830381855afa9150503d805f8114612199576040519150601f19603f3d011682016040523d82523d5f602084013e61219e565b606091505b5091509150816121b1576121b0612eaf565b5b6001818060200190518101906121c79190612ef0565b149350505050919050565b5f6121db611795565b505f65deadbeef003590505f5f5b84811015612200575f3591506001810190506121e9565b505080915050919050565b5f612214611795565b505f65deadbeef005590505f5b8381101561223757815f55600181019050612221565b5080915050919050565b5f61224a611795565b505f65deadbeef001890505f5b8381101561226f575f82189150600181019050612257565b5080915050919050565b5f612282611795565b505f65deadbeef000390505f5b838110156122a7575f8203915060018101905061228f565b5080915050919050565b5f6122ba611795565b505f65deadbeef000790505f5b838110156122ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c7565b5080915050919050565b5f612312611795565b505f65deadbeef00a29050806010525f5b8381101561233e5760028160066010a2600181019050612323565b5080915050919050565b5f612351611795565b505f65deadbeef000a90505f5b83811015612377576001820a915060018101905061235e565b5080915050919050565b5f61238a611795565b505f65deadbeef001490505f5f5b848110156123b0578283149150600181019050612398565b505080915050919050565b5f6123c4611795565b505f65deadbeef004090505f600143035f5b858110156123ed57814092506001810190506123d6565b50505080915050919050565b6060608082511461243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690612b05565b60405180910390fd5b5f6006905060208301835160408482845f875af18061245c575f5ffd5b50505050919050565b5f61246e611795565b505f65deadbeef001590505f5f5b84811015612493578215915060018101905061247c565b505080915050919050565b5f6124a7611795565b505f65deadbeef001290505f5f5b848110156124ce578260011291506001810190506124b5565b505080915050919050565b5f6124e2611795565b505f65deadbeef003b90505f305f5b8581101561250857813b92506001810190506124f1565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612535575f5ffd5b815195505050505050919050565b5f61254c611795565b505f65deadbeef000990505f5b83811015612593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612559565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125c0816125ae565b81146125ca575f5ffd5b50565b5f813590506125db816125b7565b92915050565b5f602082840312156125f6576125f56125a6565b5b5f612603848285016125cd565b91505092915050565b612615816125ae565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126828261263c565b810181811067ffffffffffffffff821117156126a1576126a061264c565b5b80604052505050565b5f6126b361259d565b90506126bf8282612679565b919050565b5f67ffffffffffffffff8211156126de576126dd61264c565b5b6126e78261263c565b9050602081019050919050565b828183375f83830152505050565b5f61271461270f846126c4565b6126aa565b9050828152602081018484840111156127305761272f612638565b5b61273b8482856126f4565b509392505050565b5f82601f83011261275757612756612634565b5b8135612767848260208601612702565b91505092915050565b5f60208284031215612785576127846125a6565b5b5f82013567ffffffffffffffff8111156127a2576127a16125aa565b5b6127ae84828501612743565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e9826127b7565b6127f381856127c1565b93506128038185602086016127d1565b61280c8161263c565b840191505092915050565b5f6020820190508181035f83015261282f81846127df565b905092915050565b5f819050919050565b61284981612837565b82525050565b5f6020820190506128625f830184612840565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61289182612868565b9050919050565b6128a181612887565b82525050565b5f6020820190506128ba5f830184612898565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128dd576128dc612634565b5b8235905067ffffffffffffffff8111156128fa576128f96128c0565b5b602083019150836001820283011115612916576129156128c4565b5b9250929050565b5f5f60208385031215612933576129326125a6565b5b5f83013567ffffffffffffffff8111156129505761294f6125aa565b5b61295c858286016128c8565b92509250509250929050565b5f8115159050919050565b61297c81612968565b82525050565b5f6020820190506129955f830184612973565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129cf8161299b565b82525050565b5f6020820190506129e85f8301846129c6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a3257607f821691505b602082108103612a4557612a446129ee565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a82826125ae565b9150612a8d836125ae565b9250828201905080821115612aa557612aa4612a4b565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aef601483612aab565b9150612afa82612abb565b602082019050919050565b5f6020820190508181035f830152612b1c81612ae3565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b57601a83612aab565b9150612b6282612b23565b602082019050919050565b5f6020820190508181035f830152612b8481612b4b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bc2826125ae565b9150612bcd836125ae565b925082612bdd57612bdc612b8b565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c13565b612c588683612c13565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c93612c8e612c89846125ae565b612c70565b6125ae565b9050919050565b5f819050919050565b612cac83612c79565b612cc0612cb882612c9a565b848454612c1f565b825550505050565b5f5f905090565b612cd7612cc8565b612ce2818484612ca3565b505050565b5b81811015612d0557612cfa5f82612ccf565b600181019050612ce8565b5050565b601f821115612d4a57612d1b81612bf2565b612d2484612c04565b81016020851015612d33578190505b612d47612d3f85612c04565b830182612ce7565b50505b505050565b5f82821c905092915050565b5f612d6a5f1984600802612d4f565b1980831691505092915050565b5f612d828383612d5b565b9150826002028217905092915050565b612d9c8383612be8565b67ffffffffffffffff811115612db557612db461264c565b5b612dbf8254612a1b565b612dca828285612d09565b5f601f831160018114612df7575f8415612de5578287013590505b612def8582612d77565b865550612e56565b601f198416612e0586612bf2565b5f5b82811015612e2c57848901358255600182019150602085019450602081019050612e07565b86831015612e495784890135612e45601f891682612d5b565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e73826127b7565b612e7d8185612e5f565b9350612e8d8185602086016127d1565b80840191505092915050565b5f612ea48284612e69565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612eea816125b7565b92915050565b5f60208284031215612f0557612f046125a6565b5b5f612f1284828501612edc565b9150509291505056fea2646970667358221220c0cbab4ec622f12b4d85d14cc769a8764ec69eede015891d77bb2943301baeb264736f6c634300081b0033 \ No newline at end of file diff --git a/bindings/tester/loadTester.go b/bindings/tester/loadTester.go index b4be65679..2af5bd020 100644 --- a/bindings/tester/loadTester.go +++ b/bindings/tester/loadTester.go @@ -32,7 +32,7 @@ var ( // LoadTesterMetaData contains all meta data concerning the LoadTester contract. var LoadTesterMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dumpster\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCallCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inc\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loopBlockHashUntilLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loopUntilLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"trash\",\"type\":\"bytes\"}],\"name\":\"store\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADDMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADDRESS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testAND\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBASEFEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBLOCKHASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBYTE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testBlake2f\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATACOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATALOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATASIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLVALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCHAINID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCODECOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCODESIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCOINBASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testDIFFICULTY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testDIV\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECAdd\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECMul\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECPairing\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECRecover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEQ\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEXP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEXTCODESIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGASLIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGASPRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testISZERO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testIdentity\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG0\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG4\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMLOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSTORE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSTORE8\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMUL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMULMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testModExp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testNOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testNUMBER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testORIGIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testP256Verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testRETURNDATACOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testRETURNDATASIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testRipemd160\",\"outputs\":[{\"internalType\":\"bytes20\",\"name\":\"result\",\"type\":\"bytes20\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSAR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSDIV\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSELFBALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSGT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testSHA256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHA3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSIGNEXTEND\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSLOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSLT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSSTORE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSUB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testTIMESTAMP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testXOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600e575f5ffd5b50612f4c8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125dc565b611289565b6040516104889190612616565b60405180910390f35b6104ab60048036038101906104a691906125dc565b6112c1565b6040516104b89190612616565b60405180910390f35b6104db60048036038101906104d691906125dc565b6112f9565b6040516104e89190612616565b60405180910390f35b61050b6004803603810190610506919061276b565b61132f565b6040516105189190612812565b60405180910390f35b61053b600480360381019061053691906125dc565b611353565b6040516105489190612616565b60405180910390f35b61055961138b565b6040516105669190612616565b60405180910390f35b610589600480360381019061058491906125dc565b611393565b6040516105969190612616565b60405180910390f35b6105b960048036038101906105b491906125dc565b6113cb565b6040516105c69190612616565b60405180910390f35b6105e960048036038101906105e491906125dc565b611403565b6040516105f69190612616565b60405180910390f35b610619600480360381019061061491906125dc565b61145b565b6040516106269190612616565b60405180910390f35b610649600480360381019061064491906125dc565b611496565b6040516106569190612616565b60405180910390f35b610679600480360381019061067491906125dc565b61151f565b6040516106869190612616565b60405180910390f35b6106a960048036038101906106a491906125dc565b611562565b6040516106b69190612616565b60405180910390f35b6106d960048036038101906106d491906125dc565b61159c565b6040516106e69190612616565b60405180910390f35b610709600480360381019061070491906125dc565b6115d4565b6040516107169190612616565b60405180910390f35b610739600480360381019061073491906125dc565b61160c565b6040516107469190612616565b60405180910390f35b610769600480360381019061076491906125dc565b611647565b6040516107769190612616565b60405180910390f35b610799600480360381019061079491906125dc565b61167f565b6040516107a69190612616565b60405180910390f35b6107c960048036038101906107c491906125dc565b6116b7565b6040516107d69190612616565b60405180910390f35b6107f960048036038101906107f491906125dc565b6116ef565b6040516108069190612812565b60405180910390f35b610817611795565b6040516108249190612616565b60405180910390f35b610847600480360381019061084291906125dc565b6117b0565b6040516108549190612616565b60405180910390f35b610877600480360381019061087291906125dc565b6117e9565b6040516108849190612616565b60405180910390f35b6108a760048036038101906108a291906125dc565b611821565b6040516108b49190612616565b60405180910390f35b6108d760048036038101906108d291906125dc565b61185d565b6040516108e49190612616565b60405180910390f35b610907600480360381019061090291906125dc565b611895565b6040516109149190612616565b60405180910390f35b610937600480360381019061093291906125dc565b6118cf565b6040516109449190612616565b60405180910390f35b610967600480360381019061096291906125dc565b611907565b6040516109749190612616565b60405180910390f35b610997600480360381019061099291906125dc565b611946565b6040516109a49190612616565b60405180910390f35b6109c760048036038101906109c2919061276b565b61197e565b6040516109d49190612812565b60405180910390f35b6109f760048036038101906109f2919061276b565b6119ad565b604051610a04919061284a565b60405180910390f35b610a156119d6565b604051610a229190612616565b60405180910390f35b610a456004803603810190610a4091906125dc565b611a10565b604051610a529190612616565b60405180910390f35b610a756004803603810190610a7091906125dc565b611a4b565b604051610a829190612616565b60405180910390f35b610aa56004803603810190610aa091906125dc565b611a83565b604051610ab29190612616565b60405180910390f35b610ad56004803603810190610ad091906125dc565b611abe565b604051610ae29190612616565b60405180910390f35b610b056004803603810190610b0091906125dc565b611af6565b604051610b129190612616565b60405180910390f35b610b356004803603810190610b3091906125dc565b611b2e565b604051610b429190612616565b60405180910390f35b610b656004803603810190610b6091906125dc565b611b67565b604051610b729190612616565b60405180910390f35b610b956004803603810190610b9091906125dc565b611bc0565b604051610ba29190612616565b60405180910390f35b610bc56004803603810190610bc091906125dc565b611bfa565b604051610bd29190612616565b60405180910390f35b610bf56004803603810190610bf091906125dc565b611c32565b604051610c029190612616565b60405180910390f35b610c256004803603810190610c20919061276b565b611c7b565b604051610c329190612812565b60405180910390f35b610c556004803603810190610c5091906125dc565b611ce6565b604051610c629190612616565b60405180910390f35b610c856004803603810190610c8091906125dc565b611d23565b604051610c929190612616565b60405180910390f35b610cb56004803603810190610cb0919061276b565b611d5b565b604051610cc29190612812565b60405180910390f35b610ce56004803603810190610ce0919061276b565b611d89565b604051610cf29190612812565b60405180910390f35b610d156004803603810190610d10919061276b565b611dad565b604051610d2291906128a2565b60405180910390f35b610d33611e2b565b604051610d409190612616565b60405180910390f35b610d636004803603810190610d5e91906125dc565b611e74565b604051610d709190612616565b60405180910390f35b610d936004803603810190610d8e91906125dc565b611eac565b604051610da09190612616565b60405180910390f35b610dc36004803603810190610dbe91906125dc565b611ee5565b604051610dd09190612616565b60405180910390f35b610df36004803603810190610dee9190612918565b611f1d565b604051610e009190612616565b60405180910390f35b610e236004803603810190610e1e91906125dc565b611f67565b604051610e309190612616565b60405180910390f35b610e536004803603810190610e4e91906125dc565b611f9f565b604051610e609190612616565b60405180910390f35b610e836004803603810190610e7e91906125dc565b611fd7565b604051610e909190612616565b60405180910390f35b610eb36004803603810190610eae91906125dc565b61200f565b604051610ec09190612616565b60405180910390f35b610ee36004803603810190610ede91906125dc565b612047565b604051610ef09190612616565b60405180910390f35b610f136004803603810190610f0e91906125dc565b612088565b604051610f209190612616565b60405180910390f35b610f436004803603810190610f3e91906125dc565b6120c1565b604051610f509190612616565b60405180910390f35b610f736004803603810190610f6e91906125dc565b6120f9565b604051610f809190612616565b60405180910390f35b610fa36004803603810190610f9e919061276b565b612133565b604051610fb0919061297d565b60405180910390f35b610fd36004803603810190610fce91906125dc565b6121cd565b604051610fe09190612616565b60405180910390f35b6110036004803603810190610ffe91906125dc565b612206565b6040516110109190612616565b60405180910390f35b611033600480360381019061102e91906125dc565b61223c565b6040516110409190612616565b60405180910390f35b611063600480360381019061105e91906125dc565b612274565b6040516110709190612616565b60405180910390f35b611093600480360381019061108e91906125dc565b6122ac565b6040516110a09190612616565b60405180910390f35b6110c360048036038101906110be91906125dc565b612304565b6040516110d09190612616565b60405180910390f35b6110f360048036038101906110ee91906125dc565b612343565b6040516111009190612616565b60405180910390f35b611123600480360381019061111e91906125dc565b61237c565b6040516111309190612616565b60405180910390f35b611153600480360381019061114e91906125dc565b6123b6565b6040516111609190612616565b60405180910390f35b611183600480360381019061117e919061276b565b6123f4565b6040516111909190612812565b60405180910390f35b6111b360048036038101906111ae91906125dc565b612460565b6040516111c09190612616565b60405180910390f35b6111e360048036038101906111de91906125dc565b612499565b6040516111f09190612616565b60405180910390f35b611213600480360381019061120e91906125dc565b6124d4565b6040516112209190612616565b60405180910390f35b611243600480360381019061123e919061276b565b61250f565b60405161125091906129d0565b60405180910390f35b611273600480360381019061126e91906125dc565b61253e565b6040516112809190612616565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a16565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a16565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a73565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a73565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b00565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b68565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a73565b9250508190555043600154611e669190612bb3565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d8d565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f5f61010073ffffffffffffffffffffffffffffffffffffffff168460405161215d9190612e94565b5f60405180830381855afa9150503d805f8114612195576040519150601f19603f3d011682016040523d82523d5f602084013e61219a565b606091505b5091509150816121ad576121ac612eaa565b5b6001818060200190518101906121c39190612eeb565b1492505050919050565b5f6121d6611795565b505f65deadbeef003590505f5f5b848110156121fb575f3591506001810190506121e4565b505080915050919050565b5f61220f611795565b505f65deadbeef005590505f5b8381101561223257815f5560018101905061221c565b5080915050919050565b5f612245611795565b505f65deadbeef001890505f5b8381101561226a575f82189150600181019050612252565b5080915050919050565b5f61227d611795565b505f65deadbeef000390505f5b838110156122a2575f8203915060018101905061228a565b5080915050919050565b5f6122b5611795565b505f65deadbeef000790505f5b838110156122fa577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c2565b5080915050919050565b5f61230d611795565b505f65deadbeef00a29050806010525f5b838110156123395760028160066010a260018101905061231e565b5080915050919050565b5f61234c611795565b505f65deadbeef000a90505f5b83811015612372576001820a9150600181019050612359565b5080915050919050565b5f612385611795565b505f65deadbeef001490505f5f5b848110156123ab578283149150600181019050612393565b505080915050919050565b5f6123bf611795565b505f65deadbeef004090505f600143035f5b858110156123e857814092506001810190506123d1565b50505080915050919050565b6060608082511461243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243190612b00565b60405180910390fd5b5f6006905060208301835160408482845f875af180612457575f5ffd5b50505050919050565b5f612469611795565b505f65deadbeef001590505f5f5b8481101561248e5782159150600181019050612477565b505080915050919050565b5f6124a2611795565b505f65deadbeef001290505f5f5b848110156124c9578260011291506001810190506124b0565b505080915050919050565b5f6124dd611795565b505f65deadbeef003b90505f305f5b8581101561250357813b92506001810190506124ec565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612530575f5ffd5b815195505050505050919050565b5f612547611795565b505f65deadbeef000990505f5b8381101561258e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612554565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125bb816125a9565b81146125c5575f5ffd5b50565b5f813590506125d6816125b2565b92915050565b5f602082840312156125f1576125f06125a1565b5b5f6125fe848285016125c8565b91505092915050565b612610816125a9565b82525050565b5f6020820190506126295f830184612607565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61267d82612637565b810181811067ffffffffffffffff8211171561269c5761269b612647565b5b80604052505050565b5f6126ae612598565b90506126ba8282612674565b919050565b5f67ffffffffffffffff8211156126d9576126d8612647565b5b6126e282612637565b9050602081019050919050565b828183375f83830152505050565b5f61270f61270a846126bf565b6126a5565b90508281526020810184848401111561272b5761272a612633565b5b6127368482856126ef565b509392505050565b5f82601f8301126127525761275161262f565b5b81356127628482602086016126fd565b91505092915050565b5f602082840312156127805761277f6125a1565b5b5f82013567ffffffffffffffff81111561279d5761279c6125a5565b5b6127a98482850161273e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e4826127b2565b6127ee81856127bc565b93506127fe8185602086016127cc565b61280781612637565b840191505092915050565b5f6020820190508181035f83015261282a81846127da565b905092915050565b5f819050919050565b61284481612832565b82525050565b5f60208201905061285d5f83018461283b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288c82612863565b9050919050565b61289c81612882565b82525050565b5f6020820190506128b55f830184612893565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128d8576128d761262f565b5b8235905067ffffffffffffffff8111156128f5576128f46128bb565b5b602083019150836001820283011115612911576129106128bf565b5b9250929050565b5f5f6020838503121561292e5761292d6125a1565b5b5f83013567ffffffffffffffff81111561294b5761294a6125a5565b5b612957858286016128c3565b92509250509250929050565b5f8115159050919050565b61297781612963565b82525050565b5f6020820190506129905f83018461296e565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129ca81612996565b82525050565b5f6020820190506129e35f8301846129c1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a2d57607f821691505b602082108103612a4057612a3f6129e9565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7d826125a9565b9150612a88836125a9565b9250828201905080821115612aa057612a9f612a46565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aea601483612aa6565b9150612af582612ab6565b602082019050919050565b5f6020820190508181035f830152612b1781612ade565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b52601a83612aa6565b9150612b5d82612b1e565b602082019050919050565b5f6020820190508181035f830152612b7f81612b46565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bbd826125a9565b9150612bc8836125a9565b925082612bd857612bd7612b86565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c0e565b612c538683612c0e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c8e612c89612c84846125a9565b612c6b565b6125a9565b9050919050565b5f819050919050565b612ca783612c74565b612cbb612cb382612c95565b848454612c1a565b825550505050565b5f5f905090565b612cd2612cc3565b612cdd818484612c9e565b505050565b5b81811015612d0057612cf55f82612cca565b600181019050612ce3565b5050565b601f821115612d4557612d1681612bed565b612d1f84612bff565b81016020851015612d2e578190505b612d42612d3a85612bff565b830182612ce2565b50505b505050565b5f82821c905092915050565b5f612d655f1984600802612d4a565b1980831691505092915050565b5f612d7d8383612d56565b9150826002028217905092915050565b612d978383612be3565b67ffffffffffffffff811115612db057612daf612647565b5b612dba8254612a16565b612dc5828285612d04565b5f601f831160018114612df2575f8415612de0578287013590505b612dea8582612d72565b865550612e51565b601f198416612e0086612bed565b5f5b82811015612e2757848901358255600182019150602085019450602081019050612e02565b86831015612e445784890135612e40601f891682612d56565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e6e826127b2565b612e788185612e5a565b9350612e888185602086016127cc565b80840191505092915050565b5f612e9f8284612e64565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612ee5816125b2565b92915050565b5f60208284031215612f0057612eff6125a1565b5b5f612f0d84828501612ed7565b9150509291505056fea26469706673582212201293a76772d1a22df7157d651777276f6dfb3d30be3e2d7c6b1449884a79f70064736f6c634300081b0033", + Bin: "0x6080604052348015600e575f5ffd5b50612f518061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125e1565b611289565b604051610488919061261b565b60405180910390f35b6104ab60048036038101906104a691906125e1565b6112c1565b6040516104b8919061261b565b60405180910390f35b6104db60048036038101906104d691906125e1565b6112f9565b6040516104e8919061261b565b60405180910390f35b61050b60048036038101906105069190612770565b61132f565b6040516105189190612817565b60405180910390f35b61053b600480360381019061053691906125e1565b611353565b604051610548919061261b565b60405180910390f35b61055961138b565b604051610566919061261b565b60405180910390f35b610589600480360381019061058491906125e1565b611393565b604051610596919061261b565b60405180910390f35b6105b960048036038101906105b491906125e1565b6113cb565b6040516105c6919061261b565b60405180910390f35b6105e960048036038101906105e491906125e1565b611403565b6040516105f6919061261b565b60405180910390f35b610619600480360381019061061491906125e1565b61145b565b604051610626919061261b565b60405180910390f35b610649600480360381019061064491906125e1565b611496565b604051610656919061261b565b60405180910390f35b610679600480360381019061067491906125e1565b61151f565b604051610686919061261b565b60405180910390f35b6106a960048036038101906106a491906125e1565b611562565b6040516106b6919061261b565b60405180910390f35b6106d960048036038101906106d491906125e1565b61159c565b6040516106e6919061261b565b60405180910390f35b610709600480360381019061070491906125e1565b6115d4565b604051610716919061261b565b60405180910390f35b610739600480360381019061073491906125e1565b61160c565b604051610746919061261b565b60405180910390f35b610769600480360381019061076491906125e1565b611647565b604051610776919061261b565b60405180910390f35b610799600480360381019061079491906125e1565b61167f565b6040516107a6919061261b565b60405180910390f35b6107c960048036038101906107c491906125e1565b6116b7565b6040516107d6919061261b565b60405180910390f35b6107f960048036038101906107f491906125e1565b6116ef565b6040516108069190612817565b60405180910390f35b610817611795565b604051610824919061261b565b60405180910390f35b610847600480360381019061084291906125e1565b6117b0565b604051610854919061261b565b60405180910390f35b610877600480360381019061087291906125e1565b6117e9565b604051610884919061261b565b60405180910390f35b6108a760048036038101906108a291906125e1565b611821565b6040516108b4919061261b565b60405180910390f35b6108d760048036038101906108d291906125e1565b61185d565b6040516108e4919061261b565b60405180910390f35b610907600480360381019061090291906125e1565b611895565b604051610914919061261b565b60405180910390f35b610937600480360381019061093291906125e1565b6118cf565b604051610944919061261b565b60405180910390f35b610967600480360381019061096291906125e1565b611907565b604051610974919061261b565b60405180910390f35b610997600480360381019061099291906125e1565b611946565b6040516109a4919061261b565b60405180910390f35b6109c760048036038101906109c29190612770565b61197e565b6040516109d49190612817565b60405180910390f35b6109f760048036038101906109f29190612770565b6119ad565b604051610a04919061284f565b60405180910390f35b610a156119d6565b604051610a22919061261b565b60405180910390f35b610a456004803603810190610a4091906125e1565b611a10565b604051610a52919061261b565b60405180910390f35b610a756004803603810190610a7091906125e1565b611a4b565b604051610a82919061261b565b60405180910390f35b610aa56004803603810190610aa091906125e1565b611a83565b604051610ab2919061261b565b60405180910390f35b610ad56004803603810190610ad091906125e1565b611abe565b604051610ae2919061261b565b60405180910390f35b610b056004803603810190610b0091906125e1565b611af6565b604051610b12919061261b565b60405180910390f35b610b356004803603810190610b3091906125e1565b611b2e565b604051610b42919061261b565b60405180910390f35b610b656004803603810190610b6091906125e1565b611b67565b604051610b72919061261b565b60405180910390f35b610b956004803603810190610b9091906125e1565b611bc0565b604051610ba2919061261b565b60405180910390f35b610bc56004803603810190610bc091906125e1565b611bfa565b604051610bd2919061261b565b60405180910390f35b610bf56004803603810190610bf091906125e1565b611c32565b604051610c02919061261b565b60405180910390f35b610c256004803603810190610c209190612770565b611c7b565b604051610c329190612817565b60405180910390f35b610c556004803603810190610c5091906125e1565b611ce6565b604051610c62919061261b565b60405180910390f35b610c856004803603810190610c8091906125e1565b611d23565b604051610c92919061261b565b60405180910390f35b610cb56004803603810190610cb09190612770565b611d5b565b604051610cc29190612817565b60405180910390f35b610ce56004803603810190610ce09190612770565b611d89565b604051610cf29190612817565b60405180910390f35b610d156004803603810190610d109190612770565b611dad565b604051610d2291906128a7565b60405180910390f35b610d33611e2b565b604051610d40919061261b565b60405180910390f35b610d636004803603810190610d5e91906125e1565b611e74565b604051610d70919061261b565b60405180910390f35b610d936004803603810190610d8e91906125e1565b611eac565b604051610da0919061261b565b60405180910390f35b610dc36004803603810190610dbe91906125e1565b611ee5565b604051610dd0919061261b565b60405180910390f35b610df36004803603810190610dee919061291d565b611f1d565b604051610e00919061261b565b60405180910390f35b610e236004803603810190610e1e91906125e1565b611f67565b604051610e30919061261b565b60405180910390f35b610e536004803603810190610e4e91906125e1565b611f9f565b604051610e60919061261b565b60405180910390f35b610e836004803603810190610e7e91906125e1565b611fd7565b604051610e90919061261b565b60405180910390f35b610eb36004803603810190610eae91906125e1565b61200f565b604051610ec0919061261b565b60405180910390f35b610ee36004803603810190610ede91906125e1565b612047565b604051610ef0919061261b565b60405180910390f35b610f136004803603810190610f0e91906125e1565b612088565b604051610f20919061261b565b60405180910390f35b610f436004803603810190610f3e91906125e1565b6120c1565b604051610f50919061261b565b60405180910390f35b610f736004803603810190610f6e91906125e1565b6120f9565b604051610f80919061261b565b60405180910390f35b610fa36004803603810190610f9e9190612770565b612133565b604051610fb09190612982565b60405180910390f35b610fd36004803603810190610fce91906125e1565b6121d2565b604051610fe0919061261b565b60405180910390f35b6110036004803603810190610ffe91906125e1565b61220b565b604051611010919061261b565b60405180910390f35b611033600480360381019061102e91906125e1565b612241565b604051611040919061261b565b60405180910390f35b611063600480360381019061105e91906125e1565b612279565b604051611070919061261b565b60405180910390f35b611093600480360381019061108e91906125e1565b6122b1565b6040516110a0919061261b565b60405180910390f35b6110c360048036038101906110be91906125e1565b612309565b6040516110d0919061261b565b60405180910390f35b6110f360048036038101906110ee91906125e1565b612348565b604051611100919061261b565b60405180910390f35b611123600480360381019061111e91906125e1565b612381565b604051611130919061261b565b60405180910390f35b611153600480360381019061114e91906125e1565b6123bb565b604051611160919061261b565b60405180910390f35b611183600480360381019061117e9190612770565b6123f9565b6040516111909190612817565b60405180910390f35b6111b360048036038101906111ae91906125e1565b612465565b6040516111c0919061261b565b60405180910390f35b6111e360048036038101906111de91906125e1565b61249e565b6040516111f0919061261b565b60405180910390f35b611213600480360381019061120e91906125e1565b6124d9565b604051611220919061261b565b60405180910390f35b611243600480360381019061123e9190612770565b612514565b60405161125091906129d5565b60405180910390f35b611273600480360381019061126e91906125e1565b612543565b604051611280919061261b565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a1b565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a1b565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a78565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a78565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b05565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b6d565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a78565b9250508190555043600154611e669190612bb8565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d92565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f61010090505f5f8273ffffffffffffffffffffffffffffffffffffffff16856040516121619190612e99565b5f60405180830381855afa9150503d805f8114612199576040519150601f19603f3d011682016040523d82523d5f602084013e61219e565b606091505b5091509150816121b1576121b0612eaf565b5b6001818060200190518101906121c79190612ef0565b149350505050919050565b5f6121db611795565b505f65deadbeef003590505f5f5b84811015612200575f3591506001810190506121e9565b505080915050919050565b5f612214611795565b505f65deadbeef005590505f5b8381101561223757815f55600181019050612221565b5080915050919050565b5f61224a611795565b505f65deadbeef001890505f5b8381101561226f575f82189150600181019050612257565b5080915050919050565b5f612282611795565b505f65deadbeef000390505f5b838110156122a7575f8203915060018101905061228f565b5080915050919050565b5f6122ba611795565b505f65deadbeef000790505f5b838110156122ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c7565b5080915050919050565b5f612312611795565b505f65deadbeef00a29050806010525f5b8381101561233e5760028160066010a2600181019050612323565b5080915050919050565b5f612351611795565b505f65deadbeef000a90505f5b83811015612377576001820a915060018101905061235e565b5080915050919050565b5f61238a611795565b505f65deadbeef001490505f5f5b848110156123b0578283149150600181019050612398565b505080915050919050565b5f6123c4611795565b505f65deadbeef004090505f600143035f5b858110156123ed57814092506001810190506123d6565b50505080915050919050565b6060608082511461243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690612b05565b60405180910390fd5b5f6006905060208301835160408482845f875af18061245c575f5ffd5b50505050919050565b5f61246e611795565b505f65deadbeef001590505f5f5b84811015612493578215915060018101905061247c565b505080915050919050565b5f6124a7611795565b505f65deadbeef001290505f5f5b848110156124ce578260011291506001810190506124b5565b505080915050919050565b5f6124e2611795565b505f65deadbeef003b90505f305f5b8581101561250857813b92506001810190506124f1565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612535575f5ffd5b815195505050505050919050565b5f61254c611795565b505f65deadbeef000990505f5b83811015612593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612559565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125c0816125ae565b81146125ca575f5ffd5b50565b5f813590506125db816125b7565b92915050565b5f602082840312156125f6576125f56125a6565b5b5f612603848285016125cd565b91505092915050565b612615816125ae565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126828261263c565b810181811067ffffffffffffffff821117156126a1576126a061264c565b5b80604052505050565b5f6126b361259d565b90506126bf8282612679565b919050565b5f67ffffffffffffffff8211156126de576126dd61264c565b5b6126e78261263c565b9050602081019050919050565b828183375f83830152505050565b5f61271461270f846126c4565b6126aa565b9050828152602081018484840111156127305761272f612638565b5b61273b8482856126f4565b509392505050565b5f82601f83011261275757612756612634565b5b8135612767848260208601612702565b91505092915050565b5f60208284031215612785576127846125a6565b5b5f82013567ffffffffffffffff8111156127a2576127a16125aa565b5b6127ae84828501612743565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e9826127b7565b6127f381856127c1565b93506128038185602086016127d1565b61280c8161263c565b840191505092915050565b5f6020820190508181035f83015261282f81846127df565b905092915050565b5f819050919050565b61284981612837565b82525050565b5f6020820190506128625f830184612840565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61289182612868565b9050919050565b6128a181612887565b82525050565b5f6020820190506128ba5f830184612898565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128dd576128dc612634565b5b8235905067ffffffffffffffff8111156128fa576128f96128c0565b5b602083019150836001820283011115612916576129156128c4565b5b9250929050565b5f5f60208385031215612933576129326125a6565b5b5f83013567ffffffffffffffff8111156129505761294f6125aa565b5b61295c858286016128c8565b92509250509250929050565b5f8115159050919050565b61297c81612968565b82525050565b5f6020820190506129955f830184612973565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129cf8161299b565b82525050565b5f6020820190506129e85f8301846129c6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a3257607f821691505b602082108103612a4557612a446129ee565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a82826125ae565b9150612a8d836125ae565b9250828201905080821115612aa557612aa4612a4b565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aef601483612aab565b9150612afa82612abb565b602082019050919050565b5f6020820190508181035f830152612b1c81612ae3565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b57601a83612aab565b9150612b6282612b23565b602082019050919050565b5f6020820190508181035f830152612b8481612b4b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bc2826125ae565b9150612bcd836125ae565b925082612bdd57612bdc612b8b565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c13565b612c588683612c13565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c93612c8e612c89846125ae565b612c70565b6125ae565b9050919050565b5f819050919050565b612cac83612c79565b612cc0612cb882612c9a565b848454612c1f565b825550505050565b5f5f905090565b612cd7612cc8565b612ce2818484612ca3565b505050565b5b81811015612d0557612cfa5f82612ccf565b600181019050612ce8565b5050565b601f821115612d4a57612d1b81612bf2565b612d2484612c04565b81016020851015612d33578190505b612d47612d3f85612c04565b830182612ce7565b50505b505050565b5f82821c905092915050565b5f612d6a5f1984600802612d4f565b1980831691505092915050565b5f612d828383612d5b565b9150826002028217905092915050565b612d9c8383612be8565b67ffffffffffffffff811115612db557612db461264c565b5b612dbf8254612a1b565b612dca828285612d09565b5f601f831160018114612df7575f8415612de5578287013590505b612def8582612d77565b865550612e56565b601f198416612e0586612bf2565b5f5b82811015612e2c57848901358255600182019150602085019450602081019050612e07565b86831015612e495784890135612e45601f891682612d5b565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e73826127b7565b612e7d8185612e5f565b9350612e8d8185602086016127d1565b80840191505092915050565b5f612ea48284612e69565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612eea816125b7565b92915050565b5f60208284031215612f0557612f046125a6565b5b5f612f1284828501612edc565b9150509291505056fea2646970667358221220c0cbab4ec622f12b4d85d14cc769a8764ec69eede015891d77bb2943301baeb264736f6c634300081b0033", } // LoadTesterABI is the input ABI used to generate the binding from. diff --git a/contracts/src/tester/LoadTester.sol b/contracts/src/tester/LoadTester.sol index 4203feee9..6151bc087 100644 --- a/contracts/src/tester/LoadTester.sol +++ b/contracts/src/tester/LoadTester.sol @@ -932,9 +932,9 @@ contract LoadTester { // RIP-7212 Precompile for secp256r1 Curve Support // https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md - address constant VERIFIER = 0x0000000000000000000000000000000000000100; function testP256Verify(bytes memory inputData) public returns (bool) { - (bool success, bytes memory ret) = VERIFIER.staticcall(inputData); + address P256VERIFY_PRECOMPILED_CONTRACT = 0x0000000000000000000000000000000000000100; + (bool success, bytes memory ret) = P256VERIFY_PRECOMPILED_CONTRACT.staticcall(inputData); assert(success); // never reverts, always returns 0 or 1 return abi.decode(ret, (uint256)) == 1; From 582fe56e42a94dc3b29a19f4a0132deb83c61331 Mon Sep 17 00:00:00 2001 From: "jason.huang" <20609724+doutv@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:36:16 +0800 Subject: [PATCH 3/6] use benchmark input from https://github.com/ethereum/go-ethereum/pull/30043/files#diff-b8e213cc8b44bc7d5d5e727524d63e19dd0f21312713ce2471948d1f64db212cR404 --- bindings/tester/LoadTester.abi | 1442 +++++++++++++++++++++++++++++++- bindings/tester/LoadTester.bin | 2 +- bindings/tester/loadTester.go | 4 +- bindings/tester/precompiles.go | 37 +- 4 files changed, 1464 insertions(+), 21 deletions(-) diff --git a/bindings/tester/LoadTester.abi b/bindings/tester/LoadTester.abi index 90fa832b2..76566fcc1 100644 --- a/bindings/tester/LoadTester.abi +++ b/bindings/tester/LoadTester.abi @@ -1 +1,1441 @@ -[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dumpster","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCallCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"loopBlockHashUntilLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"loopUntilLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"trash","type":"bytes"}],"name":"store","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testADD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testADDMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testADDRESS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testAND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBALANCE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBASEFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBLOCKHASH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testBYTE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testBlake2f","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLDATACOPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLDATALOAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLDATASIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCALLVALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCODECOPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCODESIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testCOINBASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testDIFFICULTY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testDIV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECAdd","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECMul","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECPairing","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testECRecover","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testEQ","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testEXP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testEXTCODESIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGASLIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGASPRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testGT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testISZERO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testIdentity","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG0","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLOG4","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testLT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMLOAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMSIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMSTORE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMSTORE8","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMUL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testMULMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testModExp","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testNOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testNUMBER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testORIGIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testP256Verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testRETURNDATACOPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testRETURNDATASIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testRipemd160","outputs":[{"internalType":"bytes20","name":"result","type":"bytes20"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSDIV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSELFBALANCE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSGT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"testSHA256","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSHA3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSHL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSHR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSIGNEXTEND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSLOAD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSLT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSMOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSSTORE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testSUB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testTIMESTAMP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"testXOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file +[ + { + "type": "function", + "name": "dumpster", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getCallCounter", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "inc", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "loopBlockHashUntilLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "loopUntilLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "store", + "inputs": [ + { + "name": "trash", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testADD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testADDMOD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testADDRESS", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testAND", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testBALANCE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testBASEFEE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testBLOCKHASH", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testBYTE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testBlake2f", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCALLDATACOPY", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCALLDATALOAD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCALLDATASIZE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCALLER", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCALLVALUE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCHAINID", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCODECOPY", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCODESIZE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testCOINBASE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testDIFFICULTY", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testDIV", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testECAdd", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testECMul", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testECPairing", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testECRecover", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testEQ", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testEXP", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testEXTCODESIZE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testGAS", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testGASLIMIT", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testGASPRICE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testGT", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testISZERO", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testIdentity", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testLOG0", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testLOG1", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testLOG2", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testLOG3", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testLOG4", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testLT", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMLOAD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMOD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMSIZE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMSTORE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMSTORE8", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMUL", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testMULMOD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testModExp", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testNOT", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testNUMBER", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testOR", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testORIGIN", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testP256Verify", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testRETURNDATACOPY", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testRETURNDATASIZE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testRipemd160", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes20", + "internalType": "bytes20" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSAR", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSDIV", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSELFBALANCE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSGT", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSHA256", + "inputs": [ + { + "name": "inputData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "result", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSHA3", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSHL", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSHR", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSIGNEXTEND", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSLOAD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSLT", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSMOD", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSSTORE", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSUB", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testTIMESTAMP", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testXOR", + "inputs": [ + { + "name": "x", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + } +] diff --git a/bindings/tester/LoadTester.bin b/bindings/tester/LoadTester.bin index 5acd10cb5..d12c3afd2 100644 --- a/bindings/tester/LoadTester.bin +++ b/bindings/tester/LoadTester.bin @@ -1 +1 @@ -6080604052348015600e575f5ffd5b50612f518061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125e1565b611289565b604051610488919061261b565b60405180910390f35b6104ab60048036038101906104a691906125e1565b6112c1565b6040516104b8919061261b565b60405180910390f35b6104db60048036038101906104d691906125e1565b6112f9565b6040516104e8919061261b565b60405180910390f35b61050b60048036038101906105069190612770565b61132f565b6040516105189190612817565b60405180910390f35b61053b600480360381019061053691906125e1565b611353565b604051610548919061261b565b60405180910390f35b61055961138b565b604051610566919061261b565b60405180910390f35b610589600480360381019061058491906125e1565b611393565b604051610596919061261b565b60405180910390f35b6105b960048036038101906105b491906125e1565b6113cb565b6040516105c6919061261b565b60405180910390f35b6105e960048036038101906105e491906125e1565b611403565b6040516105f6919061261b565b60405180910390f35b610619600480360381019061061491906125e1565b61145b565b604051610626919061261b565b60405180910390f35b610649600480360381019061064491906125e1565b611496565b604051610656919061261b565b60405180910390f35b610679600480360381019061067491906125e1565b61151f565b604051610686919061261b565b60405180910390f35b6106a960048036038101906106a491906125e1565b611562565b6040516106b6919061261b565b60405180910390f35b6106d960048036038101906106d491906125e1565b61159c565b6040516106e6919061261b565b60405180910390f35b610709600480360381019061070491906125e1565b6115d4565b604051610716919061261b565b60405180910390f35b610739600480360381019061073491906125e1565b61160c565b604051610746919061261b565b60405180910390f35b610769600480360381019061076491906125e1565b611647565b604051610776919061261b565b60405180910390f35b610799600480360381019061079491906125e1565b61167f565b6040516107a6919061261b565b60405180910390f35b6107c960048036038101906107c491906125e1565b6116b7565b6040516107d6919061261b565b60405180910390f35b6107f960048036038101906107f491906125e1565b6116ef565b6040516108069190612817565b60405180910390f35b610817611795565b604051610824919061261b565b60405180910390f35b610847600480360381019061084291906125e1565b6117b0565b604051610854919061261b565b60405180910390f35b610877600480360381019061087291906125e1565b6117e9565b604051610884919061261b565b60405180910390f35b6108a760048036038101906108a291906125e1565b611821565b6040516108b4919061261b565b60405180910390f35b6108d760048036038101906108d291906125e1565b61185d565b6040516108e4919061261b565b60405180910390f35b610907600480360381019061090291906125e1565b611895565b604051610914919061261b565b60405180910390f35b610937600480360381019061093291906125e1565b6118cf565b604051610944919061261b565b60405180910390f35b610967600480360381019061096291906125e1565b611907565b604051610974919061261b565b60405180910390f35b610997600480360381019061099291906125e1565b611946565b6040516109a4919061261b565b60405180910390f35b6109c760048036038101906109c29190612770565b61197e565b6040516109d49190612817565b60405180910390f35b6109f760048036038101906109f29190612770565b6119ad565b604051610a04919061284f565b60405180910390f35b610a156119d6565b604051610a22919061261b565b60405180910390f35b610a456004803603810190610a4091906125e1565b611a10565b604051610a52919061261b565b60405180910390f35b610a756004803603810190610a7091906125e1565b611a4b565b604051610a82919061261b565b60405180910390f35b610aa56004803603810190610aa091906125e1565b611a83565b604051610ab2919061261b565b60405180910390f35b610ad56004803603810190610ad091906125e1565b611abe565b604051610ae2919061261b565b60405180910390f35b610b056004803603810190610b0091906125e1565b611af6565b604051610b12919061261b565b60405180910390f35b610b356004803603810190610b3091906125e1565b611b2e565b604051610b42919061261b565b60405180910390f35b610b656004803603810190610b6091906125e1565b611b67565b604051610b72919061261b565b60405180910390f35b610b956004803603810190610b9091906125e1565b611bc0565b604051610ba2919061261b565b60405180910390f35b610bc56004803603810190610bc091906125e1565b611bfa565b604051610bd2919061261b565b60405180910390f35b610bf56004803603810190610bf091906125e1565b611c32565b604051610c02919061261b565b60405180910390f35b610c256004803603810190610c209190612770565b611c7b565b604051610c329190612817565b60405180910390f35b610c556004803603810190610c5091906125e1565b611ce6565b604051610c62919061261b565b60405180910390f35b610c856004803603810190610c8091906125e1565b611d23565b604051610c92919061261b565b60405180910390f35b610cb56004803603810190610cb09190612770565b611d5b565b604051610cc29190612817565b60405180910390f35b610ce56004803603810190610ce09190612770565b611d89565b604051610cf29190612817565b60405180910390f35b610d156004803603810190610d109190612770565b611dad565b604051610d2291906128a7565b60405180910390f35b610d33611e2b565b604051610d40919061261b565b60405180910390f35b610d636004803603810190610d5e91906125e1565b611e74565b604051610d70919061261b565b60405180910390f35b610d936004803603810190610d8e91906125e1565b611eac565b604051610da0919061261b565b60405180910390f35b610dc36004803603810190610dbe91906125e1565b611ee5565b604051610dd0919061261b565b60405180910390f35b610df36004803603810190610dee919061291d565b611f1d565b604051610e00919061261b565b60405180910390f35b610e236004803603810190610e1e91906125e1565b611f67565b604051610e30919061261b565b60405180910390f35b610e536004803603810190610e4e91906125e1565b611f9f565b604051610e60919061261b565b60405180910390f35b610e836004803603810190610e7e91906125e1565b611fd7565b604051610e90919061261b565b60405180910390f35b610eb36004803603810190610eae91906125e1565b61200f565b604051610ec0919061261b565b60405180910390f35b610ee36004803603810190610ede91906125e1565b612047565b604051610ef0919061261b565b60405180910390f35b610f136004803603810190610f0e91906125e1565b612088565b604051610f20919061261b565b60405180910390f35b610f436004803603810190610f3e91906125e1565b6120c1565b604051610f50919061261b565b60405180910390f35b610f736004803603810190610f6e91906125e1565b6120f9565b604051610f80919061261b565b60405180910390f35b610fa36004803603810190610f9e9190612770565b612133565b604051610fb09190612982565b60405180910390f35b610fd36004803603810190610fce91906125e1565b6121d2565b604051610fe0919061261b565b60405180910390f35b6110036004803603810190610ffe91906125e1565b61220b565b604051611010919061261b565b60405180910390f35b611033600480360381019061102e91906125e1565b612241565b604051611040919061261b565b60405180910390f35b611063600480360381019061105e91906125e1565b612279565b604051611070919061261b565b60405180910390f35b611093600480360381019061108e91906125e1565b6122b1565b6040516110a0919061261b565b60405180910390f35b6110c360048036038101906110be91906125e1565b612309565b6040516110d0919061261b565b60405180910390f35b6110f360048036038101906110ee91906125e1565b612348565b604051611100919061261b565b60405180910390f35b611123600480360381019061111e91906125e1565b612381565b604051611130919061261b565b60405180910390f35b611153600480360381019061114e91906125e1565b6123bb565b604051611160919061261b565b60405180910390f35b611183600480360381019061117e9190612770565b6123f9565b6040516111909190612817565b60405180910390f35b6111b360048036038101906111ae91906125e1565b612465565b6040516111c0919061261b565b60405180910390f35b6111e360048036038101906111de91906125e1565b61249e565b6040516111f0919061261b565b60405180910390f35b611213600480360381019061120e91906125e1565b6124d9565b604051611220919061261b565b60405180910390f35b611243600480360381019061123e9190612770565b612514565b60405161125091906129d5565b60405180910390f35b611273600480360381019061126e91906125e1565b612543565b604051611280919061261b565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a1b565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a1b565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a78565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a78565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b05565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b6d565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a78565b9250508190555043600154611e669190612bb8565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d92565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f61010090505f5f8273ffffffffffffffffffffffffffffffffffffffff16856040516121619190612e99565b5f60405180830381855afa9150503d805f8114612199576040519150601f19603f3d011682016040523d82523d5f602084013e61219e565b606091505b5091509150816121b1576121b0612eaf565b5b6001818060200190518101906121c79190612ef0565b149350505050919050565b5f6121db611795565b505f65deadbeef003590505f5f5b84811015612200575f3591506001810190506121e9565b505080915050919050565b5f612214611795565b505f65deadbeef005590505f5b8381101561223757815f55600181019050612221565b5080915050919050565b5f61224a611795565b505f65deadbeef001890505f5b8381101561226f575f82189150600181019050612257565b5080915050919050565b5f612282611795565b505f65deadbeef000390505f5b838110156122a7575f8203915060018101905061228f565b5080915050919050565b5f6122ba611795565b505f65deadbeef000790505f5b838110156122ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c7565b5080915050919050565b5f612312611795565b505f65deadbeef00a29050806010525f5b8381101561233e5760028160066010a2600181019050612323565b5080915050919050565b5f612351611795565b505f65deadbeef000a90505f5b83811015612377576001820a915060018101905061235e565b5080915050919050565b5f61238a611795565b505f65deadbeef001490505f5f5b848110156123b0578283149150600181019050612398565b505080915050919050565b5f6123c4611795565b505f65deadbeef004090505f600143035f5b858110156123ed57814092506001810190506123d6565b50505080915050919050565b6060608082511461243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690612b05565b60405180910390fd5b5f6006905060208301835160408482845f875af18061245c575f5ffd5b50505050919050565b5f61246e611795565b505f65deadbeef001590505f5f5b84811015612493578215915060018101905061247c565b505080915050919050565b5f6124a7611795565b505f65deadbeef001290505f5f5b848110156124ce578260011291506001810190506124b5565b505080915050919050565b5f6124e2611795565b505f65deadbeef003b90505f305f5b8581101561250857813b92506001810190506124f1565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612535575f5ffd5b815195505050505050919050565b5f61254c611795565b505f65deadbeef000990505f5b83811015612593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612559565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125c0816125ae565b81146125ca575f5ffd5b50565b5f813590506125db816125b7565b92915050565b5f602082840312156125f6576125f56125a6565b5b5f612603848285016125cd565b91505092915050565b612615816125ae565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126828261263c565b810181811067ffffffffffffffff821117156126a1576126a061264c565b5b80604052505050565b5f6126b361259d565b90506126bf8282612679565b919050565b5f67ffffffffffffffff8211156126de576126dd61264c565b5b6126e78261263c565b9050602081019050919050565b828183375f83830152505050565b5f61271461270f846126c4565b6126aa565b9050828152602081018484840111156127305761272f612638565b5b61273b8482856126f4565b509392505050565b5f82601f83011261275757612756612634565b5b8135612767848260208601612702565b91505092915050565b5f60208284031215612785576127846125a6565b5b5f82013567ffffffffffffffff8111156127a2576127a16125aa565b5b6127ae84828501612743565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e9826127b7565b6127f381856127c1565b93506128038185602086016127d1565b61280c8161263c565b840191505092915050565b5f6020820190508181035f83015261282f81846127df565b905092915050565b5f819050919050565b61284981612837565b82525050565b5f6020820190506128625f830184612840565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61289182612868565b9050919050565b6128a181612887565b82525050565b5f6020820190506128ba5f830184612898565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128dd576128dc612634565b5b8235905067ffffffffffffffff8111156128fa576128f96128c0565b5b602083019150836001820283011115612916576129156128c4565b5b9250929050565b5f5f60208385031215612933576129326125a6565b5b5f83013567ffffffffffffffff8111156129505761294f6125aa565b5b61295c858286016128c8565b92509250509250929050565b5f8115159050919050565b61297c81612968565b82525050565b5f6020820190506129955f830184612973565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129cf8161299b565b82525050565b5f6020820190506129e85f8301846129c6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a3257607f821691505b602082108103612a4557612a446129ee565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a82826125ae565b9150612a8d836125ae565b9250828201905080821115612aa557612aa4612a4b565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aef601483612aab565b9150612afa82612abb565b602082019050919050565b5f6020820190508181035f830152612b1c81612ae3565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b57601a83612aab565b9150612b6282612b23565b602082019050919050565b5f6020820190508181035f830152612b8481612b4b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bc2826125ae565b9150612bcd836125ae565b925082612bdd57612bdc612b8b565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c13565b612c588683612c13565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c93612c8e612c89846125ae565b612c70565b6125ae565b9050919050565b5f819050919050565b612cac83612c79565b612cc0612cb882612c9a565b848454612c1f565b825550505050565b5f5f905090565b612cd7612cc8565b612ce2818484612ca3565b505050565b5b81811015612d0557612cfa5f82612ccf565b600181019050612ce8565b5050565b601f821115612d4a57612d1b81612bf2565b612d2484612c04565b81016020851015612d33578190505b612d47612d3f85612c04565b830182612ce7565b50505b505050565b5f82821c905092915050565b5f612d6a5f1984600802612d4f565b1980831691505092915050565b5f612d828383612d5b565b9150826002028217905092915050565b612d9c8383612be8565b67ffffffffffffffff811115612db557612db461264c565b5b612dbf8254612a1b565b612dca828285612d09565b5f601f831160018114612df7575f8415612de5578287013590505b612def8582612d77565b865550612e56565b601f198416612e0586612bf2565b5f5b82811015612e2c57848901358255600182019150602085019450602081019050612e07565b86831015612e495784890135612e45601f891682612d5b565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e73826127b7565b612e7d8185612e5f565b9350612e8d8185602086016127d1565b80840191505092915050565b5f612ea48284612e69565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612eea816125b7565b92915050565b5f60208284031215612f0557612f046125a6565b5b5f612f1284828501612edc565b9150509291505056fea2646970667358221220c0cbab4ec622f12b4d85d14cc769a8764ec69eede015891d77bb2943301baeb264736f6c634300081b0033 \ No newline at end of file +0x608060405234801561001057600080fd5b50611e5c806100206000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c806380947f801161024c578063bf529ca111610146578063dd9bef60116100c3578063f279ca8111610087578063f279ca81146109ba578063f4d1fc61146109cd578063f58fc36a146109e0578063f6b0bbf7146109f3578063fde7721c14610a1357600080fd5b8063dd9bef601461095b578063de97a3631461096e578063e9f9b3f214610981578063ea5141e614610994578063edf003cf146109a757600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef146108fc578063d117320b1461090f578063d51e7b5b14610922578063d53ff3fd14610935578063d93cd5581461094857600080fd5b8063bf529ca114610890578063c360aba6146108a3578063c420eb61146108b6578063c4bd65d5146108c9578063c711e539146108dc57600080fd5b8063a18683cb116101d4578063b374012b11610198578063b374012b14610831578063b3d847f214610844578063b7b8620714610857578063b81c14841461086a578063bdc875fc1461087d57600080fd5b8063a18683cb146107d0578063a271b721146107f0578063a60a1087146107f8578063a645c9c21461080b578063acaebdf61461081e57600080fd5b8063962e4dc21161021b578063962e4dc21461078457806398456f3e146107975780639a2b7c81146107aa5780639cce7cf9146107bd578063a040aec6146104b357600080fd5b806380947f8014610738578063880eff391461074b578063918a5fcd1461075e57806391e7b2771461077157600080fd5b80633430ec061161035d57806360e13cde116102e55780636f099c8d116102a95780636f099c8d146106d957806371d91d28146106ec5780637b6e0b0e146106ff5780637c191d20146107125780637de8c6f81461072557600080fd5b806360e13cde14610685578063613d0a821461069857806363138d4f146106ab578063659bbb4f146106be5780636e7f1fe7146106c657600080fd5b806340fe26621161032c57806340fe26621461062657806344cf3bc7146106395780634a61af1f1461064c5780634d2c74b31461065f5780635590c2d91461067257600080fd5b80633430ec06146105e5578063371303c0146105f85780633a411f12146106005780633a425dfc1461061357600080fd5b806318093b46116103eb578063219cddeb116103af578063219cddeb146105865780632294fc7f146105995780632871ef85146105ac5780632b21ef44146105bf5780632d34e798146105d257600080fd5b806318093b461461052757806319b621d61461053a5780631aba07ea1461054d5780631de2f343146105605780632007332e1461057357600080fd5b80630ba8a73b116104325780630ba8a73b146104d35780631287a68c146104e6578063135d52f7146104ee5780631581cf1914610501578063165821501461051457600080fd5b8063034aef7114610464578063050082f81461048d578063087b4e84146104a05780630b3b996a146104b3575b600080fd5b610477610472366004611838565b610a26565b6040516104849190611869565b60405180910390f35b61047761049b366004611838565b610a58565b6104776104ae366004611838565b610a81565b6104c66104c136600461196e565b610ab2565b6040516104849190611a05565b6104776104e1366004611838565b610ad5565b600054610477565b6104776104fc366004611838565b610afa565b61047761050f366004611838565b610b1c565b610477610522366004611838565b610b45565b610477610535366004611838565b610b71565b610477610548366004611838565b610b9c565b61047761055b366004611838565b610c08565b61047761056e366004611838565b610c3e565b610477610581366004611838565b610c6b565b610477610594366004611838565b610c8d565b6104776105a7366004611838565b610cb6565b6104776105ba366004611838565b610ceb565b6104776105cd366004611838565b610d14565b6104776105e0366004611838565b610d3d565b6104c66105f3366004611838565b610d66565b610477610e0f565b61047761060e366004611838565b610e28565b610477610621366004611838565b610e4a565b610477610634366004611838565b610e75565b610477610647366004611838565b610ea4565b61047761065a366004611838565b610ecd565b61047761066d366004611838565b610efa565b610477610680366004611838565b610f23565b610477610693366004611838565b610f59565b6104c66106a636600461196e565b610f85565b6104776106b936600461196e565b610fb0565b610477610fd9565b6104776106d4366004611838565b611013565b6104776106e7366004611838565b61103e565b6104776106fa366004611838565b611067565b61047761070d366004611838565b611092565b610477610720366004611838565b6110bd565b610477610733366004611838565b6110e6565b610477610746366004611838565b611108565b610477610759366004611838565b611136565b61047761076c366004611838565b611163565b61047761077f366004611838565b61118c565b6104c661079236600461196e565b6111ca565b6104776107a5366004611838565b61121b565b6104776107b8366004611838565b61124b565b6104c66107cb36600461196e565b61126d565b6107e36107de36600461196e565b61128d565b6040516104849190611a37565b6104776112e7565b610477610806366004611838565b611328565b610477610819366004611838565b611351565b61047761082c366004611838565b611373565b61047761083f366004611a97565b61139e565b610477610852366004611838565b6113cd565b610477610865366004611838565b6113f6565b610477610878366004611838565b61141f565b61047761088b366004611838565b611448565b61047761089e366004611838565b611471565b6104776108b1366004611838565b6114a5565b6104776108c4366004611838565b6114c7565b6104776108d7366004611838565b6114f0565b6108ef6108ea36600461196e565b611516565b6040516104849190611ae7565b61047761090a366004611838565b61159d565b61047761091d366004611838565b6115c8565b610477610930366004611838565b6115f2565b610477610943366004611838565b611614565b610477610956366004611838565b611636565b610477610969366004611838565b611662565b61047761097c366004611838565b611694565b61047761098f366004611838565b6116be565b6104776109a2366004611838565b6116e7565b6104c66109b536600461196e565b611716565b6104776109c8366004611838565b611755565b6104776109db366004611838565b61177f565b6104776109ee366004611838565b6117aa565b610a06610a0136600461196e565b6117d5565b6040516104849190611b0a565b610477610a21366004611838565b611803565b6000610a30610e0f565b5065deadbeef00366000805b84811015610a4f57369150600101610a3c565b50909392505050565b6000610a62610e0f565b5065deadbeef00326000805b84811015610a4f57329150600101610a6e565b6000610a8b610e0f565b5065deadbeef005260005b83811015610aab576000829052600101610a96565b5092915050565b606060086040828451602086016000855af180610ace57600080fd5b5050919050565b6000610adf610e0f565b5065deadbeef000160005b83811015610aab57600101610aea565b6000610b04610e0f565b5065deadbeef001760008315610aab57600101610aea565b6000610b26610e0f565b5065deadbeef00346000805b84811015610a4f57349150600101610b32565b6000610b4f610e0f565b5065deadbeef000660005b83811015610aab5760001990910690600101610b5a565b6000610b7b610e0f565b5065deadbeef00136000805b84811015610a4f576001808413925001610b87565b6000610ba6610e0f565b506001600160e01b0319600090815265deadbeef002090805b84811015610bd65760046000209150600101610bbf565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610aab575060009392505050565b6000610c12610e0f565b5065deadbeef00a4601081905260005b83811015610aab576004600360028360066010a4600101610c22565b6000610c48610e0f565b5065deadbeef001a6000805b84811015610a4f57600083901a9150600101610c54565b6000610c75610e0f565b5065deadbeef001b60008315610aab57600101610aea565b6000610c97610e0f565b5065deadbeef00426000805b84811015610a4f57429150600101610ca3565b6000610cc0610e0f565b5065deadbeef0031600030815b85811015610ce15781319250600101610ccd565b5091949350505050565b6000610cf5610e0f565b5065deadbeef00486000805b84811015610a4f57489150600101610d01565b6000610d1e610e0f565b5065deadbeef003d6000805b84811015610a4f573d9150600101610d2a565b6000610d47610e0f565b5065deadbeef00436000805b84811015610a4f57439150600101610d53565b60028181548110610d7657600080fd5b906000526020600020018054909150610d8e90611b2e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dba90611b2e565b8015610e075780601f10610ddc57610100808354040283529160200191610e07565b820191906000526020600020905b815481529060010190602001808311610dea57829003601f168201915b505050505081565b60008054610e1e906001611b70565b6000819055919050565b6000610e32610e0f565b5065deadbeef000460008315610aab57600101610aea565b6000610e54610e0f565b5065deadbeef003760005b83811015610aab57602060008037600101610e5f565b6000610e7f610e0f565b5065deadbeef00a0601081905260005b83811015610aab5760066010a0600101610e8f565b6000610eae610e0f565b5065deadbeef00336000805b84811015610a4f57339150600101610eba565b6000610ed7610e0f565b5065deadbeef005360005b83811015610aab5763deadbeef600052600101610ee2565b6000610f04610e0f565b5065deadbeef003a6000805b84811015610a4f573a9150600101610f10565b6000610f2d610e0f565b5065deadbeef00516000818152805b84811015610f51576000519150600101610f3c565b509392505050565b6000610f63610e0f565b5065deadbeef001d60005b83811015610aab5760009190911d90600101610f6e565b6060600560208301835160405160208183856000885af180610fa657600080fd5b5095945050505050565b600060026020830183518360208183856000885af180610fcf57600080fd5b5050505050919050565b6000610fe3610e0f565b505b6103e85a111561100c5760018060008282546110019190611b70565b90915550610fe59050565b5060015490565b600061101d610e0f565b5065deadbeef00106000805b84811015610a4f576001838110925001611029565b6000611048610e0f565b5065deadbeef00446000805b84811015610a4f57449150600101611054565b6000611071610e0f565b5065deadbeef00116000805b84811015610a4f57600180841192500161107d565b600061109c610e0f565b5065deadbeef003e60005b83811015610aab5760206000803e6001016110a7565b60006110c7610e0f565b5065deadbeef00456000805b84811015610a4f574591506001016110d3565b60006110f0610e0f565b5065deadbeef000260008315610aab57600101610aea565b6000611112610e0f565b5065deadbeef000860005b83811015610aab5760001960008308915060010161111d565b6000611140610e0f565b5065deadbeef005460008181555b83811015610aab57600054915060010161114e565b600061116d610e0f565b5065deadbeef005a6000805b84811015610a4f575a9150600101611179565b6000611196610e0f565b5065deadbeef001960005b838110156111b4579019906001016111a1565b5065deadbeef001981146111c457195b92915050565b606081516060146111f65760405162461bcd60e51b81526004016111ed90611bb1565b60405180910390fd5b600760208301835160408482846000875af18061121257600080fd5b50505050919050565b6000611225610e0f565b5065deadbeef00a1601081905260005b83811015610aab578060066010a1600101611235565b6000611255610e0f565b5065deadbeef001660008315610aab57600101610aea565b60606004602083018351604051818183856000885af180610fa657600080fd5b600081516080146112b05760405162461bcd60e51b81526004016111ed90611bf5565b6001602083016040840151601f1a602082015260206040516080836000865af1806112da57600080fd5b6040515195945050505050565b60006112f1610e0f565b505b6103e85a111561100c57600180600082825461130f9190611b70565b9091555050600154611322904390611c1b565b506112f3565b6000611332610e0f565b5065deadbeef00466000805b84811015610a4f5746915060010161133e565b600061135b610e0f565b5065deadbeef000560008315610aab57600101610aea565b600061137d610e0f565b5065deadbeef003960005b83811015610aab57602060008039600101611388565b600280546001810182556000918252839083906020842001916113c2919083611cdf565b505060025492915050565b60006113d7610e0f565b5065deadbeef00596000805b84811015610a4f575991506001016113e3565b6000611400610e0f565b5065deadbeef00386000805b84811015610a4f5738915060010161140c565b6000611429610e0f565b5065deadbeef00416000805b84811015610a4f57419150600101611435565b6000611452610e0f565b5065deadbeef00306000805b84811015610a4f5730915060010161145e565b600061147b610e0f565b5065deadbeef00a3601081905260005b83811015610aab57600360028260066010a360010161148b565b60006114af610e0f565b5065deadbeef000b60008315610aab57600101610aea565b60006114d1610e0f565b5065deadbeef00476000805b84811015610a4f574791506001016114dd565b60006114fa610e0f565b5065deadbeef001c6000805b84811015610a4f57600101611506565b60006101008180828560405161152c9190611dd8565b600060405180830381855afa9150503d8060008114611567576040513d603f01601f191681016040523d815291503d6000602084013e61156c565b606091505b50915091508161157e5761157e611de4565b6020810181518101906115919190611e05565b60011495945050505050565b60006115a7610e0f565b5065deadbeef00356000805b84811015610a4f5760003591506001016115b3565b60006115d2610e0f565b5065deadbeef005560005b83811015610aab5760008290556001016115dd565b60006115fc610e0f565b5065deadbeef001860008315610aab57600101610aea565b600061161e610e0f565b5065deadbeef000360008315610aab57600101610aea565b6000611640610e0f565b5065deadbeef000760005b83811015610aab576000199091079060010161164b565b600061166c610e0f565b5065deadbeef00a2601081905260005b83811015610aab5760028160066010a260010161167c565b600061169e610e0f565b5065deadbeef000a60005b83811015610aab5760019182900a91016116a9565b60006116c8610e0f565b5065deadbeef00146000805b84811015610a4f576001915081016116d4565b60006116f1610e0f565b5065deadbeef004060006000194301815b85811015610ce15781409250600101611702565b606081516080146117395760405162461bcd60e51b81526004016111ed90611bb1565b600660208301835160408482846000875af18061121257600080fd5b600061175f610e0f565b5065deadbeef00156000805b84811015610a4f578215915060010161176b565b6000611789610e0f565b5065deadbeef00126000805b84811015610a4f576001838112925001611795565b60006117b4610e0f565b5065deadbeef003b600030815b85811015610ce157813b92506001016117c1565b6000600360208301835160405160148183856000885af1806117f657600080fd5b8151979650505050505050565b600061180d610e0f565b5065deadbeef000960005b83811015610aab57600019600183099150600101611818565b80356111c4565b60006020828403121561184d5761184d600080fd5b60006118598484611831565b949350505050565b805b82525050565b602081016111c48284611861565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156118b3576118b3611877565b6040525050565b60006118c96000604051905090565b90506118d5828261188d565b919050565b600067ffffffffffffffff8211156118f4576118f4611877565b601f19601f83011660200192915050565b82818337506000910152565b600061192461191f846118da565b6118ba565b90508281526020810184848401111561193f5761193f600080fd5b610f51848285611905565b600082601f83011261195e5761195e600080fd5b8135611859848260208601611911565b60006020828403121561198357611983600080fd5b813567ffffffffffffffff81111561199d5761199d600080fd5b6118598482850161194a565b60005b838110156119c45780820151838201526020016119ac565b50506000910152565b60006119dd826000815192915050565b8084526020840193506119f48185602086016119a9565b601f01601f19169290920192915050565b60208082528101611a1681846119cd565b9392505050565b60006001600160a01b0382166111c4565b61186381611a1d565b602081016111c48284611a2e565b60008083601f840112611a5a57611a5a600080fd5b50813567ffffffffffffffff811115611a7557611a75600080fd5b602083019150836001820283011115611a9057611a90600080fd5b9250929050565b60008060208385031215611aad57611aad600080fd5b823567ffffffffffffffff811115611ac757611ac7600080fd5b611ad385828601611a45565b92509250509250929050565b801515611863565b602081016111c48284611adf565b6bffffffffffffffffffffffff198116611863565b602081016111c48284611af5565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611b4257607f821691505b602082108103611b5457611b54611b18565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156111c4576111c4611b5a565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b602080825281016111c481611b83565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e00000000000081529150611baa565b602080825281016111c481611bc1565b634e487b7160e01b600052601260045260246000fd5b600082611c2a57611c2a611c05565b500690565b60006111c4611c3b8381565b90565b611c4783611c2f565b815460001960089490940293841b1916921b91909117905550565b6000611c6f818484611c3e565b505050565b81811015611c8f57611c87600082611c62565b600101611c74565b5050565b601f821115611c6f57611cb181600081815281906020902092915050565b6020601f85010481016020851015611cc65750805b611cd86020601f860104830182611c74565b5050505050565b8267ffffffffffffffff811115611cf857611cf8611877565b611d028254611b2e565b611d0d828285611c93565b6000601f831160018114611d415760008415611d295750858201355b600019600886021c1981166002860217865550611da7565b601f198416611d5b86600081815281906020902092915050565b60005b82811015611d7e5788850135825560209485019460019092019101611d5e565b86831015611d9a57600019601f88166008021c19858a01351682555b6001600288020188555050505b50505050505050565b6000611dc0826000815192915050565b611dce8185602086016119a9565b9290920192915050565b6000611a168284611db0565b634e487b7160e01b600052600160045260246000fd5b6000815190506111c4565b600060208284031215611e1a57611e1a600080fd5b60006118598484611dfa56fea2646970667358221220aed71518a155a0a83f8430ad77b2dd0a5bbca1ca3538212e3da1203e2ed5ab0d64736f6c63430008170033 diff --git a/bindings/tester/loadTester.go b/bindings/tester/loadTester.go index 2af5bd020..44efecc9f 100644 --- a/bindings/tester/loadTester.go +++ b/bindings/tester/loadTester.go @@ -31,8 +31,8 @@ var ( // LoadTesterMetaData contains all meta data concerning the LoadTester contract. var LoadTesterMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dumpster\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCallCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inc\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loopBlockHashUntilLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"loopUntilLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"trash\",\"type\":\"bytes\"}],\"name\":\"store\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADDMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testADDRESS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testAND\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBASEFEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBLOCKHASH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testBYTE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testBlake2f\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATACOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATALOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLDATASIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCALLVALUE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCHAINID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCODECOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCODESIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testCOINBASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testDIFFICULTY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testDIV\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECAdd\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECMul\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECPairing\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testECRecover\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEQ\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEXP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testEXTCODESIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGAS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGASLIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGASPRICE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testGT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testISZERO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testIdentity\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG0\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLOG4\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testLT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMLOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSTORE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMSTORE8\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMUL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testMULMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testModExp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testNOT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testNUMBER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testORIGIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testP256Verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testRETURNDATACOPY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testRETURNDATASIZE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testRipemd160\",\"outputs\":[{\"internalType\":\"bytes20\",\"name\":\"result\",\"type\":\"bytes20\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSAR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSDIV\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSELFBALANCE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSGT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"testSHA256\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHA3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSHR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSIGNEXTEND\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSLOAD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSLT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSMOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSSTORE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testSUB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testTIMESTAMP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"testXOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600e575f5ffd5b50612f518061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061045d575f3560e01c806380947f801161024a578063bf529ca111610144578063dd9bef60116100c1578063f279ca8111610085578063f279ca8114611199578063f4d1fc61146111c9578063f58fc36a146111f9578063f6b0bbf714611229578063fde7721c146112595761045d565b8063dd9bef60146110a9578063de97a363146110d9578063e9f9b3f214611109578063ea5141e614611139578063edf003cf146111695761045d565b8063ce3cf4ef11610108578063ce3cf4ef14610fb9578063d117320b14610fe9578063d51e7b5b14611019578063d53ff3fd14611049578063d93cd558146110795761045d565b8063bf529ca114610ec9578063c360aba614610ef9578063c420eb6114610f29578063c4bd65d514610f59578063c711e53914610f895761045d565b8063a18683cb116101d2578063b374012b11610196578063b374012b14610dd9578063b3d847f214610e09578063b7b8620714610e39578063b81c148414610e69578063bdc875fc14610e995761045d565b8063a18683cb14610cfb578063a271b72114610d2b578063a60a108714610d49578063a645c9c214610d79578063acaebdf614610da95761045d565b8063962e4dc211610219578063962e4dc214610c0b57806398456f3e14610c3b5780639a2b7c8114610c6b5780639cce7cf914610c9b578063a040aec614610ccb5761045d565b806380947f8014610b4b578063880eff3914610b7b578063918a5fcd14610bab57806391e7b27714610bdb5761045d565b80633430ec061161035b57806360e13cde116102e35780636f099c8d116102a75780636f099c8d14610a5b57806371d91d2814610a8b5780637b6e0b0e14610abb5780637c191d2014610aeb5780637de8c6f814610b1b5761045d565b806360e13cde1461097d578063613d0a82146109ad57806363138d4f146109dd578063659bbb4f14610a0d5780636e7f1fe714610a2b5761045d565b806340fe26621161032a57806340fe26621461088d57806344cf3bc7146108bd5780634a61af1f146108ed5780634d2c74b31461091d5780635590c2d91461094d5761045d565b80633430ec06146107df578063371303c01461080f5780633a411f121461082d5780633a425dfc1461085d5761045d565b806318093b46116103e9578063219cddeb116103ad578063219cddeb146106ef5780632294fc7f1461071f5780632871ef851461074f5780632b21ef441461077f5780632d34e798146107af5761045d565b806318093b46146105ff57806319b621d61461062f5780631aba07ea1461065f5780631de2f3431461068f5780632007332e146106bf5761045d565b80630ba8a73b116104305780630ba8a73b146105215780631287a68c14610551578063135d52f71461056f5780631581cf191461059f57806316582150146105cf5761045d565b8063034aef7114610461578063050082f814610491578063087b4e84146104c15780630b3b996a146104f1575b5f5ffd5b61047b600480360381019061047691906125e1565b611289565b604051610488919061261b565b60405180910390f35b6104ab60048036038101906104a691906125e1565b6112c1565b6040516104b8919061261b565b60405180910390f35b6104db60048036038101906104d691906125e1565b6112f9565b6040516104e8919061261b565b60405180910390f35b61050b60048036038101906105069190612770565b61132f565b6040516105189190612817565b60405180910390f35b61053b600480360381019061053691906125e1565b611353565b604051610548919061261b565b60405180910390f35b61055961138b565b604051610566919061261b565b60405180910390f35b610589600480360381019061058491906125e1565b611393565b604051610596919061261b565b60405180910390f35b6105b960048036038101906105b491906125e1565b6113cb565b6040516105c6919061261b565b60405180910390f35b6105e960048036038101906105e491906125e1565b611403565b6040516105f6919061261b565b60405180910390f35b610619600480360381019061061491906125e1565b61145b565b604051610626919061261b565b60405180910390f35b610649600480360381019061064491906125e1565b611496565b604051610656919061261b565b60405180910390f35b610679600480360381019061067491906125e1565b61151f565b604051610686919061261b565b60405180910390f35b6106a960048036038101906106a491906125e1565b611562565b6040516106b6919061261b565b60405180910390f35b6106d960048036038101906106d491906125e1565b61159c565b6040516106e6919061261b565b60405180910390f35b610709600480360381019061070491906125e1565b6115d4565b604051610716919061261b565b60405180910390f35b610739600480360381019061073491906125e1565b61160c565b604051610746919061261b565b60405180910390f35b610769600480360381019061076491906125e1565b611647565b604051610776919061261b565b60405180910390f35b610799600480360381019061079491906125e1565b61167f565b6040516107a6919061261b565b60405180910390f35b6107c960048036038101906107c491906125e1565b6116b7565b6040516107d6919061261b565b60405180910390f35b6107f960048036038101906107f491906125e1565b6116ef565b6040516108069190612817565b60405180910390f35b610817611795565b604051610824919061261b565b60405180910390f35b610847600480360381019061084291906125e1565b6117b0565b604051610854919061261b565b60405180910390f35b610877600480360381019061087291906125e1565b6117e9565b604051610884919061261b565b60405180910390f35b6108a760048036038101906108a291906125e1565b611821565b6040516108b4919061261b565b60405180910390f35b6108d760048036038101906108d291906125e1565b61185d565b6040516108e4919061261b565b60405180910390f35b610907600480360381019061090291906125e1565b611895565b604051610914919061261b565b60405180910390f35b610937600480360381019061093291906125e1565b6118cf565b604051610944919061261b565b60405180910390f35b610967600480360381019061096291906125e1565b611907565b604051610974919061261b565b60405180910390f35b610997600480360381019061099291906125e1565b611946565b6040516109a4919061261b565b60405180910390f35b6109c760048036038101906109c29190612770565b61197e565b6040516109d49190612817565b60405180910390f35b6109f760048036038101906109f29190612770565b6119ad565b604051610a04919061284f565b60405180910390f35b610a156119d6565b604051610a22919061261b565b60405180910390f35b610a456004803603810190610a4091906125e1565b611a10565b604051610a52919061261b565b60405180910390f35b610a756004803603810190610a7091906125e1565b611a4b565b604051610a82919061261b565b60405180910390f35b610aa56004803603810190610aa091906125e1565b611a83565b604051610ab2919061261b565b60405180910390f35b610ad56004803603810190610ad091906125e1565b611abe565b604051610ae2919061261b565b60405180910390f35b610b056004803603810190610b0091906125e1565b611af6565b604051610b12919061261b565b60405180910390f35b610b356004803603810190610b3091906125e1565b611b2e565b604051610b42919061261b565b60405180910390f35b610b656004803603810190610b6091906125e1565b611b67565b604051610b72919061261b565b60405180910390f35b610b956004803603810190610b9091906125e1565b611bc0565b604051610ba2919061261b565b60405180910390f35b610bc56004803603810190610bc091906125e1565b611bfa565b604051610bd2919061261b565b60405180910390f35b610bf56004803603810190610bf091906125e1565b611c32565b604051610c02919061261b565b60405180910390f35b610c256004803603810190610c209190612770565b611c7b565b604051610c329190612817565b60405180910390f35b610c556004803603810190610c5091906125e1565b611ce6565b604051610c62919061261b565b60405180910390f35b610c856004803603810190610c8091906125e1565b611d23565b604051610c92919061261b565b60405180910390f35b610cb56004803603810190610cb09190612770565b611d5b565b604051610cc29190612817565b60405180910390f35b610ce56004803603810190610ce09190612770565b611d89565b604051610cf29190612817565b60405180910390f35b610d156004803603810190610d109190612770565b611dad565b604051610d2291906128a7565b60405180910390f35b610d33611e2b565b604051610d40919061261b565b60405180910390f35b610d636004803603810190610d5e91906125e1565b611e74565b604051610d70919061261b565b60405180910390f35b610d936004803603810190610d8e91906125e1565b611eac565b604051610da0919061261b565b60405180910390f35b610dc36004803603810190610dbe91906125e1565b611ee5565b604051610dd0919061261b565b60405180910390f35b610df36004803603810190610dee919061291d565b611f1d565b604051610e00919061261b565b60405180910390f35b610e236004803603810190610e1e91906125e1565b611f67565b604051610e30919061261b565b60405180910390f35b610e536004803603810190610e4e91906125e1565b611f9f565b604051610e60919061261b565b60405180910390f35b610e836004803603810190610e7e91906125e1565b611fd7565b604051610e90919061261b565b60405180910390f35b610eb36004803603810190610eae91906125e1565b61200f565b604051610ec0919061261b565b60405180910390f35b610ee36004803603810190610ede91906125e1565b612047565b604051610ef0919061261b565b60405180910390f35b610f136004803603810190610f0e91906125e1565b612088565b604051610f20919061261b565b60405180910390f35b610f436004803603810190610f3e91906125e1565b6120c1565b604051610f50919061261b565b60405180910390f35b610f736004803603810190610f6e91906125e1565b6120f9565b604051610f80919061261b565b60405180910390f35b610fa36004803603810190610f9e9190612770565b612133565b604051610fb09190612982565b60405180910390f35b610fd36004803603810190610fce91906125e1565b6121d2565b604051610fe0919061261b565b60405180910390f35b6110036004803603810190610ffe91906125e1565b61220b565b604051611010919061261b565b60405180910390f35b611033600480360381019061102e91906125e1565b612241565b604051611040919061261b565b60405180910390f35b611063600480360381019061105e91906125e1565b612279565b604051611070919061261b565b60405180910390f35b611093600480360381019061108e91906125e1565b6122b1565b6040516110a0919061261b565b60405180910390f35b6110c360048036038101906110be91906125e1565b612309565b6040516110d0919061261b565b60405180910390f35b6110f360048036038101906110ee91906125e1565b612348565b604051611100919061261b565b60405180910390f35b611123600480360381019061111e91906125e1565b612381565b604051611130919061261b565b60405180910390f35b611153600480360381019061114e91906125e1565b6123bb565b604051611160919061261b565b60405180910390f35b611183600480360381019061117e9190612770565b6123f9565b6040516111909190612817565b60405180910390f35b6111b360048036038101906111ae91906125e1565b612465565b6040516111c0919061261b565b60405180910390f35b6111e360048036038101906111de91906125e1565b61249e565b6040516111f0919061261b565b60405180910390f35b611213600480360381019061120e91906125e1565b6124d9565b604051611220919061261b565b60405180910390f35b611243600480360381019061123e9190612770565b612514565b60405161125091906129d5565b60405180910390f35b611273600480360381019061126e91906125e1565b612543565b604051611280919061261b565b60405180910390f35b5f611292611795565b505f65deadbeef003690505f5f5b848110156112b6573691506001810190506112a0565b505080915050919050565b5f6112ca611795565b505f65deadbeef003290505f5f5b848110156112ee573291506001810190506112d8565b505080915050919050565b5f611302611795565b505f65deadbeef005290505f5b8381101561132557815f5260018101905061130f565b5080915050919050565b60605f600890506040828451602086015f855af18061134c575f5ffd5b5050919050565b5f61135c611795565b505f65deadbeef000190505f5b83811015611381575f82019150600181019050611369565b5080915050919050565b5f5f54905090565b5f61139c611795565b505f65deadbeef001790505f5b838110156113c1575f821791506001810190506113a9565b5080915050919050565b5f6113d4611795565b505f65deadbeef003490505f5f5b848110156113f8573491506001810190506113e2565b505080915050919050565b5f61140c611795565b505f65deadbeef000690505f5b83811015611451577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82069150600181019050611419565b5080915050919050565b5f611464611795565b505f65deadbeef001390505f5f5b8481101561148b57600183139150600181019050611472565b505080915050919050565b5f61149f611795565b505f65deadbeef002090507fffffffff000000000000000000000000000000000000000000000000000000005f525f5f5b848110156114e95760045f2091506001810190506114d0565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114611515575f91505b5080915050919050565b5f611528611795565b505f65deadbeef00a49050806010525f5b83811015611558576004600360028360066010a4600181019050611539565b5080915050919050565b5f61156b611795565b505f65deadbeef001a90505f5f5b8481101561159157825f1a9150600181019050611579565b505080915050919050565b5f6115a5611795565b505f65deadbeef001b90505f5b838110156115ca57815f1b91506001810190506115b2565b5080915050919050565b5f6115dd611795565b505f65deadbeef004290505f5f5b84811015611601574291506001810190506115eb565b505080915050919050565b5f611615611795565b505f65deadbeef003190505f305f5b8581101561163b5781319250600181019050611624565b50505080915050919050565b5f611650611795565b505f65deadbeef004890505f5f5b848110156116745748915060018101905061165e565b505080915050919050565b5f611688611795565b505f65deadbeef003d90505f5f5b848110156116ac573d9150600181019050611696565b505080915050919050565b5f6116c0611795565b505f65deadbeef004390505f5f5b848110156116e4574391506001810190506116ce565b505080915050919050565b600281815481106116fe575f80fd5b905f5260205f20015f91509050805461171690612a1b565b80601f016020809104026020016040519081016040528092919081815260200182805461174290612a1b565b801561178d5780601f106117645761010080835404028352916020019161178d565b820191905f5260205f20905b81548152906001019060200180831161177057829003601f168201915b505050505081565b5f60015f546117a49190612a78565b5f819055505f54905090565b5f6117b9611795565b505f65deadbeef000490505f5b838110156117df576001820491506001810190506117c6565b5080915050919050565b5f6117f2611795565b505f65deadbeef003790505f5b838110156118175760205f5f376001810190506117ff565b5080915050919050565b5f61182a611795565b505f65deadbeef00a09050806010525f5b838110156118535760066010a060018101905061183b565b5080915050919050565b5f611866611795565b505f65deadbeef003390505f5f5b8481101561188a57339150600181019050611874565b505080915050919050565b5f61189e611795565b505f65deadbeef005390505f5b838110156118c55763deadbeef5f526001810190506118ab565b5080915050919050565b5f6118d8611795565b505f65deadbeef003a90505f5f5b848110156118fc573a91506001810190506118e6565b505080915050919050565b5f611910611795565b505f65deadbeef005190505f815f525f5b84811015611938575f519150600181019050611921565b508091505080915050919050565b5f61194f611795565b505f65deadbeef001d90505f5b8381101561197457815f1d915060018101905061195c565b5080915050919050565b60605f6005905060208301835160405160208183855f885af1806119a0575f5ffd5b8195505050505050919050565b5f5f600290506020830183518360208183855f885af1806119cc575f5ffd5b5050505050919050565b5f6119df611795565b505b6103e85a1115611a08576001805f8282546119fc9190612a78565b925050819055506119e1565b600154905090565b5f611a19611795565b505f65deadbeef001090505f5f5b84811015611a4057826001109150600181019050611a27565b505080915050919050565b5f611a54611795565b505f65deadbeef004490505f5f5b84811015611a7857449150600181019050611a62565b505080915050919050565b5f611a8c611795565b505f65deadbeef001190505f5f5b84811015611ab357600183119150600181019050611a9a565b505080915050919050565b5f611ac7611795565b505f65deadbeef003e90505f5b83811015611aec5760205f5f3e600181019050611ad4565b5080915050919050565b5f611aff611795565b505f65deadbeef004590505f5f5b84811015611b2357459150600181019050611b0d565b505080915050919050565b5f611b37611795565b505f65deadbeef000290505f5b83811015611b5d57600182029150600181019050611b44565b5080915050919050565b5f611b70611795565b505f65deadbeef000890505f5b83811015611bb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5f83089150600181019050611b7d565b5080915050919050565b5f611bc9611795565b505f65deadbeef00549050805f555f5b83811015611bf0575f549150600181019050611bd9565b5080915050919050565b5f611c03611795565b505f65deadbeef005a90505f5f5b84811015611c27575a9150600181019050611c11565b505080915050919050565b5f611c3b611795565b505f65deadbeef001990505f5b83811015611c5f5781199150600181019050611c48565b5065deadbeef00198114611c7257801990505b80915050919050565b606080825114611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790612b05565b60405180910390fd5b5f6007905060208301835160408482845f875af180611cdd575f5ffd5b50505050919050565b5f611cef611795565b505f65deadbeef00a19050806010525f5b83811015611d19578060066010a1600181019050611d00565b5080915050919050565b5f611d2c611795565b505f65deadbeef001690505f5b83811015611d51578182169150600181019050611d39565b5080915050919050565b60605f60049050602083018351604051818183855f885af180611d7c575f5ffd5b8195505050505050919050565b60605f600890506040828451602086015f855af180611da6575f5ffd5b5050919050565b5f6080825114611df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de990612b6d565b60405180910390fd5b5f60019050602083016020810151601f1a602082015260206040516080835f865af180611e1d575f5ffd5b604051519350505050919050565b5f611e34611795565b505b6103e85a1115611e6c576001805f828254611e519190612a78565b9250508190555043600154611e669190612bb8565b50611e36565b600154905090565b5f611e7d611795565b505f65deadbeef004690505f5f5b84811015611ea157469150600181019050611e8b565b505080915050919050565b5f611eb5611795565b505f65deadbeef000590505f5b83811015611edb57600182059150600181019050611ec2565b5080915050919050565b5f611eee611795565b505f65deadbeef003990505f5b83811015611f135760205f5f39600181019050611efb565b5080915050919050565b5f6002838390918060018154018082558091505060019003905f5260205f20015f909192909192909192909192509182611f58929190612d92565b50600280549050905092915050565b5f611f70611795565b505f65deadbeef005990505f5f5b84811015611f9457599150600181019050611f7e565b505080915050919050565b5f611fa8611795565b505f65deadbeef003890505f5f5b84811015611fcc57389150600181019050611fb6565b505080915050919050565b5f611fe0611795565b505f65deadbeef004190505f5f5b8481101561200457419150600181019050611fee565b505080915050919050565b5f612018611795565b505f65deadbeef003090505f5f5b8481101561203c57309150600181019050612026565b505080915050919050565b5f612050611795565b505f65deadbeef00a39050806010525f5b8381101561207e57600360028260066010a3600181019050612061565b5080915050919050565b5f612091611795565b505f65deadbeef000b90505f5b838110156120b7578160200b915060018101905061209e565b5080915050919050565b5f6120ca611795565b505f65deadbeef004790505f5f5b848110156120ee574791506001810190506120d8565b505080915050919050565b5f612102611795565b505f65deadbeef001c90505f5f5b8481101561212857825f1c9250600181019050612110565b505080915050919050565b5f5f61010090505f5f8273ffffffffffffffffffffffffffffffffffffffff16856040516121619190612e99565b5f60405180830381855afa9150503d805f8114612199576040519150601f19603f3d011682016040523d82523d5f602084013e61219e565b606091505b5091509150816121b1576121b0612eaf565b5b6001818060200190518101906121c79190612ef0565b149350505050919050565b5f6121db611795565b505f65deadbeef003590505f5f5b84811015612200575f3591506001810190506121e9565b505080915050919050565b5f612214611795565b505f65deadbeef005590505f5b8381101561223757815f55600181019050612221565b5080915050919050565b5f61224a611795565b505f65deadbeef001890505f5b8381101561226f575f82189150600181019050612257565b5080915050919050565b5f612282611795565b505f65deadbeef000390505f5b838110156122a7575f8203915060018101905061228f565b5080915050919050565b5f6122ba611795565b505f65deadbeef000790505f5b838110156122ff577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820791506001810190506122c7565b5080915050919050565b5f612312611795565b505f65deadbeef00a29050806010525f5b8381101561233e5760028160066010a2600181019050612323565b5080915050919050565b5f612351611795565b505f65deadbeef000a90505f5b83811015612377576001820a915060018101905061235e565b5080915050919050565b5f61238a611795565b505f65deadbeef001490505f5f5b848110156123b0578283149150600181019050612398565b505080915050919050565b5f6123c4611795565b505f65deadbeef004090505f600143035f5b858110156123ed57814092506001810190506123d6565b50505080915050919050565b6060608082511461243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690612b05565b60405180910390fd5b5f6006905060208301835160408482845f875af18061245c575f5ffd5b50505050919050565b5f61246e611795565b505f65deadbeef001590505f5f5b84811015612493578215915060018101905061247c565b505080915050919050565b5f6124a7611795565b505f65deadbeef001290505f5f5b848110156124ce578260011291506001810190506124b5565b505080915050919050565b5f6124e2611795565b505f65deadbeef003b90505f305f5b8581101561250857813b92506001810190506124f1565b50505080915050919050565b5f5f6003905060208301835160405160148183855f885af180612535575f5ffd5b815195505050505050919050565b5f61254c611795565b505f65deadbeef000990505f5b83811015612593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600183099150600181019050612559565b5080915050919050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6125c0816125ae565b81146125ca575f5ffd5b50565b5f813590506125db816125b7565b92915050565b5f602082840312156125f6576125f56125a6565b5b5f612603848285016125cd565b91505092915050565b612615816125ae565b82525050565b5f60208201905061262e5f83018461260c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126828261263c565b810181811067ffffffffffffffff821117156126a1576126a061264c565b5b80604052505050565b5f6126b361259d565b90506126bf8282612679565b919050565b5f67ffffffffffffffff8211156126de576126dd61264c565b5b6126e78261263c565b9050602081019050919050565b828183375f83830152505050565b5f61271461270f846126c4565b6126aa565b9050828152602081018484840111156127305761272f612638565b5b61273b8482856126f4565b509392505050565b5f82601f83011261275757612756612634565b5b8135612767848260208601612702565b91505092915050565b5f60208284031215612785576127846125a6565b5b5f82013567ffffffffffffffff8111156127a2576127a16125aa565b5b6127ae84828501612743565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6127e9826127b7565b6127f381856127c1565b93506128038185602086016127d1565b61280c8161263c565b840191505092915050565b5f6020820190508181035f83015261282f81846127df565b905092915050565b5f819050919050565b61284981612837565b82525050565b5f6020820190506128625f830184612840565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61289182612868565b9050919050565b6128a181612887565b82525050565b5f6020820190506128ba5f830184612898565b92915050565b5f5ffd5b5f5ffd5b5f5f83601f8401126128dd576128dc612634565b5b8235905067ffffffffffffffff8111156128fa576128f96128c0565b5b602083019150836001820283011115612916576129156128c4565b5b9250929050565b5f5f60208385031215612933576129326125a6565b5b5f83013567ffffffffffffffff8111156129505761294f6125aa565b5b61295c858286016128c8565b92509250509250929050565b5f8115159050919050565b61297c81612968565b82525050565b5f6020820190506129955f830184612973565b92915050565b5f7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6129cf8161299b565b82525050565b5f6020820190506129e85f8301846129c6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a3257607f821691505b602082108103612a4557612a446129ee565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a82826125ae565b9150612a8d836125ae565b9250828201905080821115612aa557612aa4612a4b565b5b92915050565b5f82825260208201905092915050565b7f496e76616c696420696e707574206c656e6774680000000000000000000000005f82015250565b5f612aef601483612aab565b9150612afa82612abb565b602082019050919050565b5f6020820190508181035f830152612b1c81612ae3565b9050919050565b7f496e76616c696420696e7075742064617461206c656e6774682e0000000000005f82015250565b5f612b57601a83612aab565b9150612b6282612b23565b602082019050919050565b5f6020820190508181035f830152612b8481612b4b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bc2826125ae565b9150612bcd836125ae565b925082612bdd57612bdc612b8b565b5b828206905092915050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c4e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c13565b612c588683612c13565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612c93612c8e612c89846125ae565b612c70565b6125ae565b9050919050565b5f819050919050565b612cac83612c79565b612cc0612cb882612c9a565b848454612c1f565b825550505050565b5f5f905090565b612cd7612cc8565b612ce2818484612ca3565b505050565b5b81811015612d0557612cfa5f82612ccf565b600181019050612ce8565b5050565b601f821115612d4a57612d1b81612bf2565b612d2484612c04565b81016020851015612d33578190505b612d47612d3f85612c04565b830182612ce7565b50505b505050565b5f82821c905092915050565b5f612d6a5f1984600802612d4f565b1980831691505092915050565b5f612d828383612d5b565b9150826002028217905092915050565b612d9c8383612be8565b67ffffffffffffffff811115612db557612db461264c565b5b612dbf8254612a1b565b612dca828285612d09565b5f601f831160018114612df7575f8415612de5578287013590505b612def8582612d77565b865550612e56565b601f198416612e0586612bf2565b5f5b82811015612e2c57848901358255600182019150602085019450602081019050612e07565b86831015612e495784890135612e45601f891682612d5b565b8355505b6001600288020188555050505b50505050505050565b5f81905092915050565b5f612e73826127b7565b612e7d8185612e5f565b9350612e8d8185602086016127d1565b80840191505092915050565b5f612ea48284612e69565b915081905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b5f81519050612eea816125b7565b92915050565b5f60208284031215612f0557612f046125a6565b5b5f612f1284828501612edc565b9150509291505056fea2646970667358221220c0cbab4ec622f12b4d85d14cc769a8764ec69eede015891d77bb2943301baeb264736f6c634300081b0033", + ABI: "[{\"type\":\"function\",\"name\":\"dumpster\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCallCounter\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inc\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopBlockHashUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loopUntilLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"store\",\"inputs\":[{\"name\":\"trash\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testADDRESS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testAND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBASEFEE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBLOCKHASH\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBYTE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testBlake2f\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATALOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCALLVALUE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCHAINID\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODECOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testCOINBASE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIFFICULTY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECAdd\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECMul\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECPairing\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testECRecover\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEQ\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testEXTCODESIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGAS\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASLIMIT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGASPRICE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testISZERO\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testIdentity\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG0\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG1\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG2\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLOG4\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMSTORE8\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMUL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testMULMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testModExp\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNOT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testNUMBER\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testORIGIN\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testP256Verify\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATACOPY\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRETURNDATASIZE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testRipemd160\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSAR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSDIV\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSELFBALANCE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSGT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA256\",\"inputs\":[{\"name\":\"inputData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"result\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHA3\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHL\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSHR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSIGNEXTEND\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLOAD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSLT\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSMOD\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSSTORE\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testSUB\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testTIMESTAMP\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testXOR\",\"inputs\":[{\"name\":\"x\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"}]", + Bin: "0x608060405234801561001057600080fd5b50611e5c806100206000396000f3fe608060405234801561001057600080fd5b506004361061045f5760003560e01c806380947f801161024c578063bf529ca111610146578063dd9bef60116100c3578063f279ca8111610087578063f279ca81146109ba578063f4d1fc61146109cd578063f58fc36a146109e0578063f6b0bbf7146109f3578063fde7721c14610a1357600080fd5b8063dd9bef601461095b578063de97a3631461096e578063e9f9b3f214610981578063ea5141e614610994578063edf003cf146109a757600080fd5b8063ce3cf4ef1161010a578063ce3cf4ef146108fc578063d117320b1461090f578063d51e7b5b14610922578063d53ff3fd14610935578063d93cd5581461094857600080fd5b8063bf529ca114610890578063c360aba6146108a3578063c420eb61146108b6578063c4bd65d5146108c9578063c711e539146108dc57600080fd5b8063a18683cb116101d4578063b374012b11610198578063b374012b14610831578063b3d847f214610844578063b7b8620714610857578063b81c14841461086a578063bdc875fc1461087d57600080fd5b8063a18683cb146107d0578063a271b721146107f0578063a60a1087146107f8578063a645c9c21461080b578063acaebdf61461081e57600080fd5b8063962e4dc21161021b578063962e4dc21461078457806398456f3e146107975780639a2b7c81146107aa5780639cce7cf9146107bd578063a040aec6146104b357600080fd5b806380947f8014610738578063880eff391461074b578063918a5fcd1461075e57806391e7b2771461077157600080fd5b80633430ec061161035d57806360e13cde116102e55780636f099c8d116102a95780636f099c8d146106d957806371d91d28146106ec5780637b6e0b0e146106ff5780637c191d20146107125780637de8c6f81461072557600080fd5b806360e13cde14610685578063613d0a821461069857806363138d4f146106ab578063659bbb4f146106be5780636e7f1fe7146106c657600080fd5b806340fe26621161032c57806340fe26621461062657806344cf3bc7146106395780634a61af1f1461064c5780634d2c74b31461065f5780635590c2d91461067257600080fd5b80633430ec06146105e5578063371303c0146105f85780633a411f12146106005780633a425dfc1461061357600080fd5b806318093b46116103eb578063219cddeb116103af578063219cddeb146105865780632294fc7f146105995780632871ef85146105ac5780632b21ef44146105bf5780632d34e798146105d257600080fd5b806318093b461461052757806319b621d61461053a5780631aba07ea1461054d5780631de2f343146105605780632007332e1461057357600080fd5b80630ba8a73b116104325780630ba8a73b146104d35780631287a68c146104e6578063135d52f7146104ee5780631581cf1914610501578063165821501461051457600080fd5b8063034aef7114610464578063050082f81461048d578063087b4e84146104a05780630b3b996a146104b3575b600080fd5b610477610472366004611838565b610a26565b6040516104849190611869565b60405180910390f35b61047761049b366004611838565b610a58565b6104776104ae366004611838565b610a81565b6104c66104c136600461196e565b610ab2565b6040516104849190611a05565b6104776104e1366004611838565b610ad5565b600054610477565b6104776104fc366004611838565b610afa565b61047761050f366004611838565b610b1c565b610477610522366004611838565b610b45565b610477610535366004611838565b610b71565b610477610548366004611838565b610b9c565b61047761055b366004611838565b610c08565b61047761056e366004611838565b610c3e565b610477610581366004611838565b610c6b565b610477610594366004611838565b610c8d565b6104776105a7366004611838565b610cb6565b6104776105ba366004611838565b610ceb565b6104776105cd366004611838565b610d14565b6104776105e0366004611838565b610d3d565b6104c66105f3366004611838565b610d66565b610477610e0f565b61047761060e366004611838565b610e28565b610477610621366004611838565b610e4a565b610477610634366004611838565b610e75565b610477610647366004611838565b610ea4565b61047761065a366004611838565b610ecd565b61047761066d366004611838565b610efa565b610477610680366004611838565b610f23565b610477610693366004611838565b610f59565b6104c66106a636600461196e565b610f85565b6104776106b936600461196e565b610fb0565b610477610fd9565b6104776106d4366004611838565b611013565b6104776106e7366004611838565b61103e565b6104776106fa366004611838565b611067565b61047761070d366004611838565b611092565b610477610720366004611838565b6110bd565b610477610733366004611838565b6110e6565b610477610746366004611838565b611108565b610477610759366004611838565b611136565b61047761076c366004611838565b611163565b61047761077f366004611838565b61118c565b6104c661079236600461196e565b6111ca565b6104776107a5366004611838565b61121b565b6104776107b8366004611838565b61124b565b6104c66107cb36600461196e565b61126d565b6107e36107de36600461196e565b61128d565b6040516104849190611a37565b6104776112e7565b610477610806366004611838565b611328565b610477610819366004611838565b611351565b61047761082c366004611838565b611373565b61047761083f366004611a97565b61139e565b610477610852366004611838565b6113cd565b610477610865366004611838565b6113f6565b610477610878366004611838565b61141f565b61047761088b366004611838565b611448565b61047761089e366004611838565b611471565b6104776108b1366004611838565b6114a5565b6104776108c4366004611838565b6114c7565b6104776108d7366004611838565b6114f0565b6108ef6108ea36600461196e565b611516565b6040516104849190611ae7565b61047761090a366004611838565b61159d565b61047761091d366004611838565b6115c8565b610477610930366004611838565b6115f2565b610477610943366004611838565b611614565b610477610956366004611838565b611636565b610477610969366004611838565b611662565b61047761097c366004611838565b611694565b61047761098f366004611838565b6116be565b6104776109a2366004611838565b6116e7565b6104c66109b536600461196e565b611716565b6104776109c8366004611838565b611755565b6104776109db366004611838565b61177f565b6104776109ee366004611838565b6117aa565b610a06610a0136600461196e565b6117d5565b6040516104849190611b0a565b610477610a21366004611838565b611803565b6000610a30610e0f565b5065deadbeef00366000805b84811015610a4f57369150600101610a3c565b50909392505050565b6000610a62610e0f565b5065deadbeef00326000805b84811015610a4f57329150600101610a6e565b6000610a8b610e0f565b5065deadbeef005260005b83811015610aab576000829052600101610a96565b5092915050565b606060086040828451602086016000855af180610ace57600080fd5b5050919050565b6000610adf610e0f565b5065deadbeef000160005b83811015610aab57600101610aea565b6000610b04610e0f565b5065deadbeef001760008315610aab57600101610aea565b6000610b26610e0f565b5065deadbeef00346000805b84811015610a4f57349150600101610b32565b6000610b4f610e0f565b5065deadbeef000660005b83811015610aab5760001990910690600101610b5a565b6000610b7b610e0f565b5065deadbeef00136000805b84811015610a4f576001808413925001610b87565b6000610ba6610e0f565b506001600160e01b0319600090815265deadbeef002090805b84811015610bd65760046000209150600101610bbf565b507f29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c2388114610aab575060009392505050565b6000610c12610e0f565b5065deadbeef00a4601081905260005b83811015610aab576004600360028360066010a4600101610c22565b6000610c48610e0f565b5065deadbeef001a6000805b84811015610a4f57600083901a9150600101610c54565b6000610c75610e0f565b5065deadbeef001b60008315610aab57600101610aea565b6000610c97610e0f565b5065deadbeef00426000805b84811015610a4f57429150600101610ca3565b6000610cc0610e0f565b5065deadbeef0031600030815b85811015610ce15781319250600101610ccd565b5091949350505050565b6000610cf5610e0f565b5065deadbeef00486000805b84811015610a4f57489150600101610d01565b6000610d1e610e0f565b5065deadbeef003d6000805b84811015610a4f573d9150600101610d2a565b6000610d47610e0f565b5065deadbeef00436000805b84811015610a4f57439150600101610d53565b60028181548110610d7657600080fd5b906000526020600020018054909150610d8e90611b2e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dba90611b2e565b8015610e075780601f10610ddc57610100808354040283529160200191610e07565b820191906000526020600020905b815481529060010190602001808311610dea57829003601f168201915b505050505081565b60008054610e1e906001611b70565b6000819055919050565b6000610e32610e0f565b5065deadbeef000460008315610aab57600101610aea565b6000610e54610e0f565b5065deadbeef003760005b83811015610aab57602060008037600101610e5f565b6000610e7f610e0f565b5065deadbeef00a0601081905260005b83811015610aab5760066010a0600101610e8f565b6000610eae610e0f565b5065deadbeef00336000805b84811015610a4f57339150600101610eba565b6000610ed7610e0f565b5065deadbeef005360005b83811015610aab5763deadbeef600052600101610ee2565b6000610f04610e0f565b5065deadbeef003a6000805b84811015610a4f573a9150600101610f10565b6000610f2d610e0f565b5065deadbeef00516000818152805b84811015610f51576000519150600101610f3c565b509392505050565b6000610f63610e0f565b5065deadbeef001d60005b83811015610aab5760009190911d90600101610f6e565b6060600560208301835160405160208183856000885af180610fa657600080fd5b5095945050505050565b600060026020830183518360208183856000885af180610fcf57600080fd5b5050505050919050565b6000610fe3610e0f565b505b6103e85a111561100c5760018060008282546110019190611b70565b90915550610fe59050565b5060015490565b600061101d610e0f565b5065deadbeef00106000805b84811015610a4f576001838110925001611029565b6000611048610e0f565b5065deadbeef00446000805b84811015610a4f57449150600101611054565b6000611071610e0f565b5065deadbeef00116000805b84811015610a4f57600180841192500161107d565b600061109c610e0f565b5065deadbeef003e60005b83811015610aab5760206000803e6001016110a7565b60006110c7610e0f565b5065deadbeef00456000805b84811015610a4f574591506001016110d3565b60006110f0610e0f565b5065deadbeef000260008315610aab57600101610aea565b6000611112610e0f565b5065deadbeef000860005b83811015610aab5760001960008308915060010161111d565b6000611140610e0f565b5065deadbeef005460008181555b83811015610aab57600054915060010161114e565b600061116d610e0f565b5065deadbeef005a6000805b84811015610a4f575a9150600101611179565b6000611196610e0f565b5065deadbeef001960005b838110156111b4579019906001016111a1565b5065deadbeef001981146111c457195b92915050565b606081516060146111f65760405162461bcd60e51b81526004016111ed90611bb1565b60405180910390fd5b600760208301835160408482846000875af18061121257600080fd5b50505050919050565b6000611225610e0f565b5065deadbeef00a1601081905260005b83811015610aab578060066010a1600101611235565b6000611255610e0f565b5065deadbeef001660008315610aab57600101610aea565b60606004602083018351604051818183856000885af180610fa657600080fd5b600081516080146112b05760405162461bcd60e51b81526004016111ed90611bf5565b6001602083016040840151601f1a602082015260206040516080836000865af1806112da57600080fd5b6040515195945050505050565b60006112f1610e0f565b505b6103e85a111561100c57600180600082825461130f9190611b70565b9091555050600154611322904390611c1b565b506112f3565b6000611332610e0f565b5065deadbeef00466000805b84811015610a4f5746915060010161133e565b600061135b610e0f565b5065deadbeef000560008315610aab57600101610aea565b600061137d610e0f565b5065deadbeef003960005b83811015610aab57602060008039600101611388565b600280546001810182556000918252839083906020842001916113c2919083611cdf565b505060025492915050565b60006113d7610e0f565b5065deadbeef00596000805b84811015610a4f575991506001016113e3565b6000611400610e0f565b5065deadbeef00386000805b84811015610a4f5738915060010161140c565b6000611429610e0f565b5065deadbeef00416000805b84811015610a4f57419150600101611435565b6000611452610e0f565b5065deadbeef00306000805b84811015610a4f5730915060010161145e565b600061147b610e0f565b5065deadbeef00a3601081905260005b83811015610aab57600360028260066010a360010161148b565b60006114af610e0f565b5065deadbeef000b60008315610aab57600101610aea565b60006114d1610e0f565b5065deadbeef00476000805b84811015610a4f574791506001016114dd565b60006114fa610e0f565b5065deadbeef001c6000805b84811015610a4f57600101611506565b60006101008180828560405161152c9190611dd8565b600060405180830381855afa9150503d8060008114611567576040513d603f01601f191681016040523d815291503d6000602084013e61156c565b606091505b50915091508161157e5761157e611de4565b6020810181518101906115919190611e05565b60011495945050505050565b60006115a7610e0f565b5065deadbeef00356000805b84811015610a4f5760003591506001016115b3565b60006115d2610e0f565b5065deadbeef005560005b83811015610aab5760008290556001016115dd565b60006115fc610e0f565b5065deadbeef001860008315610aab57600101610aea565b600061161e610e0f565b5065deadbeef000360008315610aab57600101610aea565b6000611640610e0f565b5065deadbeef000760005b83811015610aab576000199091079060010161164b565b600061166c610e0f565b5065deadbeef00a2601081905260005b83811015610aab5760028160066010a260010161167c565b600061169e610e0f565b5065deadbeef000a60005b83811015610aab5760019182900a91016116a9565b60006116c8610e0f565b5065deadbeef00146000805b84811015610a4f576001915081016116d4565b60006116f1610e0f565b5065deadbeef004060006000194301815b85811015610ce15781409250600101611702565b606081516080146117395760405162461bcd60e51b81526004016111ed90611bb1565b600660208301835160408482846000875af18061121257600080fd5b600061175f610e0f565b5065deadbeef00156000805b84811015610a4f578215915060010161176b565b6000611789610e0f565b5065deadbeef00126000805b84811015610a4f576001838112925001611795565b60006117b4610e0f565b5065deadbeef003b600030815b85811015610ce157813b92506001016117c1565b6000600360208301835160405160148183856000885af1806117f657600080fd5b8151979650505050505050565b600061180d610e0f565b5065deadbeef000960005b83811015610aab57600019600183099150600101611818565b80356111c4565b60006020828403121561184d5761184d600080fd5b60006118598484611831565b949350505050565b805b82525050565b602081016111c48284611861565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156118b3576118b3611877565b6040525050565b60006118c96000604051905090565b90506118d5828261188d565b919050565b600067ffffffffffffffff8211156118f4576118f4611877565b601f19601f83011660200192915050565b82818337506000910152565b600061192461191f846118da565b6118ba565b90508281526020810184848401111561193f5761193f600080fd5b610f51848285611905565b600082601f83011261195e5761195e600080fd5b8135611859848260208601611911565b60006020828403121561198357611983600080fd5b813567ffffffffffffffff81111561199d5761199d600080fd5b6118598482850161194a565b60005b838110156119c45780820151838201526020016119ac565b50506000910152565b60006119dd826000815192915050565b8084526020840193506119f48185602086016119a9565b601f01601f19169290920192915050565b60208082528101611a1681846119cd565b9392505050565b60006001600160a01b0382166111c4565b61186381611a1d565b602081016111c48284611a2e565b60008083601f840112611a5a57611a5a600080fd5b50813567ffffffffffffffff811115611a7557611a75600080fd5b602083019150836001820283011115611a9057611a90600080fd5b9250929050565b60008060208385031215611aad57611aad600080fd5b823567ffffffffffffffff811115611ac757611ac7600080fd5b611ad385828601611a45565b92509250509250929050565b801515611863565b602081016111c48284611adf565b6bffffffffffffffffffffffff198116611863565b602081016111c48284611af5565b634e487b7160e01b600052602260045260246000fd5b600281046001821680611b4257607f821691505b602082108103611b5457611b54611b18565b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156111c4576111c4611b5a565b6014815260006020820173092dcecc2d8d2c840d2dce0eae840d8cadccee8d60631b815291505b5060200190565b602080825281016111c481611b83565b601a81526000602082017f496e76616c696420696e7075742064617461206c656e6774682e00000000000081529150611baa565b602080825281016111c481611bc1565b634e487b7160e01b600052601260045260246000fd5b600082611c2a57611c2a611c05565b500690565b60006111c4611c3b8381565b90565b611c4783611c2f565b815460001960089490940293841b1916921b91909117905550565b6000611c6f818484611c3e565b505050565b81811015611c8f57611c87600082611c62565b600101611c74565b5050565b601f821115611c6f57611cb181600081815281906020902092915050565b6020601f85010481016020851015611cc65750805b611cd86020601f860104830182611c74565b5050505050565b8267ffffffffffffffff811115611cf857611cf8611877565b611d028254611b2e565b611d0d828285611c93565b6000601f831160018114611d415760008415611d295750858201355b600019600886021c1981166002860217865550611da7565b601f198416611d5b86600081815281906020902092915050565b60005b82811015611d7e5788850135825560209485019460019092019101611d5e565b86831015611d9a57600019601f88166008021c19858a01351682555b6001600288020188555050505b50505050505050565b6000611dc0826000815192915050565b611dce8185602086016119a9565b9290920192915050565b6000611a168284611db0565b634e487b7160e01b600052600160045260246000fd5b6000815190506111c4565b600060208284031215611e1a57611e1a600080fd5b60006118598484611dfa56fea2646970667358221220aed71518a155a0a83f8430ad77b2dd0a5bbca1ca3538212e3da1203e2ed5ab0d64736f6c63430008170033", } // LoadTesterABI is the input ABI used to generate the binding from. diff --git a/bindings/tester/precompiles.go b/bindings/tester/precompiles.go index 6d573e505..9f3434d28 100644 --- a/bindings/tester/precompiles.go +++ b/bindings/tester/precompiles.go @@ -2,8 +2,6 @@ package tester import ( "crypto/ecdsa" - "crypto/elliptic" - cryptorand "crypto/rand" "encoding/binary" "encoding/hex" "fmt" @@ -165,24 +163,29 @@ func GenerateBlake2FInput() []byte { } func GenerateP256VerifyInput() []byte { - message := []byte("Test P256Verify") - privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) + // message := []byte("Test P256Verify") + // privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) + // if err != nil { + // panic(err) + // } + // publicKey := privateKey.PublicKey + // messageHash := crypto.Keccak256Hash(message) + // signature, err := crypto.Sign(messageHash.Bytes(), privateKey) + // if err != nil { + // panic(err) + // } + + // // Prepare input data for ecRecover precompiled contract + // inputData := make([]byte, 0, 160) + // inputData = append(inputData, messageHash.Bytes()...) + // inputData = append(inputData, signature...) + // inputData = append(inputData, publicKey.X.Bytes()...) + // inputData = append(inputData, publicKey.Y.Bytes()...) + ethBenchmarkInput := "4cee90eb86eaa050036147a12d49004b6b9c72bd725d39d4785011fe190f0b4da73bd4903f0ce3b639bbbf6e8e80d16931ff4bcf5993d58468e8fb19086e8cac36dbcd03009df8c59286b162af3bd7fcc0450c9aa81be5d10d312af6c66b1d604aebd3099c618202fcfe16ae7770b0c49ab5eadf74b754204a3bb6060e44eff37618b065f9832de4ca6ca971a7a1adc826d0f7c00181a5fb2ddf79ae00b4e10e" + inputData, err := hex.DecodeString(ethBenchmarkInput) if err != nil { panic(err) } - publicKey := privateKey.PublicKey - messageHash := crypto.Keccak256Hash(message) - signature, err := crypto.Sign(messageHash.Bytes(), privateKey) - if err != nil { - panic(err) - } - - // Prepare input data for ecRecover precompiled contract - inputData := make([]byte, 0, 160) - inputData = append(inputData, messageHash.Bytes()...) - inputData = append(inputData, signature...) - inputData = append(inputData, publicKey.X.Bytes()...) - inputData = append(inputData, publicKey.Y.Bytes()...) return inputData } From eaebade4530f26acca8abf0425f6eb9239adae52 Mon Sep 17 00:00:00 2001 From: "jason.huang" <20609724+doutv@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:36:16 +0800 Subject: [PATCH 4/6] delete unused comment --- bindings/tester/precompiles.go | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/bindings/tester/precompiles.go b/bindings/tester/precompiles.go index 9f3434d28..4bf72ba22 100644 --- a/bindings/tester/precompiles.go +++ b/bindings/tester/precompiles.go @@ -163,24 +163,6 @@ func GenerateBlake2FInput() []byte { } func GenerateP256VerifyInput() []byte { - // message := []byte("Test P256Verify") - // privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) - // if err != nil { - // panic(err) - // } - // publicKey := privateKey.PublicKey - // messageHash := crypto.Keccak256Hash(message) - // signature, err := crypto.Sign(messageHash.Bytes(), privateKey) - // if err != nil { - // panic(err) - // } - - // // Prepare input data for ecRecover precompiled contract - // inputData := make([]byte, 0, 160) - // inputData = append(inputData, messageHash.Bytes()...) - // inputData = append(inputData, signature...) - // inputData = append(inputData, publicKey.X.Bytes()...) - // inputData = append(inputData, publicKey.Y.Bytes()...) ethBenchmarkInput := "4cee90eb86eaa050036147a12d49004b6b9c72bd725d39d4785011fe190f0b4da73bd4903f0ce3b639bbbf6e8e80d16931ff4bcf5993d58468e8fb19086e8cac36dbcd03009df8c59286b162af3bd7fcc0450c9aa81be5d10d312af6c66b1d604aebd3099c618202fcfe16ae7770b0c49ab5eadf74b754204a3bb6060e44eff37618b065f9832de4ca6ca971a7a1adc826d0f7c00181a5fb2ddf79ae00b4e10e" inputData, err := hex.DecodeString(ethBenchmarkInput) if err != nil { From fc323725d20ac87a7ebfaee958a73f28477645b2 Mon Sep 17 00:00:00 2001 From: "jason.huang" <20609724+doutv@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:36:16 +0800 Subject: [PATCH 5/6] add source --- bindings/tester/precompiles.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bindings/tester/precompiles.go b/bindings/tester/precompiles.go index 4bf72ba22..c6a24e393 100644 --- a/bindings/tester/precompiles.go +++ b/bindings/tester/precompiles.go @@ -163,6 +163,8 @@ func GenerateBlake2FInput() []byte { } func GenerateP256VerifyInput() []byte { + // Ethereum benchmark input for P256Verify + // https://github.com/ethereum/go-ethereum/pull/30043/files#diff-b8e213cc8b44bc7d5d5e727524d63e19dd0f21312713ce2471948d1f64db212cR404 ethBenchmarkInput := "4cee90eb86eaa050036147a12d49004b6b9c72bd725d39d4785011fe190f0b4da73bd4903f0ce3b639bbbf6e8e80d16931ff4bcf5993d58468e8fb19086e8cac36dbcd03009df8c59286b162af3bd7fcc0450c9aa81be5d10d312af6c66b1d604aebd3099c618202fcfe16ae7770b0c49ab5eadf74b754204a3bb6060e44eff37618b065f9832de4ca6ca971a7a1adc826d0f7c00181a5fb2ddf79ae00b4e10e" inputData, err := hex.DecodeString(ethBenchmarkInput) if err != nil { From f9b89b0f0a9d31f8f91731ca7788836dbcb601b3 Mon Sep 17 00:00:00 2001 From: "jason.huang" <20609724+doutv@users.noreply.github.com> Date: Thu, 14 Nov 2024 09:55:48 +0800 Subject: [PATCH 6/6] disable P256Verify in GetRandomPrecompiledContractAddress --- bindings/tester/precompiles.go | 2 +- contracts/src/tester/LoadTester.sol | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bindings/tester/precompiles.go b/bindings/tester/precompiles.go index c6a24e393..853b9ad78 100644 --- a/bindings/tester/precompiles.go +++ b/bindings/tester/precompiles.go @@ -234,7 +234,7 @@ func GetRandomPrecompiledContractAddress() int { // 7, // NOTE: ecMul requires a lot of gas and buggy 8, 9, - 100, + // 100, // P256Verify haven't been implemented on Ethereum yet } return codes[rand.Intn(len(codes))] diff --git a/contracts/src/tester/LoadTester.sol b/contracts/src/tester/LoadTester.sol index 6151bc087..836b0f919 100644 --- a/contracts/src/tester/LoadTester.sol +++ b/contracts/src/tester/LoadTester.sol @@ -932,6 +932,7 @@ contract LoadTester { // RIP-7212 Precompile for secp256r1 Curve Support // https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md + // Ref: https://github.com/daimo-eth/p256-verifier/blob/607d3ec8377a3f59d65eca60d87dee8485d2ebcc/src/P256.sol function testP256Verify(bytes memory inputData) public returns (bool) { address P256VERIFY_PRECOMPILED_CONTRACT = 0x0000000000000000000000000000000000000100; (bool success, bytes memory ret) = P256VERIFY_PRECOMPILED_CONTRACT.staticcall(inputData);