1 tx
41 calls
constructor
constructor()
functions
circuits
viewfunction circuits(uint8, uint16, uint8) view returns (bool registered, bool enabled)
getVerificationKey
viewfunction getVerificationKey(uint8 blockType, uint16 blockSize, uint8 blockVersion) view returns (uint256[18])
isCircuitEnabled
viewfunction isCircuitEnabled(uint8 blockType, uint16 blockSize, uint8 blockVersion) view returns (bool)
isCircuitRegistered
viewfunction isCircuitRegistered(uint8 blockType, uint16 blockSize, uint8 blockVersion) view returns (bool)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
verifyProofs
viewfunction verifyProofs(uint8 blockType, uint16 blockSize, uint8 blockVersion, uint256[] publicInputs, uint256[] proofs) view returns (bool)
claimOwnership
nonpayablefunction claimOwnership()
disableCircuit
nonpayablefunction disableCircuit(uint8 blockType, uint16 blockSize, uint8 blockVersion)
registerCircuit
nonpayablefunction registerCircuit(uint8 blockType, uint16 blockSize, uint8 blockVersion, uint256[18] vk)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
CircuitDisabled
event CircuitDisabled(uint8 indexed blockType, uint16 blockSize, uint8 blockVersion)
CircuitRegistered
event CircuitRegistered(uint8 indexed blockType, uint16 blockSize, uint8 blockVersion)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50600180546001600160a01b03191633179055612fdb806100326000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637d600628116100715780637d600628146101ec5780638da5cb5b14610220578063ac3938a814610244578063dc77295b14610293578063e30c397814610372578063f2fde38b1461037a576100b4565b80634be6b36a146100b95780634c872386146100f35780634e71e0c81461013b578063715018a61461014357806379c520d81461014b5780637ada4d47146101b8575b600080fd5b6100f160048036036102a08110156100d057600080fd5b5060ff813581169161ffff60208201351691604082013516906060016103a0565b005b6101276004803603606081101561010957600080fd5b5060ff813581169161ffff6020820135169160409091013516610548565b604080519115158252519081900360200190f35b6100f161057c565b6100f1610630565b61017f6004803603606081101561016157600080fd5b5060ff813581169161ffff60208201351691604090910135166106c8565b604051808261024080838360005b838110156101a557818101518382015260200161018d565b5050505090500191505060405180910390f35b6100f1600480360360608110156101ce57600080fd5b5060ff813581169161ffff6020820135169160409091013516610737565b6101276004803603606081101561020257600080fd5b5060ff813581169161ffff60208201351691604090910135166108ee565b610228610927565b604080516001600160a01b039092168252519081900360200190f35b6102786004803603606081101561025a57600080fd5b5060ff813581169161ffff6020820135169160409091013516610936565b60408051921515835290151560208301528051918290030190f35b610127600480360360a08110156102a957600080fd5b60ff823581169261ffff602082013516926040820135909216918101906080810160608201356401000000008111156102e157600080fd5b8201836020820111156102f357600080fd5b8035906020019184602083028401116401000000008311171561031557600080fd5b91939092909160208101903564010000000081111561033357600080fd5b82018360208201111561034557600080fd5b8035906020019184602083028401116401000000008311171561036757600080fd5b509092509050610965565b610228610c46565b6100f16004803603602081101561039057600080fd5b50356001600160a01b0316610c55565b600054156103e2576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016000819055546001600160a01b03163314610435576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b60ff808516600090815260036020908152604080832061ffff881684528252808320868516845290915290208054909116156104ad576040805162461bcd60e51b81526020600482015260126024820152711053149150511657d49151d254d51154915160721b604482015290519081900360640190fd5b60005b60128110156104e3578281601281106104c557fe5b60200201358260010182601281106104d957fe5b01556001016104b0565b50805461ff001960ff19909116600117166101001781556040805161ffff8616815260ff85811660208301528251908816927fbbc73bcb6ee2e0eac3884ca46e9d682e7c832ae8a71ac90d7a315e3fdc305fc6928290030190a2505060008055505050565b60ff928316600090815260036020908152604080832061ffff95909516835293815283822092851682529190915220541690565b6002546001600160a01b031633146105ca576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6002546001546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b0316331461067e576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6106d0612d5e565b60ff808516600090815260036020908152604080832061ffff88168452825280832093861683529290528190208151610240810190925260010160128282826020028201915b81548152602001906001019080831161071657505050505090509392505050565b60005415610779576040805162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b604482015290519081900360640190fd5b60016000819055546001600160a01b031633146107cc576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b60ff808416600090815260036020908152604080832061ffff8716845282528083208585168452909152902080549091161515600114610844576040805162461bcd60e51b815260206004820152600e60248201526d1393d517d49151d254d51154915160921b604482015290519081900360640190fd5b805460ff610100909104161515600114610898576040805162461bcd60e51b815260206004820152601060248201526f1053149150511657d11254d05093115160821b604482015290519081900360640190fd5b805461ff00191681556040805161ffff8516815260ff84811660208301528251908716927f89f9b8fa65d9c4c12333193ab5c01b98768aa5573e7821522cdfa937d371d7bf928290030190a25050600080555050565b60ff928316600090815260036020908152604080832061ffff959095168352938152838220928516825291909152205461010090041690565b6001546001600160a01b031681565b600360209081526000938452604080852082529284528284209052825290205460ff8082169161010090041682565b6000806000806109808b60ff168b61ffff168b60ff16610d2e565b92509250925080610b265760ff808c16600090815260036020908152604080832061ffff8f16845282528083208d85168452909152902080549091161515600114610a03576040805162461bcd60e51b815260206004820152600e60248201526d1393d517d49151d254d51154915160921b604482015290519081900360640190fd5b805460ff610100909104161515600114610a52576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d153905093115160aa1b604482015290519081900360640190fd5b604080516101c081019091526001820190808260000154815260200182600101548152602001826002015481526020018260030154815260200182600401548152602001826005015481526020018260060154815260200182600701548152602001826008015481526020018260090154815260200182600a0154815260200182600b0154815260200182600c0154815260200182600d0154905260408051608081019091529095508082600e0154815260200182600f015481526020018260100154815260200182601101549052935050505b6001871415610bb957610baf8383888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611a9792505050565b9350505050610c3b565b610baf8383888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e9250611e2c915050565b979650505050505050565b6002546001600160a01b031681565b6001546001600160a01b03163314610ca3576040805162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b604482015290519081900360640190fd5b6001600160a01b03811615801590610cc957506001546001600160a01b03828116911614155b610d0c576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610d36612d7d565b610d3e612d9c565b600085158015610d4f575084610180145b8015610d5b5750836020145b15610f7757604051806101c00160405280600080516020612f198339815191528152602001600080516020612e178339815191528152602001600080516020612eb98339815191528152602001600080516020612e378339815191528152602001600080516020612f398339815191528152602001600080516020612f868339815191528152602001600080516020612e578339815191528152602001600080516020612df78339815191528152602001600080516020612ed98339815191528152602001600080516020612ef983398151915281526020017ef8773ded364b4b208c2addbb9126f41a747edda2667cd47a0a42005b5a830881526020017f0f0cc3c25571740cce8a807b35002602289baa216caeb8fe5d3ee95c62e498d681526020017f0a4bc5ed595f353c8e4e13368908833a740290a771de294ebcb8dadb1e53fb2381526020017f086a11cf9aaaa6ff800576ae041766fb38fa5faaea7b7fc0ce865e7ed5e62126815250925060405180608001604052807f1c1bc24ccb251eb17fe5db8eedfaec29a6d17689405494fd339c6fe54594b16781526020017f2fe49b66c9c6ae217c48f14fef5cb69d76fa616f165620c17b7f95417af824ac81526020017f06bc7f5d0b11ffdc1b5b08555561ef6e0b3ee95e8b89107d264fc9ed9aa923e881526020017f0a83ad58b3a0acacbba1c9a4921ad867697ebd0ce946b30bccbbed89ab9b53b7815250915060019050611a8e565b85158015610f86575084610100145b8015610f925750836020145b156111af57604051806101c00160405280600080516020612f198339815191528152602001600080516020612e178339815191528152602001600080516020612eb98339815191528152602001600080516020612e378339815191528152602001600080516020612f398339815191528152602001600080516020612f868339815191528152602001600080516020612e578339815191528152602001600080516020612df78339815191528152602001600080516020612ed98339815191528152602001600080516020612ef983398151915281526020017f0fc047c1ffce8ba452bf66e1d93712daeadeb150e2ab8d8639301efb60d379b681526020017f23a6231ff7720d48f752a1542ede137f8190b69ce85bf08ea8aff3ceff5dfc5781526020017f26268d63efa8ba734d449d86faa298e37d039da3881ad5e0269ade8755cf422c81526020017f106ddc50119168e020316987c0d3c623878fa47ed14c8117959a05a594b3e62a815250925060405180608001604052807f1994083c5ae95dd8fdd51eedce4608a1a96c2f905f60e977202c1404e20c4e1b81526020017f2cafa02237ac38a9ed6c705af8f0e2e0f7268058ea1541381bca03f89bf60bf981526020017f28987b1ab97ab4eef6c0349aef9b5083e94e6ab7a110e466d1932539cd5ad7ab81526020017f290f09085ac616da89de9177aeeb909285abeef02eec355f6f8476fe8599f815815250915060019050611a8e565b851580156111bd5750846080145b80156111c95750836020145b156113e557604051806101c00160405280600080516020612f198339815191528152602001600080516020612e178339815191528152602001600080516020612eb98339815191528152602001600080516020612e378339815191528152602001600080516020612f398339815191528152602001600080516020612f868339815191528152602001600080516020612e578339815191528152602001600080516020612df78339815191528152602001600080516020612ed98339815191528152602001600080516020612ef983398151915281526020017f119efb4eda0f953a298be779222fc5f8099bc948fcf3ea633c3f23a588e4beb681526020017f043def4097bf4fa6c2800d9b056b82bce5ce7bd9fe3726913701eb6074dd4ad381526020017f0d110498846be32683cd0518ffd747d10eb8dc761e9a3ce3594b2847883b5d7f81526020017f10b6becc09c44c7ed4c238d959b4822d3cbe2aa9f8dc70277254f3e552287124815250925060405180608001604052807efe6e3bccaa26a2d56015d0e2058d7a130801426590290c0a87ad6dbd76501b81526020017f2705dca2509abf8569bd09cf9752cb2a020d50f25846921b1ca764e0f2df57ad81526020017f1b05d8d54e4ab6a14aa094b80af9df496bb5af2f9ab937be401ca730cd44221a81526020017f29eedebdc32e298132096cc2d7b4a6f482a7f0be8f11b04c59808e9a3ac2cf7a815250915060019050611a8e565b851580156113f35750846040145b80156113ff5750836020145b1561161c57604051806101c00160405280600080516020612f198339815191528152602001600080516020612e178339815191528152602001600080516020612eb98339815191528152602001600080516020612e378339815191528152602001600080516020612f398339815191528152602001600080516020612f868339815191528152602001600080516020612e578339815191528152602001600080516020612df78339815191528152602001600080516020612ed98339815191528152602001600080516020612ef983398151915281526020017f154b301d93f61ea7d758b2d2e6893e9454460f4211bc90cdc7d116aca1ace90581526020017f0e3a9fd01e1b8d439fb719a3b3a00e836edfb86eefda59fbdfc9ca6ff85c673581526020017f2262b3b799699d4b7fdde335ef8c13b18b3cb8f47024a33b87938581e122d81481526020017f2fb2478e7d67e8244671b636b195a0975cf7e5204a24a3e46e43bab6471c0933815250925060405180608001604052807f2e1059990a0a93d78943ed638bd42a625f358009eee722e14dd6b3481e409ccc81526020017f14f1724c2559b8a123667406c8f527865acba5c3c713351c86c6a32484991c4f81526020017f029e343fef8147d5235ffdea21f6d55747cc5f7f2cf41324a4bfec69bc6f07c881526020017f0e7f038306b334f654e8cbf0313de633ebe9fdc6e8b2d89746f127be726f31ca815250915060019050611a8e565b8515801561162a5750846020145b80156116365750836020145b1561185357604051806101c00160405280600080516020612f198339815191528152602001600080516020612e178339815191528152602001600080516020612eb98339815191528152602001600080516020612e378339815191528152602001600080516020612f398339815191528152602001600080516020612f868339815191528152602001600080516020612e578339815191528152602001600080516020612df78339815191528152602001600080516020612ed98339815191528152602001600080516020612ef983398151915281526020017f05a632ce83b53cf057c8a02d7e69d2042e3977b92e2ce4b9b0edd83cfc702b8181526020017f26263d2fbc425253942030059338ba3e13a6285b01523c261d593ca0930e696f81526020017f11e25dfde7a6b7ccf007676976e880d0a786db2942374d8d5cc0fc39ea7af32c81526020017f1b970e751eb52a5186a8a9a94a5e608e62524418d4e8d2af80d41590affcd55d815250925060405180608001604052807f0e5ffa5e99f88402bf7939c810ba251bfdf003d5a26c5048ddd9b7c2bc811f0d81526020017f0701c85554e1b3f4be001c9b344f229eefd5eb929a0f1fe8c4ce736eb57d9d5681526020017f1453e20c8f0441630172283643e7b63262f68630f9a6f9317afe2105838c58a981526020017f0c95380f8a84d7292a495c3f543869c7a29a2ab3b5ce5d037f117498119c275f815250915060019050611a8e565b851580156118615750846010145b801561186d5750836020145b15611a8a57604051806101c00160405280600080516020612f198339815191528152602001600080516020612e178339815191528152602001600080516020612eb98339815191528152602001600080516020612e378339815191528152602001600080516020612f398339815191528152602001600080516020612f868339815191528152602001600080516020612e578339815191528152602001600080516020612df78339815191528152602001600080516020612ed98339815191528152602001600080516020612ef983398151915281526020017f15737dec58194b7c0581279e48ad7499945b0ff9552dc604b402f66e1b7c9ba481526020017f10ea0fd1312b961380af2c87211667595dbf6d4b97bf032386938b6871aff5ef81526020017f27c2bd061856716f5d878c84987dc8a305aef804e9f3868209858450b2eb58a681526020017f29242463af13033e556e588e2a737f1c332b6177b22c04b7beee4a2ac9b1a7d4815250925060405180608001604052807f0ff678ce76753d04ae7ab67838025ad3aaf5fc9e4095da3c5fd1854113f1524681526020017f0d8fd1677b3b03ed0c2e51bdc9b789a90b1ebdca38ba239ca5271ecae2ca3ba081526020017f245ac24d03e13d2f300bc80706244fdc14fbaadb56b4faf7d6dba5f532fcb28a81526020017f28bf3a67cb0924e2ec7f8284e406580213c1ac0a456179b0fda78a34384be418815250915060019050611a8e565b5060005b93509350939050565b80516000907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000190600114611b02576040805162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f56414c554560981b604482015290519081900360640190fd5b611b0a612dba565b611b12612d9c565b865181526020808801519082015260006002815b8751811015611c375785888281518110611b3c57fe5b602002602001015110611b86576040805162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b604482015290519081900360640190fd5b60018201918a9060048110611b9757fe5b6020020151855260018201918a9060048110611baf57fe5b602002015185600160200201528751889082908110611bca57fe5b602002602001015185600260038110611bdf57fe5b602002015260606040850160808760076107d05a03fa925082611c0b5760009650505050505050611e24565b60608460c08660066107d05a03fa925082611c2f5760009650505050505050611e24565b600101611b26565b5060006040518061030001604052808a600081518110611c5357fe5b602002602001015181526020018a600181518110611c6d57fe5b602002602001015181526020018a600281518110611c8757fe5b602002602001015181526020018a600381518110611ca157fe5b602002602001015181526020018a600481518110611cbb57fe5b602002602001015181526020018a600581518110611cd557fe5b602002602001015181526020018c6000600e8110611cef57fe5b60200201518152602001611d138d6001600e8110611d0957fe5b602002015161244d565b815260408d81015160208301526060808f0151918301919091526080808f01519183019190915260a0808f01519183019190915286519082015260c001611d5b866001611d09565b815260c08d0151602082015260e08d015160408201526101008d015160608201526080018c6009602002015181526020018a600681518110611d9957fe5b60200260200101518152602001611dc38b600781518110611db657fe5b602002602001015161244d565b81526101408d015160208201526101608d015160408201526101808d015160608201526101a08d01516080909101529050611dfc612dd8565b6020816103008460086107d05a03fa9350838015611e1a5750805115155b9750505050505050505b949350505050565b600081600802845114611e705760405162461bcd60e51b8152600401808060200182810382526021815260200180612e776021913960400191505060405180910390fd5b81835181611e7a57fe5b0615611eb75760405162461bcd60e51b8152600401808060200182810382526021815260200180612e986021913960400191505060405180910390fd5b81835181611ec157fe5b04600114611f16576040805162461bcd60e51b815260206004820152601860248201527f496e76616c696420766572696669636174696f6e206b65790000000000000000604482015290519081900360640190fd5b6000606080611f26878787612477565b9194509250905082611f3e5760009350505050612444565b611f46612d9c565b611f518a8a84612ab2565b909450905083611f68576000945050505050612444565b60008660060260120167ffffffffffffffff81118015611f8757600080fd5b50604051908082528060200260200182016040528015611fb1578160200160208202803683370190505b50905060005b8781101561211057848160020281518110611fce57fe5b6020026020010151828260060281518110611fe557fe5b60200260200101818152505084816002026001018151811061200357fe5b602002602001015182826006026001018151811061201d57fe5b60200260200101818152505089816008026002018151811061203b57fe5b602002602001015182826006026002018151811061205557fe5b60200260200101818152505089816008026003018151811061207357fe5b602002602001015182826006026003018151811061208d57fe5b6020026020010181815250508981600802600401815181106120ab57fe5b60200260200101518282600602600401815181106120c557fe5b6020026020010181815250508981600802600501815181106120e357fe5b60200260200101518282600602600501815181106120fd57fe5b6020908102919091010152600101611fb7565b5081518151829060068a0290811061212457fe5b602090810291909101015261213a826001611d09565b81886006026001018151811061214c57fe5b60209081029190910101528a6002602002015181886006026002018151811061217157fe5b60209081029190910101528a6003602002015181886006026003018151811061219657fe5b60209081029190910101528a600460200201518188600602600401815181106121bb57fe5b60209081029190910101528a600560200201518188600602600501815181106121e057fe5b6020908102919091010152816002602002015181886006026006018151811061220557fe5b602090810291909101015261221b826003611d09565b81886006026007018151811061222d57fe5b60209081029190910101528a6006602002015181886006026008018151811061225257fe5b60209081029190910101528a6007602002015181886006026009018151811061227757fe5b60209081029190910101528a600860200201518188600602600a018151811061229c57fe5b60209081029190910101528a600960200201518188600602600b01815181106122c157fe5b6020026020010181815250508387600202815181106122dc57fe5b60200260200101518188600602600c01815181106122f657fe5b602002602001018181525050612317848860020260010181518110611db657fe5b8188600602600d018151811061232957fe5b60209081029190910101528a600a60200201518188600602600e018151811061234e57fe5b60209081029190910101528a600b60200201518188600602600f018151811061237357fe5b60209081029190910101528a600c602002015181886006026010018151811061239857fe5b60209081029190910101528a600d60200201518188600602601101815181106123bd57fe5b6020026020010181815250506000815160200290506123da612dd8565b60c082061561241a5760405162461bcd60e51b815260040180806020018281038252602d815260200180612f59602d913960400191505060405180910390fd5b602081836020860160086107d05a03fa975087801561243a575080516001145b9750505050505050505b95945050505050565b7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790819006900390565b600060608060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000190506000858751816124ad57fe5b04905060008667ffffffffffffffff811180156124c957600080fd5b506040519080825280602002602001820160405280156124f3578160200160208202803683370190505b5090508160010167ffffffffffffffff8111801561251057600080fd5b5060405190808252806020026020018201604052801561253a578160200160208202803683370190505b50935060005b8781101561272a578061256c57600182828151811061255b57fe5b602002602001018181525050612590565b6125778a8a83612c0a565b82828151811061258357fe5b6020026020010181815250505b81818151811061259c57fe5b6020026020010151600014156125f9576040805162461bcd60e51b815260206004820152601a60248201527f456e74726f70792073686f756c64206e6f74206265207a65726f000000000000604482015290519081900360640190fd5b838061260157fe5b82828151811061260d57fe5b60200260200101518660008151811061262257fe5b6020026020010151088560008151811061263857fe5b60200260200101818152505060005b8381101561272157848a82868502018151811061266057fe5b6020026020010151106126aa576040805162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b604482015290519081900360640190fd5b84806126b257fe5b85806126ba57fe5b8b8387860201815181106126ca57fe5b60200260200101518585815181106126de57fe5b6020026020010151098783600101815181106126f657fe5b60200260200101510886826001018151811061270e57fe5b6020908102919091010152600101612647565b50600101612540565b50612733612dba565b8760020260020167ffffffffffffffff8111801561275057600080fd5b5060405190808252806020026020018201604052801561277a578160200160208202803683370190505b5095508960008151811061278a57fe5b60200260200101518660008151811061279f57fe5b602002602001018181525050896001815181106127b857fe5b6020026020010151866001815181106127cd57fe5b602090810291909101015260015b8881101561292757848382815181106127f057fe5b60200260200101511061283a576040805162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b604482015290519081900360640190fd5b8a816008028151811061284957fe5b60200260200101518260006003811061285e57fe5b60200201528a518b906001600884020190811061287757fe5b60200260200101518260016003811061288c57fe5b6020020152825183908290811061289f57fe5b6020026020010151826002600381106128b457fe5b602002015260408260608160076107d05a03fa9750876128dc57600097505050505050611a8e565b815187518890600284029081106128ef57fe5b6020908102919091010152816001602002015187826002026001018151811061291457fe5b60209081029190910101526001016127db565b50612930612d9c565b8a60068151811061293d57fe5b60200260200101518160006004811061295257fe5b60200201528a518b90600790811061296657fe5b60200260200101518160016004811061297b57fe5b602002015260015b89811015612a5f578b816008026006018151811061299d57fe5b6020026020010151836000600381106129b257fe5b60200201528b518c90600760088402019081106129cb57fe5b6020026020010151836001600381106129e057fe5b602002015283518490829081106129f357fe5b602002602001015183600260038110612a0857fe5b6020020152604082810160608560076107d05a03fa985088612a335760009850505050505050611a8e565b60408260808460066107d05a03fa985088612a575760009850505050505050611a8e565b600101612983565b5080518751889060028c02908110612a7357fe5b60209081029190910101528060016020020151878a60020260010181518110612a9857fe5b602002602001018181525050505050505093509350939050565b6000612abc612d9c565b612ac4612d9c565b612acc612dba565b60005b8551811015612b8157868160020260048110612ae757fe5b60200201518252866002820260010160048110612b0057fe5b602002015182600160200201528551869082908110612b1b57fe5b602002602001015182600260038110612b3057fe5b6020020152604083810160608460076107d05a03fa945084612b585760009450505050612c02565b60408360808560066107d05a03fa945084612b795760009450505050612c02565b600101612acf565b508151604084015260208201516060840152612b9b612dba565b875181526020808901519082015285518690600090612bb657fe5b602002602001015181600260038110612bcb57fe5b602002015260408160608160076107d05a03fa945084612bf15760009450505050612c02565b805184526020908101519084015250505b935093915050565b60006003848360080260000181518110612c2057fe5b6020026020010151858460080260010181518110612c3a57fe5b6020026020010151868560080260020181518110612c5457fe5b6020026020010151878660080260030181518110612c6e57fe5b6020026020010151888760080260040181518110612c8857fe5b6020026020010151898860080260050181518110612ca257fe5b60200260200101518a8960080260060181518110612cbc57fe5b60200260200101518b8a60080260070181518110612cd657fe5b60200260200101518b8b81518110612cea57fe5b6020026020010151604051602001808a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200182815260200199505050505050505050506040516020818303038152906040528051906020012060001c901c90509392505050565b6040518061024001604052806012906020820280368337509192915050565b604051806101c00160405280600e906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6040518060200160405280600190602082028036833750919291505056fe1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed07996ff4415020bb7d187c637ac06f0796313e35d5a8dfe883ecc18a250b7aab1b72b9ab4579283e62445555d5b2921424213d09a776152361c46988b82be8a7198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2496e76616c69642070726f6f6673206c656e67746820666f722061206261746368496e76616c696420696e70757473206c656e67746820666f7220612062617463682129813bd7247065ac58eac42c81e874044e199f48c12aa749a9fe6bb6e4bddc090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa01ebed5ab04cf6a52c91c5eeb8115f16d17f65e332972aae330b7f336a12ed5e111bc8198f932e379b8f9825f01af0f5e5cacbf8bfe274bf674f6eaa6e338e04496e70757473206c656e6774682073686f756c64206265206d756c7469706c65206f6620313932206279746573259f58d438fd6391e158c991e155966218e6a432703a84068a32543965749857a26469706673582212208daff1112007a197a5990deb33682ef3955ce85e1e46d27cb96e74231a17518664736f6c63430007060033