diff --git a/contracts/artifacts/Blobstream0.json b/contracts/artifacts/Blobstream0.json index 04c22cc..831404a 100644 --- a/contracts/artifacts/Blobstream0.json +++ b/contracts/artifacts/Blobstream0.json @@ -387,13 +387,13 @@ ], "bytecode": { "linkReferences": {}, - "object": "0x60806040527fce4bdb306e686a0d2a412c0ddb392d1dd3b07842a28c828519dc44052daf53196003553480156200003557600080fd5b506040516200139f3803806200139f833981016040819052620000589162000167565b836001600160a01b0381166200008857604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200009381620000e3565b50600280546001600160a01b0319166001600160a01b039490941693909317909255600655600580546001600160401b0319166001600160401b03909216919091179055506001600455620001ce565b600180546001600160a01b0319169055620000fe8162000101565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000fe57600080fd5b600080600080608085870312156200017e57600080fd5b84516200018b8162000151565b60208601519094506200019e8162000151565b6040860151606087015191945092506001600160401b0381168114620001c357600080fd5b939692955090935050565b6111c180620001de6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a7e4762911610097578063e405bbc311610066578063e405bbc3146101da578063e6679c2614610205578063ef3f7dd514610218578063f2fde38b1461022157600080fd5b8063a7e476291461019a578063c532514b146101ad578063ce0bb7e4146101c0578063e30c3978146101c957600080fd5b80636c4f6ba9116100d35780636c4f6ba914610162578063715018a61461017957806379ba5097146101815780638da5cb5b1461018957600080fd5b80631f3302a9146100fa57806323a4608b146101225780632b7ac3f314610137575b600080fd5b61010d610108366004610d80565b610234565b60405190151581526020015b60405180910390f35b610135610130366004610ebd565b6102a1565b005b60025461014a906001600160a01b031681565b6040516001600160a01b039091168152602001610119565b61016b60065481565b604051908152602001610119565b6101356102d1565b6101356102e5565b6000546001600160a01b031661014a565b6101356101a8366004610ee9565b61032e565b6101356101bb366004610f4a565b61033b565b61016b60045481565b6001546001600160a01b031661014a565b6005546101ed906001600160401b031681565b6040516001600160401b039091168152602001610119565b610135610213366004610fca565b610593565b61016b60035481565b61013561022f366004610fca565b6105bd565b600083158061024557506004548410155b156102525750600061029a565b6000848152600760209081526040808320548151875181850152928701518383015281518084038301815260609093019091529190610294908390869061062e565b50925050505b9392505050565b6102a961072f565b6006919091556005805467ffffffffffffffff19166001600160401b03909216919091179055565b6102d961072f565b6102e3600061075c565b565b60015433906001600160a01b031681146103225760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61032b8161075c565b50565b61033661072f565b600355565b600061034984860186610fe7565b60055460208201519192506001600160401b0390811691161161037f5760405163145ce5ff60e11b815260040160405180910390fd5b6006548151146103a2576040516352c6046360e01b815260040160405180910390fd5b6040805182516020808301919091528301516001600160401b03168183015290820151606080830191909152820151608082015260009060a00160408051601f1981840301815290829052600280546003549294506001600160a01b03169263ab750e759288928892610416908890611081565b602060405180830381855afa158015610433573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610456919061108d565b6040518563ffffffff1660e01b815260040161047594939291906110a6565b60006040518083038186803b15801561048d57600080fd5b505afa1580156104a1573d6000803e3d6000fd5b50505060608301516020808501516005546004546040519081529394506001600160401b03918216939116917f34dd3689f5bd77a60a3ff2e09483dcab032fa2f1fd7227af3e24bed21beab1cb910160405180910390a46020828101516005805467ffffffffffffffff19166001600160401b03909216918217905560408085015160068190558151928352928201929092527f292f5abc3167175400fca463fa99530cda826ec53ec5eb1f3a2776006dacd75d910160405180910390a1606082015160048054600090815260076020526040812092909255805491610586836110fc565b9190505550505050505050565b61059b61072f565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6105c561072f565b600180546001600160a01b0383166001600160a01b031990911681179091556105f66000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080600184604001511161065657835151156106515750600090506001610727565b61067c565b61066884602001518560400151610775565b8451511461067c5750600090506001610727565b83604001518460200151106106975750600090506002610727565b60006106a28461080d565b8551519091506000036106d55784604001516001036106c8578514915060009050610727565b6000809250925050610727565b6000806106f087602001518860400151858a60000151610882565b9092509050600081600581111561070957610709611115565b1461071c57600094509250610727915050565b508614925060009150505b935093915050565b6000546001600160a01b031633146102e35760405163118cdaa760e01b8152336004820152602401610319565b600180546001600160a01b031916905561032b81610a0c565b60006001821161078757506000610807565b61079082610a5c565b61079c9061010061112b565b905060006107ab60018361112b565b6001901b90506001816107be919061112b565b84116107ca5750610807565b806001036107dc576001915050610807565b6107f86107e9828661112b565b6107f3838661112b565b610775565b61080390600161113e565b9150505b92915050565b60006002600060f81b83604051602001610828929190611151565b60408051601f198184030181529082905261084291611081565b602060405180830381855afa15801561085f573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610807919061108d565b6000808460000361089857508290506003610a03565b846001036108bd578251156108b257508290506004610a03565b508290506000610a03565b82516000036108d157508290506005610a03565b60006108dc86610a89565b905060006108f9856000600188516108f4919061112b565b610aca565b905060008289101561097d5760006109138a858a86610882565b92509050600082600581111561092b5761092b611115565b1461093e57508694509250610a03915050565b61096e818860018a51610951919061112b565b8151811061096157610961611175565b6020026020010151610c4f565b60009550955050505050610a03565b600061099d61098c858c61112b565b610996868c61112b565b8a86610882565b9250905060008260058111156109b5576109b5611115565b146109c857508694509250610a03915050565b6109f887600189516109da919061112b565b815181106109ea576109ea611175565b602002602001015182610c4f565b600095509550505050505b94509492505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b81816001901b1015610a7d57610a7660018261113e565b9050610a5f565b6108078161010061112b565b60006001821015610a9957600080fd5b6000610aa483610ccd565b90506000610ab360018361112b565b6001901b905083810361029a5760011c9392505050565b606081831115610b2f5760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b6064820152608401610319565b8351831180610b3e5750835182115b15610ba35760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610319565b6000610baf848461112b565b6001600160401b03811115610bc657610bc6610cf0565b604051908082528060200260200182016040528015610bef578160200160208202803683370190505b509050835b83811015610c4657858181518110610c0e57610c0e611175565b6020026020010151828683610c23919061112b565b81518110610c3357610c33611175565b6020908102919091010152600101610bf4565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f1981840301815290829052610c8d91611081565b602060405180830381855afa158015610caa573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061029a919061108d565b6000805b82156108075780610ce1816110fc565b915050600183901c9250610cd1565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610d2857610d28610cf0565b60405290565b604051606081016001600160401b0381118282101715610d2857610d28610cf0565b604051601f8201601f191681016001600160401b0381118282101715610d7857610d78610cf0565b604052919050565b60008060008385036080811215610d9657600080fd5b8435935060206040601f1983011215610dae57600080fd5b610db6610d06565b8682013581526040870135828201529350606086013591506001600160401b0380831115610de357600080fd5b9186019160608389031215610df757600080fd5b610dff610d2e565b833582811115610e0e57600080fd5b8401601f81018a13610e1f57600080fd5b803583811115610e3157610e31610cf0565b8060051b9350610e42858501610d50565b818152938201850193858101908c861115610e5c57600080fd5b928601925b85841015610e7a57833582529286019290860190610e61565b80855250505050828401358382015260408401356040820152809450505050509250925092565b80356001600160401b0381168114610eb857600080fd5b919050565b60008060408385031215610ed057600080fd5b82359150610ee060208401610ea1565b90509250929050565b600060208284031215610efb57600080fd5b5035919050565b60008083601f840112610f1457600080fd5b5081356001600160401b03811115610f2b57600080fd5b602083019150836020828501011115610f4357600080fd5b9250929050565b60008060008060408587031215610f6057600080fd5b84356001600160401b0380821115610f7757600080fd5b610f8388838901610f02565b90965094506020870135915080821115610f9c57600080fd5b50610fa987828801610f02565b95989497509550505050565b6001600160a01b038116811461032b57600080fd5b600060208284031215610fdc57600080fd5b813561029a81610fb5565b600060808284031215610ff957600080fd5b604051608081018181106001600160401b038211171561101b5761101b610cf0565b6040528235815261102e60208401610ea1565b602082015260408301356040820152606083013560608201528091505092915050565b6000815160005b818110156110725760208185018101518683015201611058565b50600093019283525090919050565b600061029a8284611051565b60006020828403121561109f57600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161110e5761110e6110e6565b5060010190565b634e487b7160e01b600052602160045260246000fd5b81810381811115610807576108076110e6565b80820180821115610807576108076110e6565b6001600160f81b031983168152600061116d6001830184611051565b949350505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d0c05112df1cd09cbbab1fe2dbfcb3f90747abc4c772fbf609be1e2dfa28661764736f6c63430008170033", - "sourceMap": "1137:5422:13:-:0;;;788:66:14;2686:54:13;;3548:413;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3666:6;-1:-1:-1;;;;;1273:26:8;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:8;;1350:1;1322:31;;;947:51:17;920:18;;1322:31:8;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;3688:8:13::1;:20:::0;;-1:-1:-1;;;;;;3688:20:13::1;-1:-1:-1::0;;;;;3688:20:13;;;::::1;::::0;;;::::1;::::0;;;3718:15:::1;:30:::0;3758:12:::1;:29:::0;;-1:-1:-1;;;;;;3758:29:13::1;-1:-1:-1::0;;;;;3758:29:13;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;3940:10:13::1;:14:::0;1137:5422;;1886:153:9;1975:13;1968:20;;-1:-1:-1;;;;;;1968:20:9;;;1998:34;2023:8;1998:24;:34::i;:::-;1886:153;:::o;2912:187:8:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:8;;;-1:-1:-1;;;;;;3020:17:8;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:131:17:-;-1:-1:-1;;;;;89:31:17;;79:42;;69:70;;135:1;132;125:12;150:646;272:6;280;288;296;349:3;337:9;328:7;324:23;320:33;317:53;;;366:1;363;356:12;317:53;398:9;392:16;417:31;442:5;417:31;:::i;:::-;517:2;502:18;;496:25;467:5;;-1:-1:-1;530:33:17;496:25;530:33;:::i;:::-;629:2;614:18;;608:25;678:2;663:18;;657:25;582:7;;-1:-1:-1;608:25:17;-1:-1:-1;;;;;;713:32:17;;701:45;;691:73;;760:1;757;750:12;691:73;150:646;;;;-1:-1:-1;150:646:17;;-1:-1:-1;;150:646:17:o;801:203::-;1137:5422:13;;;;;;" + "object": "0x60806040527fce4bdb306e686a0d2a412c0ddb392d1dd3b07842a28c828519dc44052daf53196003553480156200003557600080fd5b506040516200136938038062001369833981016040819052620000589162000167565b836001600160a01b0381166200008857604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200009381620000e3565b50600280546001600160a01b0319166001600160a01b039490941693909317909255600655600580546001600160401b0319166001600160401b03909216919091179055506001600455620001ce565b600180546001600160a01b0319169055620000fe8162000101565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000fe57600080fd5b600080600080608085870312156200017e57600080fd5b84516200018b8162000151565b60208601519094506200019e8162000151565b6040860151606087015191945092506001600160401b0381168114620001c357600080fd5b939692955090935050565b61118b80620001de6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a7e4762911610097578063e405bbc311610066578063e405bbc3146101da578063e6679c2614610205578063ef3f7dd514610218578063f2fde38b1461022157600080fd5b8063a7e476291461019a578063c532514b146101ad578063ce0bb7e4146101c0578063e30c3978146101c957600080fd5b80636c4f6ba9116100d35780636c4f6ba914610162578063715018a61461017957806379ba5097146101815780638da5cb5b1461018957600080fd5b80631f3302a9146100fa57806323a4608b146101225780632b7ac3f314610137575b600080fd5b61010d610108366004610d3a565b610234565b60405190151581526020015b60405180910390f35b610135610130366004610e77565b6102a1565b005b60025461014a906001600160a01b031681565b6040516001600160a01b039091168152602001610119565b61016b60065481565b604051908152602001610119565b6101356102d1565b6101356102e5565b6000546001600160a01b031661014a565b6101356101a8366004610ea3565b61032e565b6101356101bb366004610f04565b61033b565b61016b60045481565b6001546001600160a01b031661014a565b6005546101ed906001600160401b031681565b6040516001600160401b039091168152602001610119565b610135610213366004610f84565b61054d565b61016b60035481565b61013561022f366004610f84565b610577565b600083158061024557506004548410155b156102525750600061029a565b600084815260076020908152604080832054815187518185015292870151838301528151808403830181526060909301909152919061029490839086906105e8565b50925050505b9392505050565b6102a96106e9565b6006919091556005805467ffffffffffffffff19166001600160401b03909216919091179055565b6102d96106e9565b6102e36000610716565b565b60015433906001600160a01b031681146103225760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61032b81610716565b50565b6103366106e9565b600355565b600061034984860186610fa1565b60055460208201519192506001600160401b0390811691161161037f5760405163145ce5ff60e11b815260040160405180910390fd5b6006548151146103a2576040516352c6046360e01b815260040160405180910390fd5b600280546003546040516001600160a01b039092169263ab750e75928792879290916103d1908c908c9061100b565b602060405180830381855afa1580156103ee573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610411919061101b565b6040518563ffffffff1660e01b81526004016104309493929190611034565b60006040518083038186803b15801561044857600080fd5b505afa15801561045c573d6000803e3d6000fd5b50505060608201516020808401516005546004546040519081529394506001600160401b03918216939116917f34dd3689f5bd77a60a3ff2e09483dcab032fa2f1fd7227af3e24bed21beab1cb910160405180910390a46020818101516005805467ffffffffffffffff19166001600160401b03909216918217905560408084015160068190558151928352928201929092527f292f5abc3167175400fca463fa99530cda826ec53ec5eb1f3a2776006dacd75d910160405180910390a16060810151600480546000908152600760205260408120929092558054916105418361108a565b91905055505050505050565b6105556106e9565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61057f6106e9565b600180546001600160a01b0383166001600160a01b031990911681179091556105b06000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000806001846040015111610610578351511561060b57506000905060016106e1565b610636565b6106228460200151856040015161072f565b8451511461063657506000905060016106e1565b836040015184602001511061065157506000905060026106e1565b600061065c846107c7565b85515190915060000361068f5784604001516001036106825785149150600090506106e1565b60008092509250506106e1565b6000806106aa87602001518860400151858a6000015161083c565b909250905060008160058111156106c3576106c36110a3565b146106d6576000945092506106e1915050565b508614925060009150505b935093915050565b6000546001600160a01b031633146102e35760405163118cdaa760e01b8152336004820152602401610319565b600180546001600160a01b031916905561032b816109c6565b600060018211610741575060006107c1565b61074a82610a16565b610756906101006110b9565b905060006107656001836110b9565b6001901b905060018161077891906110b9565b841161078457506107c1565b806001036107965760019150506107c1565b6107b26107a382866110b9565b6107ad83866110b9565b61072f565b6107bd9060016110cc565b9150505b92915050565b60006002600060f81b836040516020016107e292919061110f565b60408051601f19818403018152908290526107fc91611133565b602060405180830381855afa158015610819573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906107c1919061101b565b60008084600003610852575082905060036109bd565b846001036108775782511561086c575082905060046109bd565b5082905060006109bd565b825160000361088b575082905060056109bd565b600061089686610a43565b905060006108b3856000600188516108ae91906110b9565b610a84565b90506000828910156109375760006108cd8a858a8661083c565b9250905060008260058111156108e5576108e56110a3565b146108f8575086945092506109bd915050565b610928818860018a5161090b91906110b9565b8151811061091b5761091b61113f565b6020026020010151610c09565b600095509550505050506109bd565b6000610957610946858c6110b9565b610950868c6110b9565b8a8661083c565b92509050600082600581111561096f5761096f6110a3565b14610982575086945092506109bd915050565b6109b2876001895161099491906110b9565b815181106109a4576109a461113f565b602002602001015182610c09565b600095509550505050505b94509492505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b81816001901b1015610a3757610a306001826110cc565b9050610a19565b6107c1816101006110b9565b60006001821015610a5357600080fd5b6000610a5e83610c87565b90506000610a6d6001836110b9565b6001901b905083810361029a5760011c9392505050565b606081831115610ae95760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b6064820152608401610319565b8351831180610af85750835182115b15610b5d5760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610319565b6000610b6984846110b9565b6001600160401b03811115610b8057610b80610caa565b604051908082528060200260200182016040528015610ba9578160200160208202803683370190505b509050835b83811015610c0057858181518110610bc857610bc861113f565b6020026020010151828683610bdd91906110b9565b81518110610bed57610bed61113f565b6020908102919091010152600101610bae565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f1981840301815290829052610c4791611133565b602060405180830381855afa158015610c64573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061029a919061101b565b6000805b82156107c15780610c9b8161108a565b915050600183901c9250610c8b565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610ce257610ce2610caa565b60405290565b604051606081016001600160401b0381118282101715610ce257610ce2610caa565b604051601f8201601f191681016001600160401b0381118282101715610d3257610d32610caa565b604052919050565b60008060008385036080811215610d5057600080fd5b8435935060206040601f1983011215610d6857600080fd5b610d70610cc0565b8682013581526040870135828201529350606086013591506001600160401b0380831115610d9d57600080fd5b9186019160608389031215610db157600080fd5b610db9610ce8565b833582811115610dc857600080fd5b8401601f81018a13610dd957600080fd5b803583811115610deb57610deb610caa565b8060051b9350610dfc858501610d0a565b818152938201850193858101908c861115610e1657600080fd5b928601925b85841015610e3457833582529286019290860190610e1b565b80855250505050828401358382015260408401356040820152809450505050509250925092565b80356001600160401b0381168114610e7257600080fd5b919050565b60008060408385031215610e8a57600080fd5b82359150610e9a60208401610e5b565b90509250929050565b600060208284031215610eb557600080fd5b5035919050565b60008083601f840112610ece57600080fd5b5081356001600160401b03811115610ee557600080fd5b602083019150836020828501011115610efd57600080fd5b9250929050565b60008060008060408587031215610f1a57600080fd5b84356001600160401b0380821115610f3157600080fd5b610f3d88838901610ebc565b90965094506020870135915080821115610f5657600080fd5b50610f6387828801610ebc565b95989497509550505050565b6001600160a01b038116811461032b57600080fd5b600060208284031215610f9657600080fd5b813561029a81610f6f565b600060808284031215610fb357600080fd5b604051608081018181106001600160401b0382111715610fd557610fd5610caa565b60405282358152610fe860208401610e5b565b602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b60006020828403121561102d57600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161109c5761109c611074565b5060010190565b634e487b7160e01b600052602160045260246000fd5b818103818111156107c1576107c1611074565b808201808211156107c1576107c1611074565b6000815160005b8181101561110057602081850181015186830152016110e6565b50600093019283525090919050565b6001600160f81b031983168152600061112b60018301846110df565b949350505050565b600061029a82846110df565b634e487b7160e01b600052603260045260246000fdfea26469706673582212200fe905338c5d94c175e602603c9785cafd2c53980b6bb60b637c40b5ee73041764736f6c63430008170033", + "sourceMap": "1137:5294:13:-:0;;;788:66:14;2604:54:13;;3466:413;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3584:6;-1:-1:-1;;;;;1273:26:8;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:8;;1350:1;1322:31;;;947:51:17;920:18;;1322:31:8;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;3606:8:13::1;:20:::0;;-1:-1:-1;;;;;;3606:20:13::1;-1:-1:-1::0;;;;;3606:20:13;;;::::1;::::0;;;::::1;::::0;;;3636:15:::1;:30:::0;3676:12:::1;:29:::0;;-1:-1:-1;;;;;;3676:29:13::1;-1:-1:-1::0;;;;;3676:29:13;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;3858:10:13::1;:14:::0;1137:5294;;1886:153:9;1975:13;1968:20;;-1:-1:-1;;;;;;1968:20:9;;;1998:34;2023:8;1998:24;:34::i;:::-;1886:153;:::o;2912:187:8:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:8;;;-1:-1:-1;;;;;;3020:17:8;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:131:17:-;-1:-1:-1;;;;;89:31:17;;79:42;;69:70;;135:1;132;125:12;150:646;272:6;280;288;296;349:3;337:9;328:7;324:23;320:33;317:53;;;366:1;363;356:12;317:53;398:9;392:16;417:31;442:5;417:31;:::i;:::-;517:2;502:18;;496:25;467:5;;-1:-1:-1;530:33:17;496:25;530:33;:::i;:::-;629:2;614:18;;608:25;678:2;663:18;;657:25;582:7;;-1:-1:-1;608:25:17;-1:-1:-1;;;;;;713:32:17;;701:45;;691:73;;760:1;757;750:12;691:73;150:646;;;;-1:-1:-1;150:646:17;;-1:-1:-1;;150:646:17:o;801:203::-;1137:5294:13;;;;;;" }, "deployedBytecode": { "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a7e4762911610097578063e405bbc311610066578063e405bbc3146101da578063e6679c2614610205578063ef3f7dd514610218578063f2fde38b1461022157600080fd5b8063a7e476291461019a578063c532514b146101ad578063ce0bb7e4146101c0578063e30c3978146101c957600080fd5b80636c4f6ba9116100d35780636c4f6ba914610162578063715018a61461017957806379ba5097146101815780638da5cb5b1461018957600080fd5b80631f3302a9146100fa57806323a4608b146101225780632b7ac3f314610137575b600080fd5b61010d610108366004610d80565b610234565b60405190151581526020015b60405180910390f35b610135610130366004610ebd565b6102a1565b005b60025461014a906001600160a01b031681565b6040516001600160a01b039091168152602001610119565b61016b60065481565b604051908152602001610119565b6101356102d1565b6101356102e5565b6000546001600160a01b031661014a565b6101356101a8366004610ee9565b61032e565b6101356101bb366004610f4a565b61033b565b61016b60045481565b6001546001600160a01b031661014a565b6005546101ed906001600160401b031681565b6040516001600160401b039091168152602001610119565b610135610213366004610fca565b610593565b61016b60035481565b61013561022f366004610fca565b6105bd565b600083158061024557506004548410155b156102525750600061029a565b6000848152600760209081526040808320548151875181850152928701518383015281518084038301815260609093019091529190610294908390869061062e565b50925050505b9392505050565b6102a961072f565b6006919091556005805467ffffffffffffffff19166001600160401b03909216919091179055565b6102d961072f565b6102e3600061075c565b565b60015433906001600160a01b031681146103225760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61032b8161075c565b50565b61033661072f565b600355565b600061034984860186610fe7565b60055460208201519192506001600160401b0390811691161161037f5760405163145ce5ff60e11b815260040160405180910390fd5b6006548151146103a2576040516352c6046360e01b815260040160405180910390fd5b6040805182516020808301919091528301516001600160401b03168183015290820151606080830191909152820151608082015260009060a00160408051601f1981840301815290829052600280546003549294506001600160a01b03169263ab750e759288928892610416908890611081565b602060405180830381855afa158015610433573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610456919061108d565b6040518563ffffffff1660e01b815260040161047594939291906110a6565b60006040518083038186803b15801561048d57600080fd5b505afa1580156104a1573d6000803e3d6000fd5b50505060608301516020808501516005546004546040519081529394506001600160401b03918216939116917f34dd3689f5bd77a60a3ff2e09483dcab032fa2f1fd7227af3e24bed21beab1cb910160405180910390a46020828101516005805467ffffffffffffffff19166001600160401b03909216918217905560408085015160068190558151928352928201929092527f292f5abc3167175400fca463fa99530cda826ec53ec5eb1f3a2776006dacd75d910160405180910390a1606082015160048054600090815260076020526040812092909255805491610586836110fc565b9190505550505050505050565b61059b61072f565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6105c561072f565b600180546001600160a01b0383166001600160a01b031990911681179091556105f66000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080600184604001511161065657835151156106515750600090506001610727565b61067c565b61066884602001518560400151610775565b8451511461067c5750600090506001610727565b83604001518460200151106106975750600090506002610727565b60006106a28461080d565b8551519091506000036106d55784604001516001036106c8578514915060009050610727565b6000809250925050610727565b6000806106f087602001518860400151858a60000151610882565b9092509050600081600581111561070957610709611115565b1461071c57600094509250610727915050565b508614925060009150505b935093915050565b6000546001600160a01b031633146102e35760405163118cdaa760e01b8152336004820152602401610319565b600180546001600160a01b031916905561032b81610a0c565b60006001821161078757506000610807565b61079082610a5c565b61079c9061010061112b565b905060006107ab60018361112b565b6001901b90506001816107be919061112b565b84116107ca5750610807565b806001036107dc576001915050610807565b6107f86107e9828661112b565b6107f3838661112b565b610775565b61080390600161113e565b9150505b92915050565b60006002600060f81b83604051602001610828929190611151565b60408051601f198184030181529082905261084291611081565b602060405180830381855afa15801561085f573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610807919061108d565b6000808460000361089857508290506003610a03565b846001036108bd578251156108b257508290506004610a03565b508290506000610a03565b82516000036108d157508290506005610a03565b60006108dc86610a89565b905060006108f9856000600188516108f4919061112b565b610aca565b905060008289101561097d5760006109138a858a86610882565b92509050600082600581111561092b5761092b611115565b1461093e57508694509250610a03915050565b61096e818860018a51610951919061112b565b8151811061096157610961611175565b6020026020010151610c4f565b60009550955050505050610a03565b600061099d61098c858c61112b565b610996868c61112b565b8a86610882565b9250905060008260058111156109b5576109b5611115565b146109c857508694509250610a03915050565b6109f887600189516109da919061112b565b815181106109ea576109ea611175565b602002602001015182610c4f565b600095509550505050505b94509492505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b81816001901b1015610a7d57610a7660018261113e565b9050610a5f565b6108078161010061112b565b60006001821015610a9957600080fd5b6000610aa483610ccd565b90506000610ab360018361112b565b6001901b905083810361029a5760011c9392505050565b606081831115610b2f5760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b6064820152608401610319565b8351831180610b3e5750835182115b15610ba35760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610319565b6000610baf848461112b565b6001600160401b03811115610bc657610bc6610cf0565b604051908082528060200260200182016040528015610bef578160200160208202803683370190505b509050835b83811015610c4657858181518110610c0e57610c0e611175565b6020026020010151828683610c23919061112b565b81518110610c3357610c33611175565b6020908102919091010152600101610bf4565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f1981840301815290829052610c8d91611081565b602060405180830381855afa158015610caa573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061029a919061108d565b6000805b82156108075780610ce1816110fc565b915050600183901c9250610cd1565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610d2857610d28610cf0565b60405290565b604051606081016001600160401b0381118282101715610d2857610d28610cf0565b604051601f8201601f191681016001600160401b0381118282101715610d7857610d78610cf0565b604052919050565b60008060008385036080811215610d9657600080fd5b8435935060206040601f1983011215610dae57600080fd5b610db6610d06565b8682013581526040870135828201529350606086013591506001600160401b0380831115610de357600080fd5b9186019160608389031215610df757600080fd5b610dff610d2e565b833582811115610e0e57600080fd5b8401601f81018a13610e1f57600080fd5b803583811115610e3157610e31610cf0565b8060051b9350610e42858501610d50565b818152938201850193858101908c861115610e5c57600080fd5b928601925b85841015610e7a57833582529286019290860190610e61565b80855250505050828401358382015260408401356040820152809450505050509250925092565b80356001600160401b0381168114610eb857600080fd5b919050565b60008060408385031215610ed057600080fd5b82359150610ee060208401610ea1565b90509250929050565b600060208284031215610efb57600080fd5b5035919050565b60008083601f840112610f1457600080fd5b5081356001600160401b03811115610f2b57600080fd5b602083019150836020828501011115610f4357600080fd5b9250929050565b60008060008060408587031215610f6057600080fd5b84356001600160401b0380821115610f7757600080fd5b610f8388838901610f02565b90965094506020870135915080821115610f9c57600080fd5b50610fa987828801610f02565b95989497509550505050565b6001600160a01b038116811461032b57600080fd5b600060208284031215610fdc57600080fd5b813561029a81610fb5565b600060808284031215610ff957600080fd5b604051608081018181106001600160401b038211171561101b5761101b610cf0565b6040528235815261102e60208401610ea1565b602082015260408301356040820152606083013560608201528091505092915050565b6000815160005b818110156110725760208185018101518683015201611058565b50600093019283525090919050565b600061029a8284611051565b60006020828403121561109f57600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161110e5761110e6110e6565b5060010190565b634e487b7160e01b600052602160045260246000fd5b81810381811115610807576108076110e6565b80820180821115610807576108076110e6565b6001600160f81b031983168152600061116d6001830184611051565b949350505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d0c05112df1cd09cbbab1fe2dbfcb3f90747abc4c772fbf609be1e2dfa28661764736f6c63430008170033", - "sourceMap": "1137:5422:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6115:442;;;;;;:::i;:::-;;:::i;:::-;;;2830:14:17;;2823:22;2805:41;;2793:2;2778:18;6115:442:13;;;;;;;;4066:180;;;;;;:::i;:::-;;:::i;:::-;;2252:33;;;;;-1:-1:-1;;;;;2252:33:13;;;;;;-1:-1:-1;;;;;3480:32:17;;;3462:51;;3450:2;3435:18;2252:33:13;3290:229:17;3294:30:13;;;;;;;;;3670:25:17;;;3658:2;3643:18;3294:30:13;3524:177:17;2293:101:8;;;:::i;2119:229:9:-;;;:::i;1638:85:8:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:8;1638:85;;4342:97:13;;;;;;:::i;:::-;;:::i;4714:997::-;;;;;;:::i;:::-;;:::i;2901:25::-;;;;;;1232:99:9;1311:13;;-1:-1:-1;;;;;1311:13:9;1232:99;;3054:26:13;;;;;-1:-1:-1;;;;;3054:26:13;;;;;;-1:-1:-1;;;;;5517:31:17;;;5499:50;;5487:2;5472:18;3054:26:13;5355:200:17;4527:111:13;;;;;;:::i;:::-;;:::i;2686:54::-;;;;;;1524:178:9;;;;;;:::i;:::-;;:::i;6115:442:13:-;6272:4;6296:16;;;:45;;;6331:10;;6316:11;:25;;6296:45;6292:88;;;-1:-1:-1;6364:5:13;6357:12;;6292:88;6390:12;6405:24;;;:11;:24;;;;;;;;;6501:18;;6503:13:17;;6501:18:13;;;6485:32:17;6561:17;;;6555:24;6533:20;;;6526:54;6501:18:13;;;;;;;;;6458::17;;;;6501::13;;;6405:24;6390:12;6463:57;;6405:24;;6493:6;;6463:23;:57::i;:::-;-1:-1:-1;6440:80:13;-1:-1:-1;;;6115:442:13;;;;;;:::o;4066:180::-;1531:13:8;:11;:13::i;:::-;4170:15:13::1;:30:::0;;;;4210:12:::1;:29:::0;;-1:-1:-1;;4210:29:13::1;-1:-1:-1::0;;;;;4210:29:13;;::::1;::::0;;;::::1;::::0;;4066:180::o;2293:101:8:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2119:229:9:-;1311:13;;735:10:10;;-1:-1:-1;;;;;1311:13:9;2214:24;;2210:96;;2261:34;;-1:-1:-1;;;2261:34:9;;-1:-1:-1;;;;;3480:32:17;;2261:34:9;;;3462:51:17;3435:18;;2261:34:9;;;;;;;;2210:96;2315:26;2334:6;2315:18;:26::i;:::-;2161:187;2119:229::o;4342:97:13:-;1531:13:8;:11;:13::i;:::-;4414:7:13::1;:18:::0;4342:97::o;4714:997::-;4805:29;4837:43;;;;4848:12;4837:43;:::i;:::-;4915:12;;4895:16;;;;4805:75;;-1:-1:-1;;;;;;4915:12:13;;;4895:32;;;4891:91;;4950:21;;-1:-1:-1;;;4950:21:13;;;;;;;;;;;4891:91;5023:15;;4995:24;;:43;4991:107;;5061:26;;-1:-1:-1;;;5061:26:13;;;;;;;;;;;4991:107;5130:18;;;7478:13:17;;5130:18:13;;;;7460:32:17;;;;7540:17;;7534:24;-1:-1:-1;;;;;7530:49:17;7508:20;;;7501:79;7624:17;;;7618:24;7596:20;;;;7589:54;;;;7687:17;;7681:24;7659:20;;;7652:54;5107:20:13;;7432:19:17;;5130:18:13;;;-1:-1:-1;;5130:18:13;;;;;;;;;;5158:8;;;5181:7;;5130:18;;-1:-1:-1;;;;;;5158:8:13;;:15;;5174:5;;;;5190:15;;5130:18;;5190:15;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5158:48;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5287:17:13;;;;5269:16;;;;;5255:12;;5243:10;;5222:83;;3670:25:17;;;5287:17:13;;-1:-1:-1;;;;;;5222:83:13;;;;5255:12;;;5222:83;;3643:18:17;5222:83:13;;;;;;;5371:16;;;;;5356:12;:31;;-1:-1:-1;;5356:31:13;-1:-1:-1;;;;;5356:31:13;;;;;;;;5415:20;;;;;5397:15;:38;;;5450:41;;9139:50:17;;;9205:18;;;9198:34;;;;5450:41:13;;9112:18:17;5450:41:13;;;;;;;5665:17;;;;5651:10;;;5639:23;;;;:11;:23;;;;;:43;;;;5692:12;;;;;;:::i;:::-;;;;;;4795:916;;4714:997;;;;:::o;4527:111::-;1531:13:8;:11;:13::i;:::-;4611:8:13::1;:20:::0;;-1:-1:-1;;;;;;4611:20:13::1;-1:-1:-1::0;;;;;4611:20:13;;;::::1;::::0;;;::::1;::::0;;4527:111::o;1524:178:9:-;1531:13:8;:11;:13::i;:::-;1613::9::1;:24:::0;;-1:-1:-1;;;;;1613:24:9;::::1;-1:-1:-1::0;;;;;;1613:24:9;;::::1;::::0;::::1;::::0;;;1677:7:::1;1684::8::0;1710:6;-1:-1:-1;;;;;1710:6:8;;1638:85;1677:7:9::1;-1:-1:-1::0;;;;;1652:43:9::1;;;;;;;;;;;1524:178:::0;:::o;1342:1444:6:-;1470:4;1476:10;1592:1;1573:5;:15;;;:20;1569:326;;1613:15;;:22;:27;1609:117;;-1:-1:-1;1668:5:6;;-1:-1:-1;1675:35:6;1660:51;;1609:117;1569:326;;;1772:45;1790:5;:9;;;1801:5;:15;;;1772:17;:45::i;:::-;1746:15;;:22;:71;1742:153;;-1:-1:-1;1841:5:6;;-1:-1:-1;1848:35:6;1833:51;;1742:153;1954:5;:15;;;1941:5;:9;;;:28;1937:98;;-1:-1:-1;1993:5:6;;-1:-1:-1;2000:23:6;1985:39;;1937:98;2131:14;2148:16;2159:4;2148:10;:16::i;:::-;2281:15;;:22;2131:33;;-1:-1:-1;2281:15:6;:27;2277:232;;2328:5;:15;;;2347:1;2328:20;2324:175;;2376:14;;;-1:-1:-1;2392:18:6;;-1:-1:-1;2368:43:6;;2324:175;2458:5;2465:18;2450:34;;;;;;;2324:175;2520:20;2542:16;2562:68;2578:5;:9;;;2589:5;:15;;;2606:6;2614:5;:15;;;2562;:68::i;:::-;2519:111;;-1:-1:-1;2519:111:6;-1:-1:-1;2654:18:6;2645:5;:27;;;;;;;;:::i;:::-;;2641:79;;2696:5;;-1:-1:-1;2703:5:6;-1:-1:-1;2688:21:6;;-1:-1:-1;;2688:21:6;2641:79;-1:-1:-1;2738:20:6;;;-1:-1:-1;2760:18:6;;-1:-1:-1;;1342:1444:6;;;;;;;:::o;1796:162:8:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:8;735:10:10;1855:23:8;1851:101;;1901:40;;-1:-1:-1;;;1901:40:8;;735:10:10;1901:40:8;;;3462:51:17;3435:18;;1901:40:8;3290:229:17;1886:153:9;1975:13;1968:20;;-1:-1:-1;;;;;;1968:20:9;;;1998:34;2023:8;1998:24;:34::i;936:1011:4:-;1009:18;1052:1;1039:9;:14;1035:125;;-1:-1:-1;1152:1:4;1145:8;;1035:125;1304:25;1319:9;1304:14;:25::i;:::-;1281:48;;245:3:2;1281:48:4;:::i;:::-;1268:61;-1:-1:-1;1394:28:4;1432:14;1445:1;1268:61;1432:14;:::i;:::-;1426:1;:21;;1394:54;;1567:1;1544:20;:24;;;;:::i;:::-;1537:3;:31;1533:412;;1580:17;;;1533:412;1711:20;1735:1;1711:25;1707:238;;1755:1;1748:8;;;;;1707:238;1859:79;1877:26;1883:20;1877:3;:26;:::i;:::-;1905:32;1917:20;1905:9;:32;:::i;:::-;1859:17;:79::i;:::-;1855:83;;:1;:83;:::i;:::-;1848:90;;;936:1011;;;;;:::o;868:140:7:-;921:14;952:53;340:4:2;976:21:7;;999:4;959:45;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;959:45:7;;;;;;;;;;952:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2983:1463:6:-;3132:7;3141:10;3171:9;3184:1;3171:14;3167:103;;-1:-1:-1;3209:8:6;;-1:-1:-1;3219:39:6;3201:58;;3167:103;3283:9;3296:1;3283:14;3279:206;;3317:16;;:21;3313:111;;-1:-1:-1;3366:8:6;;-1:-1:-1;3376:32:6;3358:51;;3313:111;-1:-1:-1;3445:8:6;;-1:-1:-1;3455:18:6;3437:37;;3279:206;3498:9;:16;3518:1;3498:21;3494:109;;-1:-1:-1;3543:8:6;;-1:-1:-1;3553:38:6;3535:57;;3494:109;3612:15;3630:25;3645:9;3630:14;:25::i;:::-;3612:43;;3665:30;3698:41;3704:9;3715:1;3737;3718:9;:16;:20;;;;:::i;:::-;3698:5;:41::i;:::-;3665:74;;3749:16;3785:7;3779:3;:13;3775:347;;;3808:16;3858:54;3874:3;3879:7;3888:8;3898:13;3858:15;:54::i;:::-;3838:74;-1:-1:-1;3838:74:6;-1:-1:-1;3939:18:6;3930:5;:27;;;;;;;;:::i;:::-;;3926:90;;-1:-1:-1;3985:8:6;;-1:-1:-1;3995:5:6;-1:-1:-1;3977:24:6;;-1:-1:-1;;3977:24:6;3926:90;4037:53;4048:8;4058:9;4087:1;4068:9;:16;:20;;;;:::i;:::-;4058:31;;;;;;;;:::i;:::-;;;;;;;4037:10;:53::i;:::-;4092:18;4029:82;;;;;;;;;;3775:347;4131:17;4179:76;4195:13;4201:7;4195:3;:13;:::i;:::-;4210:19;4222:7;4210:9;:19;:::i;:::-;4231:8;4241:13;4179:15;:76::i;:::-;4158:97;-1:-1:-1;4158:97:6;-1:-1:-1;4278:18:6;4269:5;:27;;;;;;;;:::i;:::-;;4265:82;;-1:-1:-1;4320:8:6;;-1:-1:-1;4330:5:6;-1:-1:-1;4312:24:6;;-1:-1:-1;;4312:24:6;4265:82;4364:54;4375:9;4404:1;4385:9;:16;:20;;;;:::i;:::-;4375:31;;;;;;;;:::i;:::-;;;;;;;4408:9;4364:10;:54::i;:::-;4420:18;4356:83;;;;;;;;2983:1463;;;;;;;;:::o;2912:187:8:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:8;;;-1:-1:-1;;;;;;3020:17:8;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;315:362:4:-;372:19;556:72;584:9;569:11;564:1;:16;;563:30;556:72;;;605:16;620:1;605:16;;:::i;:::-;;;556:72;;;640:34;663:11;245:3:2;640:34:4;:::i;2318:492::-;2367:7;2680:1;2675;:6;;2667:15;;;;;;2689:14;2706:11;2715:1;2706:8;:11::i;:::-;2689:28;-1:-1:-1;2723:9:4;2741:10;2750:1;2689:28;2741:10;:::i;:::-;2735:1;:17;;2723:29;;2767:1;2762;:6;2758:36;;2786:1;2780:7;2806:1;2318:492;-1:-1:-1;;;2318:492:4:o;4913:544:6:-;5005:16;5046:4;5037:6;:13;5033:96;;;5066:52;;-1:-1:-1;;;5066:52:6;;10520:2:17;5066:52:6;;;10502:21:17;10559:2;10539:18;;;10532:30;10598:34;10578:18;;;10571:62;-1:-1:-1;;;10649:18:17;;;10642:40;10699:19;;5066:52:6;10318:406:17;5033:96:6;5151:5;:12;5142:6;:21;:44;;;;5174:5;:12;5167:4;:19;5142:44;5138:132;;;5202:57;;-1:-1:-1;;;5202:57:6;;10931:2:17;5202:57:6;;;10913:21:17;10970:2;10950:18;;;10943:30;11009:34;10989:18;;;10982:62;-1:-1:-1;;;11060:18:17;;;11053:45;11115:19;;5202:57:6;10729:411:17;5138:132:6;5279:20;5316:13;5323:6;5316:4;:13;:::i;:::-;-1:-1:-1;;;;;5302:28:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5302:28:6;-1:-1:-1;5279:51:6;-1:-1:-1;5357:6:6;5340:91;5369:4;5365:1;:8;5340:91;;;5412:5;5418:1;5412:8;;;;;;;;:::i;:::-;;;;;;;5394:3;5402:6;5398:1;:10;;;;:::i;:::-;5394:15;;;;;;;;:::i;:::-;;;;;;;;;;:26;5375:3;;5340:91;;;-1:-1:-1;5447:3:6;4913:544;-1:-1:-1;;;;4913:544:6:o;415:157:7:-;516:52;;-1:-1:-1;;;516:52:7;;;11328:39:17;11383:11;;;11376:27;;;11419:12;;;11412:28;;;478:14:7;;509:60;;11456:12:17;;516:52:7;;;-1:-1:-1;;516:52:7;;;;;;;;;;509:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2078:159:4:-;2121:7;;2160:56;2167:6;;2160:56;;2185:7;;;;:::i;:::-;;;;2208:1;2202:7;;;;;2160:56;;14:127:17;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:17;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:251::-;480:2;474:9;522:2;510:15;;-1:-1:-1;;;;;540:34:17;;576:22;;;537:62;534:88;;;602:18;;:::i;664:275::-;735:2;729:9;800:2;781:13;;-1:-1:-1;;777:27:17;765:40;;-1:-1:-1;;;;;820:34:17;;856:22;;;817:62;814:88;;;882:18;;:::i;:::-;918:2;911:22;664:275;;-1:-1:-1;664:275:17:o;944:1716::-;1083:6;1091;1099;1143:9;1134:7;1130:23;1173:3;1169:2;1165:12;1162:32;;;1190:1;1187;1180:12;1162:32;1213:23;;;-1:-1:-1;1255:2:17;1291:4;-1:-1:-1;;1273:16:17;;1269:27;1266:47;;;1309:1;1306;1299:12;1266:47;1335:22;;:::i;:::-;1393:18;;;1380:32;1366:47;;1473:4;1458:20;;1445:34;1429:14;;;1422:58;1322:35;-1:-1:-1;1555:2:17;1540:18;;1527:32;;-1:-1:-1;;;;;;1608:14:17;;;1605:34;;;1635:1;1632;1625:12;1605:34;1658:22;;;;1714:2;1696:16;;;1692:25;1689:45;;;1730:1;1727;1720:12;1689:45;1758:22;;:::i;:::-;1818:2;1805:16;1846:2;1836:8;1833:16;1830:36;;;1862:1;1859;1852:12;1830:36;1885:17;;1933:4;1925:13;;1921:27;-1:-1:-1;1911:55:17;;1962:1;1959;1952:12;1911:55;1998:2;1985:16;2020:2;2016;2013:10;2010:36;;;2026:18;;:::i;:::-;2072:2;2069:1;2065:10;2055:20;;2095:28;2119:2;2115;2111:11;2095:28;:::i;:::-;2157:15;;;2227:11;;;2223:20;;;2188:12;;;;2255:19;;;2252:39;;;2287:1;2284;2277:12;2252:39;2311:11;;;;2331:142;2347:6;2342:3;2339:15;2331:142;;;2413:17;;2401:30;;2364:12;;;;2451;;;;2331:142;;;2498:5;2489:7;2482:22;;;;;2559:2;2555;2551:11;2538:25;2533:2;2524:7;2520:16;2513:51;2621:4;2617:2;2613:13;2600:27;2593:4;2584:7;2580:18;2573:55;2647:7;2637:17;;;;;;944:1716;;;;;:::o;2857:171::-;2924:20;;-1:-1:-1;;;;;2973:30:17;;2963:41;;2953:69;;3018:1;3015;3008:12;2953:69;2857:171;;;:::o;3033:252::-;3100:6;3108;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3213:9;3200:23;3190:33;;3242:37;3275:2;3264:9;3260:18;3242:37;:::i;:::-;3232:47;;3033:252;;;;;:::o;3914:180::-;3973:6;4026:2;4014:9;4005:7;4001:23;3997:32;3994:52;;;4042:1;4039;4032:12;3994:52;-1:-1:-1;4065:23:17;;3914:180;-1:-1:-1;3914:180:17:o;4099:347::-;4150:8;4160:6;4214:3;4207:4;4199:6;4195:17;4191:27;4181:55;;4232:1;4229;4222:12;4181:55;-1:-1:-1;4255:20:17;;-1:-1:-1;;;;;4287:30:17;;4284:50;;;4330:1;4327;4320:12;4284:50;4367:4;4359:6;4355:17;4343:29;;4419:3;4412:4;4403:6;4395;4391:19;4387:30;4384:39;4381:59;;;4436:1;4433;4426:12;4381:59;4099:347;;;;;:::o;4451:717::-;4541:6;4549;4557;4565;4618:2;4606:9;4597:7;4593:23;4589:32;4586:52;;;4634:1;4631;4624:12;4586:52;4674:9;4661:23;-1:-1:-1;;;;;4744:2:17;4736:6;4733:14;4730:34;;;4760:1;4757;4750:12;4730:34;4799:58;4849:7;4840:6;4829:9;4825:22;4799:58;:::i;:::-;4876:8;;-1:-1:-1;4773:84:17;-1:-1:-1;4964:2:17;4949:18;;4936:32;;-1:-1:-1;4980:16:17;;;4977:36;;;5009:1;5006;4999:12;4977:36;;5048:60;5100:7;5089:8;5078:9;5074:24;5048:60;:::i;:::-;4451:717;;;;-1:-1:-1;5127:8:17;-1:-1:-1;;;;4451:717:17:o;5560:150::-;-1:-1:-1;;;;;5654:31:17;;5644:42;;5634:70;;5700:1;5697;5690:12;5715:292;5800:6;5853:2;5841:9;5832:7;5828:23;5824:32;5821:52;;;5869:1;5866;5859:12;5821:52;5908:9;5895:23;5927:50;5971:5;5927:50;:::i;6591:651::-;6683:6;6736:3;6724:9;6715:7;6711:23;6707:33;6704:53;;;6753:1;6750;6743:12;6704:53;6786:2;6780:9;6828:3;6820:6;6816:16;6898:6;6886:10;6883:22;-1:-1:-1;;;;;6850:10:17;6847:34;6844:62;6841:88;;;6909:18;;:::i;:::-;6945:2;6938:22;6984:23;;6969:39;;7041:37;7074:2;7059:18;;7041:37;:::i;:::-;7036:2;7028:6;7024:15;7017:62;7140:2;7129:9;7125:18;7112:32;7107:2;7099:6;7095:15;7088:57;7206:2;7195:9;7191:18;7178:32;7173:2;7165:6;7161:15;7154:57;7230:6;7220:16;;;6591:651;;;;:::o;7717:322::-;7758:3;7796:5;7790:12;7820:1;7830:128;7844:6;7841:1;7838:13;7830:128;;;7941:4;7926:13;;;7922:24;;7916:31;7903:11;;;7896:52;7859:12;7830:128;;;-1:-1:-1;8013:1:17;7977:16;;8002:13;;;-1:-1:-1;7977:16:17;;7717:322;-1:-1:-1;7717:322:17:o;8044:189::-;8173:3;8198:29;8223:3;8215:6;8198:29;:::i;8238:184::-;8308:6;8361:2;8349:9;8340:7;8336:23;8332:32;8329:52;;;8377:1;8374;8367:12;8329:52;-1:-1:-1;8400:16:17;;8238:184;-1:-1:-1;8238:184:17:o;8427:535::-;8640:2;8629:9;8622:21;8679:6;8674:2;8663:9;8659:18;8652:34;8737:6;8729;8723:3;8712:9;8708:19;8695:49;8794:1;8788:3;8779:6;8768:9;8764:22;8760:32;8753:43;8603:4;8864:3;8857:2;8853:7;8848:2;8840:6;8836:15;8832:29;8821:9;8817:45;8813:55;8805:63;;8906:6;8899:4;8888:9;8884:20;8877:36;8949:6;8944:2;8933:9;8929:18;8922:34;8427:535;;;;;;;:::o;9243:127::-;9304:10;9299:3;9295:20;9292:1;9285:31;9335:4;9332:1;9325:15;9359:4;9356:1;9349:15;9375:135;9414:3;9435:17;;;9432:43;;9455:18;;:::i;:::-;-1:-1:-1;9502:1:17;9491:13;;9375:135::o;9515:127::-;9576:10;9571:3;9567:20;9564:1;9557:31;9607:4;9604:1;9597:15;9631:4;9628:1;9621:15;9647:128;9714:9;;;9735:11;;;9732:37;;;9749:18;;:::i;9780:125::-;9845:9;;;9866:10;;;9863:36;;;9879:18;;:::i;9910:271::-;-1:-1:-1;;;;;;10095:26:17;;10083:39;;10065:3;10138:37;10172:1;10163:11;;10155:6;10138:37;:::i;:::-;10131:44;9910:271;-1:-1:-1;;;;9910:271:17:o;10186:127::-;10247:10;10242:3;10238:20;10235:1;10228:31;10278:4;10275:1;10268:15;10302:4;10299:1;10292:15" + "object": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063a7e4762911610097578063e405bbc311610066578063e405bbc3146101da578063e6679c2614610205578063ef3f7dd514610218578063f2fde38b1461022157600080fd5b8063a7e476291461019a578063c532514b146101ad578063ce0bb7e4146101c0578063e30c3978146101c957600080fd5b80636c4f6ba9116100d35780636c4f6ba914610162578063715018a61461017957806379ba5097146101815780638da5cb5b1461018957600080fd5b80631f3302a9146100fa57806323a4608b146101225780632b7ac3f314610137575b600080fd5b61010d610108366004610d3a565b610234565b60405190151581526020015b60405180910390f35b610135610130366004610e77565b6102a1565b005b60025461014a906001600160a01b031681565b6040516001600160a01b039091168152602001610119565b61016b60065481565b604051908152602001610119565b6101356102d1565b6101356102e5565b6000546001600160a01b031661014a565b6101356101a8366004610ea3565b61032e565b6101356101bb366004610f04565b61033b565b61016b60045481565b6001546001600160a01b031661014a565b6005546101ed906001600160401b031681565b6040516001600160401b039091168152602001610119565b610135610213366004610f84565b61054d565b61016b60035481565b61013561022f366004610f84565b610577565b600083158061024557506004548410155b156102525750600061029a565b600084815260076020908152604080832054815187518185015292870151838301528151808403830181526060909301909152919061029490839086906105e8565b50925050505b9392505050565b6102a96106e9565b6006919091556005805467ffffffffffffffff19166001600160401b03909216919091179055565b6102d96106e9565b6102e36000610716565b565b60015433906001600160a01b031681146103225760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61032b81610716565b50565b6103366106e9565b600355565b600061034984860186610fa1565b60055460208201519192506001600160401b0390811691161161037f5760405163145ce5ff60e11b815260040160405180910390fd5b6006548151146103a2576040516352c6046360e01b815260040160405180910390fd5b600280546003546040516001600160a01b039092169263ab750e75928792879290916103d1908c908c9061100b565b602060405180830381855afa1580156103ee573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610411919061101b565b6040518563ffffffff1660e01b81526004016104309493929190611034565b60006040518083038186803b15801561044857600080fd5b505afa15801561045c573d6000803e3d6000fd5b50505060608201516020808401516005546004546040519081529394506001600160401b03918216939116917f34dd3689f5bd77a60a3ff2e09483dcab032fa2f1fd7227af3e24bed21beab1cb910160405180910390a46020818101516005805467ffffffffffffffff19166001600160401b03909216918217905560408084015160068190558151928352928201929092527f292f5abc3167175400fca463fa99530cda826ec53ec5eb1f3a2776006dacd75d910160405180910390a16060810151600480546000908152600760205260408120929092558054916105418361108a565b91905055505050505050565b6105556106e9565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b61057f6106e9565b600180546001600160a01b0383166001600160a01b031990911681179091556105b06000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000806001846040015111610610578351511561060b57506000905060016106e1565b610636565b6106228460200151856040015161072f565b8451511461063657506000905060016106e1565b836040015184602001511061065157506000905060026106e1565b600061065c846107c7565b85515190915060000361068f5784604001516001036106825785149150600090506106e1565b60008092509250506106e1565b6000806106aa87602001518860400151858a6000015161083c565b909250905060008160058111156106c3576106c36110a3565b146106d6576000945092506106e1915050565b508614925060009150505b935093915050565b6000546001600160a01b031633146102e35760405163118cdaa760e01b8152336004820152602401610319565b600180546001600160a01b031916905561032b816109c6565b600060018211610741575060006107c1565b61074a82610a16565b610756906101006110b9565b905060006107656001836110b9565b6001901b905060018161077891906110b9565b841161078457506107c1565b806001036107965760019150506107c1565b6107b26107a382866110b9565b6107ad83866110b9565b61072f565b6107bd9060016110cc565b9150505b92915050565b60006002600060f81b836040516020016107e292919061110f565b60408051601f19818403018152908290526107fc91611133565b602060405180830381855afa158015610819573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906107c1919061101b565b60008084600003610852575082905060036109bd565b846001036108775782511561086c575082905060046109bd565b5082905060006109bd565b825160000361088b575082905060056109bd565b600061089686610a43565b905060006108b3856000600188516108ae91906110b9565b610a84565b90506000828910156109375760006108cd8a858a8661083c565b9250905060008260058111156108e5576108e56110a3565b146108f8575086945092506109bd915050565b610928818860018a5161090b91906110b9565b8151811061091b5761091b61113f565b6020026020010151610c09565b600095509550505050506109bd565b6000610957610946858c6110b9565b610950868c6110b9565b8a8661083c565b92509050600082600581111561096f5761096f6110a3565b14610982575086945092506109bd915050565b6109b2876001895161099491906110b9565b815181106109a4576109a461113f565b602002602001015182610c09565b600095509550505050505b94509492505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b81816001901b1015610a3757610a306001826110cc565b9050610a19565b6107c1816101006110b9565b60006001821015610a5357600080fd5b6000610a5e83610c87565b90506000610a6d6001836110b9565b6001901b905083810361029a5760011c9392505050565b606081831115610ae95760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b6064820152608401610319565b8351831180610af85750835182115b15610b5d5760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610319565b6000610b6984846110b9565b6001600160401b03811115610b8057610b80610caa565b604051908082528060200260200182016040528015610ba9578160200160208202803683370190505b509050835b83811015610c0057858181518110610bc857610bc861113f565b6020026020010151828683610bdd91906110b9565b81518110610bed57610bed61113f565b6020908102919091010152600101610bae565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f1981840301815290829052610c4791611133565b602060405180830381855afa158015610c64573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061029a919061101b565b6000805b82156107c15780610c9b8161108a565b915050600183901c9250610c8b565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715610ce257610ce2610caa565b60405290565b604051606081016001600160401b0381118282101715610ce257610ce2610caa565b604051601f8201601f191681016001600160401b0381118282101715610d3257610d32610caa565b604052919050565b60008060008385036080811215610d5057600080fd5b8435935060206040601f1983011215610d6857600080fd5b610d70610cc0565b8682013581526040870135828201529350606086013591506001600160401b0380831115610d9d57600080fd5b9186019160608389031215610db157600080fd5b610db9610ce8565b833582811115610dc857600080fd5b8401601f81018a13610dd957600080fd5b803583811115610deb57610deb610caa565b8060051b9350610dfc858501610d0a565b818152938201850193858101908c861115610e1657600080fd5b928601925b85841015610e3457833582529286019290860190610e1b565b80855250505050828401358382015260408401356040820152809450505050509250925092565b80356001600160401b0381168114610e7257600080fd5b919050565b60008060408385031215610e8a57600080fd5b82359150610e9a60208401610e5b565b90509250929050565b600060208284031215610eb557600080fd5b5035919050565b60008083601f840112610ece57600080fd5b5081356001600160401b03811115610ee557600080fd5b602083019150836020828501011115610efd57600080fd5b9250929050565b60008060008060408587031215610f1a57600080fd5b84356001600160401b0380821115610f3157600080fd5b610f3d88838901610ebc565b90965094506020870135915080821115610f5657600080fd5b50610f6387828801610ebc565b95989497509550505050565b6001600160a01b038116811461032b57600080fd5b600060208284031215610f9657600080fd5b813561029a81610f6f565b600060808284031215610fb357600080fd5b604051608081018181106001600160401b0382111715610fd557610fd5610caa565b60405282358152610fe860208401610e5b565b602082015260408301356040820152606083013560608201528091505092915050565b8183823760009101908152919050565b60006020828403121561102d57600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161109c5761109c611074565b5060010190565b634e487b7160e01b600052602160045260246000fd5b818103818111156107c1576107c1611074565b808201808211156107c1576107c1611074565b6000815160005b8181101561110057602081850181015186830152016110e6565b50600093019283525090919050565b6001600160f81b031983168152600061112b60018301846110df565b949350505050565b600061029a82846110df565b634e487b7160e01b600052603260045260246000fdfea26469706673582212200fe905338c5d94c175e602603c9785cafd2c53980b6bb60b637c40b5ee73041764736f6c63430008170033", + "sourceMap": "1137:5294:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5987:442;;;;;;:::i;:::-;;:::i;:::-;;;2830:14:17;;2823:22;2805:41;;2793:2;2778:18;5987:442:13;;;;;;;;3984:180;;;;;;:::i;:::-;;:::i;:::-;;2252:33;;;;;-1:-1:-1;;;;;2252:33:13;;;;;;-1:-1:-1;;;;;3480:32:17;;;3462:51;;3450:2;3435:18;2252:33:13;3290:229:17;3212:30:13;;;;;;;;;3670:25:17;;;3658:2;3643:18;3212:30:13;3524:177:17;2293:101:8;;;:::i;2119:229:9:-;;;:::i;1638:85:8:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:8;1638:85;;4260:97:13;;;;;;:::i;:::-;;:::i;4632:951::-;;;;;;:::i;:::-;;:::i;2819:25::-;;;;;;1232:99:9;1311:13;;-1:-1:-1;;;;;1311:13:9;1232:99;;2972:26:13;;;;;-1:-1:-1;;;;;2972:26:13;;;;;;-1:-1:-1;;;;;5517:31:17;;;5499:50;;5487:2;5472:18;2972:26:13;5355:200:17;4445:111:13;;;;;;:::i;:::-;;:::i;2604:54::-;;;;;;1524:178:9;;;;;;:::i;:::-;;:::i;5987:442:13:-;6144:4;6168:16;;;:45;;;6203:10;;6188:11;:25;;6168:45;6164:88;;;-1:-1:-1;6236:5:13;6229:12;;6164:88;6262:12;6277:24;;;:11;:24;;;;;;;;;6373:18;;6503:13:17;;6373:18:13;;;6485:32:17;6561:17;;;6555:24;6533:20;;;6526:54;6373:18:13;;;;;;;;;6458::17;;;;6373::13;;;6277:24;6262:12;6335:57;;6277:24;;6365:6;;6335:23;:57::i;:::-;-1:-1:-1;6312:80:13;-1:-1:-1;;;5987:442:13;;;;;;:::o;3984:180::-;1531:13:8;:11;:13::i;:::-;4088:15:13::1;:30:::0;;;;4128:12:::1;:29:::0;;-1:-1:-1;;4128:29:13::1;-1:-1:-1::0;;;;;4128:29:13;;::::1;::::0;;;::::1;::::0;;3984:180::o;2293:101:8:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2119:229:9:-;1311:13;;735:10:10;;-1:-1:-1;;;;;1311:13:9;2214:24;;2210:96;;2261:34;;-1:-1:-1;;;2261:34:9;;-1:-1:-1;;;;;3480:32:17;;2261:34:9;;;3462:51:17;3435:18;;2261:34:9;;;;;;;;2210:96;2315:26;2334:6;2315:18;:26::i;:::-;2161:187;2119:229::o;4260:97:13:-;1531:13:8;:11;:13::i;:::-;4332:7:13::1;:18:::0;4260:97::o;4632:951::-;4723:29;4755:43;;;;4766:12;4755:43;:::i;:::-;4833:12;;4813:16;;;;4723:75;;-1:-1:-1;;;;;;4833:12:13;;;4813:32;;;4809:91;;4868:21;;-1:-1:-1;;;4868:21:13;;;;;;;;;;;4809:91;4941:15;;4913:24;;:43;4909:107;;4979:26;;-1:-1:-1;;;4979:26:13;;;;;;;;;;;4909:107;5025:8;;;5048:7;;5057:20;;-1:-1:-1;;;;;5025:8:13;;;;:15;;5041:5;;;;5048:7;;5057:20;;5064:12;;;;5057:20;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5025:53;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5159:17:13;;;;5141:16;;;;;5127:12;;5115:10;;5094:83;;3670:25:17;;;5159:17:13;;-1:-1:-1;;;;;;5094:83:13;;;;5127:12;;;5094:83;;3643:18:17;5094:83:13;;;;;;;5243:16;;;;;5228:12;:31;;-1:-1:-1;;5228:31:13;-1:-1:-1;;;;;5228:31:13;;;;;;;;5287:20;;;;;5269:15;:38;;;5322:41;;8424:50:17;;;8490:18;;;8483:34;;;;5322:41:13;;8397:18:17;5322:41:13;;;;;;;5537:17;;;;5523:10;;;5511:23;;;;:11;:23;;;;;:43;;;;5564:12;;;;;;:::i;:::-;;;;;;4713:870;4632:951;;;;:::o;4445:111::-;1531:13:8;:11;:13::i;:::-;4529:8:13::1;:20:::0;;-1:-1:-1;;;;;;4529:20:13::1;-1:-1:-1::0;;;;;4529:20:13;;;::::1;::::0;;;::::1;::::0;;4445:111::o;1524:178:9:-;1531:13:8;:11;:13::i;:::-;1613::9::1;:24:::0;;-1:-1:-1;;;;;1613:24:9;::::1;-1:-1:-1::0;;;;;;1613:24:9;;::::1;::::0;::::1;::::0;;;1677:7:::1;1684::8::0;1710:6;-1:-1:-1;;;;;1710:6:8;;1638:85;1677:7:9::1;-1:-1:-1::0;;;;;1652:43:9::1;;;;;;;;;;;1524:178:::0;:::o;1342:1444:6:-;1470:4;1476:10;1592:1;1573:5;:15;;;:20;1569:326;;1613:15;;:22;:27;1609:117;;-1:-1:-1;1668:5:6;;-1:-1:-1;1675:35:6;1660:51;;1609:117;1569:326;;;1772:45;1790:5;:9;;;1801:5;:15;;;1772:17;:45::i;:::-;1746:15;;:22;:71;1742:153;;-1:-1:-1;1841:5:6;;-1:-1:-1;1848:35:6;1833:51;;1742:153;1954:5;:15;;;1941:5;:9;;;:28;1937:98;;-1:-1:-1;1993:5:6;;-1:-1:-1;2000:23:6;1985:39;;1937:98;2131:14;2148:16;2159:4;2148:10;:16::i;:::-;2281:15;;:22;2131:33;;-1:-1:-1;2281:15:6;:27;2277:232;;2328:5;:15;;;2347:1;2328:20;2324:175;;2376:14;;;-1:-1:-1;2392:18:6;;-1:-1:-1;2368:43:6;;2324:175;2458:5;2465:18;2450:34;;;;;;;2324:175;2520:20;2542:16;2562:68;2578:5;:9;;;2589:5;:15;;;2606:6;2614:5;:15;;;2562;:68::i;:::-;2519:111;;-1:-1:-1;2519:111:6;-1:-1:-1;2654:18:6;2645:5;:27;;;;;;;;:::i;:::-;;2641:79;;2696:5;;-1:-1:-1;2703:5:6;-1:-1:-1;2688:21:6;;-1:-1:-1;;2688:21:6;2641:79;-1:-1:-1;2738:20:6;;;-1:-1:-1;2760:18:6;;-1:-1:-1;;1342:1444:6;;;;;;;:::o;1796:162:8:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:8;735:10:10;1855:23:8;1851:101;;1901:40;;-1:-1:-1;;;1901:40:8;;735:10:10;1901:40:8;;;3462:51:17;3435:18;;1901:40:8;3290:229:17;1886:153:9;1975:13;1968:20;;-1:-1:-1;;;;;;1968:20:9;;;1998:34;2023:8;1998:24;:34::i;936:1011:4:-;1009:18;1052:1;1039:9;:14;1035:125;;-1:-1:-1;1152:1:4;1145:8;;1035:125;1304:25;1319:9;1304:14;:25::i;:::-;1281:48;;245:3:2;1281:48:4;:::i;:::-;1268:61;-1:-1:-1;1394:28:4;1432:14;1445:1;1268:61;1432:14;:::i;:::-;1426:1;:21;;1394:54;;1567:1;1544:20;:24;;;;:::i;:::-;1537:3;:31;1533:412;;1580:17;;;1533:412;1711:20;1735:1;1711:25;1707:238;;1755:1;1748:8;;;;;1707:238;1859:79;1877:26;1883:20;1877:3;:26;:::i;:::-;1905:32;1917:20;1905:9;:32;:::i;:::-;1859:17;:79::i;:::-;1855:83;;:1;:83;:::i;:::-;1848:90;;;936:1011;;;;;:::o;868:140:7:-;921:14;952:53;340:4:2;976:21:7;;999:4;959:45;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;959:45:7;;;;;;;;;;952:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2983:1463:6:-;3132:7;3141:10;3171:9;3184:1;3171:14;3167:103;;-1:-1:-1;3209:8:6;;-1:-1:-1;3219:39:6;3201:58;;3167:103;3283:9;3296:1;3283:14;3279:206;;3317:16;;:21;3313:111;;-1:-1:-1;3366:8:6;;-1:-1:-1;3376:32:6;3358:51;;3313:111;-1:-1:-1;3445:8:6;;-1:-1:-1;3455:18:6;3437:37;;3279:206;3498:9;:16;3518:1;3498:21;3494:109;;-1:-1:-1;3543:8:6;;-1:-1:-1;3553:38:6;3535:57;;3494:109;3612:15;3630:25;3645:9;3630:14;:25::i;:::-;3612:43;;3665:30;3698:41;3704:9;3715:1;3737;3718:9;:16;:20;;;;:::i;:::-;3698:5;:41::i;:::-;3665:74;;3749:16;3785:7;3779:3;:13;3775:347;;;3808:16;3858:54;3874:3;3879:7;3888:8;3898:13;3858:15;:54::i;:::-;3838:74;-1:-1:-1;3838:74:6;-1:-1:-1;3939:18:6;3930:5;:27;;;;;;;;:::i;:::-;;3926:90;;-1:-1:-1;3985:8:6;;-1:-1:-1;3995:5:6;-1:-1:-1;3977:24:6;;-1:-1:-1;;3977:24:6;3926:90;4037:53;4048:8;4058:9;4087:1;4068:9;:16;:20;;;;:::i;:::-;4058:31;;;;;;;;:::i;:::-;;;;;;;4037:10;:53::i;:::-;4092:18;4029:82;;;;;;;;;;3775:347;4131:17;4179:76;4195:13;4201:7;4195:3;:13;:::i;:::-;4210:19;4222:7;4210:9;:19;:::i;:::-;4231:8;4241:13;4179:15;:76::i;:::-;4158:97;-1:-1:-1;4158:97:6;-1:-1:-1;4278:18:6;4269:5;:27;;;;;;;;:::i;:::-;;4265:82;;-1:-1:-1;4320:8:6;;-1:-1:-1;4330:5:6;-1:-1:-1;4312:24:6;;-1:-1:-1;;4312:24:6;4265:82;4364:54;4375:9;4404:1;4385:9;:16;:20;;;;:::i;:::-;4375:31;;;;;;;;:::i;:::-;;;;;;;4408:9;4364:10;:54::i;:::-;4420:18;4356:83;;;;;;;;2983:1463;;;;;;;;:::o;2912:187:8:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:8;;;-1:-1:-1;;;;;;3020:17:8;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;315:362:4:-;372:19;556:72;584:9;569:11;564:1;:16;;563:30;556:72;;;605:16;620:1;605:16;;:::i;:::-;;;556:72;;;640:34;663:11;245:3:2;640:34:4;:::i;2318:492::-;2367:7;2680:1;2675;:6;;2667:15;;;;;;2689:14;2706:11;2715:1;2706:8;:11::i;:::-;2689:28;-1:-1:-1;2723:9:4;2741:10;2750:1;2689:28;2741:10;:::i;:::-;2735:1;:17;;2723:29;;2767:1;2762;:6;2758:36;;2786:1;2780:7;2806:1;2318:492;-1:-1:-1;;;2318:492:4:o;4913:544:6:-;5005:16;5046:4;5037:6;:13;5033:96;;;5066:52;;-1:-1:-1;;;5066:52:6;;10326:2:17;5066:52:6;;;10308:21:17;10365:2;10345:18;;;10338:30;10404:34;10384:18;;;10377:62;-1:-1:-1;;;10455:18:17;;;10448:40;10505:19;;5066:52:6;10124:406:17;5033:96:6;5151:5;:12;5142:6;:21;:44;;;;5174:5;:12;5167:4;:19;5142:44;5138:132;;;5202:57;;-1:-1:-1;;;5202:57:6;;10737:2:17;5202:57:6;;;10719:21:17;10776:2;10756:18;;;10749:30;10815:34;10795:18;;;10788:62;-1:-1:-1;;;10866:18:17;;;10859:45;10921:19;;5202:57:6;10535:411:17;5138:132:6;5279:20;5316:13;5323:6;5316:4;:13;:::i;:::-;-1:-1:-1;;;;;5302:28:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5302:28:6;-1:-1:-1;5279:51:6;-1:-1:-1;5357:6:6;5340:91;5369:4;5365:1;:8;5340:91;;;5412:5;5418:1;5412:8;;;;;;;;:::i;:::-;;;;;;;5394:3;5402:6;5398:1;:10;;;;:::i;:::-;5394:15;;;;;;;;:::i;:::-;;;;;;;;;;:26;5375:3;;5340:91;;;-1:-1:-1;5447:3:6;4913:544;-1:-1:-1;;;;4913:544:6:o;415:157:7:-;516:52;;-1:-1:-1;;;516:52:7;;;11134:39:17;11189:11;;;11182:27;;;11225:12;;;11218:28;;;478:14:7;;509:60;;11262:12:17;;516:52:7;;;-1:-1:-1;;516:52:7;;;;;;;;;;509:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2078:159:4:-;2121:7;;2160:56;2167:6;;2160:56;;2185:7;;;;:::i;:::-;;;;2208:1;2202:7;;;;;2160:56;;14:127:17;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;-1:-1:-1;;;;;282:34:17;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:251::-;480:2;474:9;522:2;510:15;;-1:-1:-1;;;;;540:34:17;;576:22;;;537:62;534:88;;;602:18;;:::i;664:275::-;735:2;729:9;800:2;781:13;;-1:-1:-1;;777:27:17;765:40;;-1:-1:-1;;;;;820:34:17;;856:22;;;817:62;814:88;;;882:18;;:::i;:::-;918:2;911:22;664:275;;-1:-1:-1;664:275:17:o;944:1716::-;1083:6;1091;1099;1143:9;1134:7;1130:23;1173:3;1169:2;1165:12;1162:32;;;1190:1;1187;1180:12;1162:32;1213:23;;;-1:-1:-1;1255:2:17;1291:4;-1:-1:-1;;1273:16:17;;1269:27;1266:47;;;1309:1;1306;1299:12;1266:47;1335:22;;:::i;:::-;1393:18;;;1380:32;1366:47;;1473:4;1458:20;;1445:34;1429:14;;;1422:58;1322:35;-1:-1:-1;1555:2:17;1540:18;;1527:32;;-1:-1:-1;;;;;;1608:14:17;;;1605:34;;;1635:1;1632;1625:12;1605:34;1658:22;;;;1714:2;1696:16;;;1692:25;1689:45;;;1730:1;1727;1720:12;1689:45;1758:22;;:::i;:::-;1818:2;1805:16;1846:2;1836:8;1833:16;1830:36;;;1862:1;1859;1852:12;1830:36;1885:17;;1933:4;1925:13;;1921:27;-1:-1:-1;1911:55:17;;1962:1;1959;1952:12;1911:55;1998:2;1985:16;2020:2;2016;2013:10;2010:36;;;2026:18;;:::i;:::-;2072:2;2069:1;2065:10;2055:20;;2095:28;2119:2;2115;2111:11;2095:28;:::i;:::-;2157:15;;;2227:11;;;2223:20;;;2188:12;;;;2255:19;;;2252:39;;;2287:1;2284;2277:12;2252:39;2311:11;;;;2331:142;2347:6;2342:3;2339:15;2331:142;;;2413:17;;2401:30;;2364:12;;;;2451;;;;2331:142;;;2498:5;2489:7;2482:22;;;;;2559:2;2555;2551:11;2538:25;2533:2;2524:7;2520:16;2513:51;2621:4;2617:2;2613:13;2600:27;2593:4;2584:7;2580:18;2573:55;2647:7;2637:17;;;;;;944:1716;;;;;:::o;2857:171::-;2924:20;;-1:-1:-1;;;;;2973:30:17;;2963:41;;2953:69;;3018:1;3015;3008:12;2953:69;2857:171;;;:::o;3033:252::-;3100:6;3108;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3213:9;3200:23;3190:33;;3242:37;3275:2;3264:9;3260:18;3242:37;:::i;:::-;3232:47;;3033:252;;;;;:::o;3914:180::-;3973:6;4026:2;4014:9;4005:7;4001:23;3997:32;3994:52;;;4042:1;4039;4032:12;3994:52;-1:-1:-1;4065:23:17;;3914:180;-1:-1:-1;3914:180:17:o;4099:347::-;4150:8;4160:6;4214:3;4207:4;4199:6;4195:17;4191:27;4181:55;;4232:1;4229;4222:12;4181:55;-1:-1:-1;4255:20:17;;-1:-1:-1;;;;;4287:30:17;;4284:50;;;4330:1;4327;4320:12;4284:50;4367:4;4359:6;4355:17;4343:29;;4419:3;4412:4;4403:6;4395;4391:19;4387:30;4384:39;4381:59;;;4436:1;4433;4426:12;4381:59;4099:347;;;;;:::o;4451:717::-;4541:6;4549;4557;4565;4618:2;4606:9;4597:7;4593:23;4589:32;4586:52;;;4634:1;4631;4624:12;4586:52;4674:9;4661:23;-1:-1:-1;;;;;4744:2:17;4736:6;4733:14;4730:34;;;4760:1;4757;4750:12;4730:34;4799:58;4849:7;4840:6;4829:9;4825:22;4799:58;:::i;:::-;4876:8;;-1:-1:-1;4773:84:17;-1:-1:-1;4964:2:17;4949:18;;4936:32;;-1:-1:-1;4980:16:17;;;4977:36;;;5009:1;5006;4999:12;4977:36;;5048:60;5100:7;5089:8;5078:9;5074:24;5048:60;:::i;:::-;4451:717;;;;-1:-1:-1;5127:8:17;-1:-1:-1;;;;4451:717:17:o;5560:150::-;-1:-1:-1;;;;;5654:31:17;;5644:42;;5634:70;;5700:1;5697;5690:12;5715:292;5800:6;5853:2;5841:9;5832:7;5828:23;5824:32;5821:52;;;5869:1;5866;5859:12;5821:52;5908:9;5895:23;5927:50;5971:5;5927:50;:::i;6591:651::-;6683:6;6736:3;6724:9;6715:7;6711:23;6707:33;6704:53;;;6753:1;6750;6743:12;6704:53;6786:2;6780:9;6828:3;6820:6;6816:16;6898:6;6886:10;6883:22;-1:-1:-1;;;;;6850:10:17;6847:34;6844:62;6841:88;;;6909:18;;:::i;:::-;6945:2;6938:22;6984:23;;6969:39;;7041:37;7074:2;7059:18;;7041:37;:::i;:::-;7036:2;7028:6;7024:15;7017:62;7140:2;7129:9;7125:18;7112:32;7107:2;7099:6;7095:15;7088:57;7206:2;7195:9;7191:18;7178:32;7173:2;7165:6;7161:15;7154:57;7230:6;7220:16;;;6591:651;;;;:::o;7247:271::-;7430:6;7422;7417:3;7404:33;7386:3;7456:16;;7481:13;;;7456:16;7247:271;-1:-1:-1;7247:271:17:o;7523:184::-;7593:6;7646:2;7634:9;7625:7;7621:23;7617:32;7614:52;;;7662:1;7659;7652:12;7614:52;-1:-1:-1;7685:16:17;;7523:184;-1:-1:-1;7523:184:17:o;7712:535::-;7925:2;7914:9;7907:21;7964:6;7959:2;7948:9;7944:18;7937:34;8022:6;8014;8008:3;7997:9;7993:19;7980:49;8079:1;8073:3;8064:6;8053:9;8049:22;8045:32;8038:43;7888:4;8149:3;8142:2;8138:7;8133:2;8125:6;8121:15;8117:29;8106:9;8102:45;8098:55;8090:63;;8191:6;8184:4;8173:9;8169:20;8162:36;8234:6;8229:2;8218:9;8214:18;8207:34;7712:535;;;;;;;:::o;8528:127::-;8589:10;8584:3;8580:20;8577:1;8570:31;8620:4;8617:1;8610:15;8644:4;8641:1;8634:15;8660:135;8699:3;8720:17;;;8717:43;;8740:18;;:::i;:::-;-1:-1:-1;8787:1:17;8776:13;;8660:135::o;8800:127::-;8861:10;8856:3;8852:20;8849:1;8842:31;8892:4;8889:1;8882:15;8916:4;8913:1;8906:15;8932:128;8999:9;;;9020:11;;;9017:37;;;9034:18;;:::i;9065:125::-;9130:9;;;9151:10;;;9148:36;;;9164:18;;:::i;9195:322::-;9236:3;9274:5;9268:12;9298:1;9308:128;9322:6;9319:1;9316:13;9308:128;;;9419:4;9404:13;;;9400:24;;9394:31;9381:11;;;9374:52;9337:12;9308:128;;;-1:-1:-1;9491:1:17;9455:16;;9480:13;;;-1:-1:-1;9455:16:17;;9195:322;-1:-1:-1;9195:322:17:o;9522:271::-;-1:-1:-1;;;;;;9707:26:17;;9695:39;;9677:3;9750:37;9784:1;9775:11;;9767:6;9750:37;:::i;:::-;9743:44;9522:271;-1:-1:-1;;;;9522:271:17:o;9798:189::-;9927:3;9952:29;9977:3;9969:6;9952:29;:::i;9992:127::-;10053:10;10048:3;10044:20;10041:1;10034:31;10084:4;10081:1;10074:15;10108:4;10105:1;10098:15" }, "id": 13, "metadata": { @@ -828,7 +828,7 @@ "notice": "Initialize the contract, binding it to a specified RISC Zero verifier." }, "imageId()": { - "notice": "Image ID of the only zkVM binary to accept verification from. The image ID is similar to the address of a smart contract. It uniquely represents the logic of that guest program, ensuring that only proofs generated from a pre-defined guest program (in this case, checking if a number is even) are considered valid." + "notice": "Image ID of the only zkVM binary to accept verification from. The image ID is similar to the address of a smart contract. It uniquely represents the logic of that guest program, ensuring that only proofs generated from a pre-defined guest program." }, "latestBlockHash()": { "notice": "The latest block hash validated." @@ -987,11 +987,11 @@ ] }, "src/Blobstream0.sol": { - "keccak256": "0xcf8032bc779d67436e88a82cda9ac6d631d515861e842810533ded99b584af34", + "keccak256": "0x0a4a1d2953584e7fb5c14a633ea7a01ae230fca8a8a43776e301a4585a3b4ace", "license": "Apache-2.0", "urls": [ - "bzz-raw://63ff2cef650f9af0db8b99b3b9953669b9486a7a07529c09cc72c1b2163258e4", - "dweb:/ipfs/QmY5ZdTEp1kGfeLmrvTpdbDJEjRa2kqFbweHRYS8q4aLSo" + "bzz-raw://10f928999ddd080d505be63e5b2a1c6505457f6e77b29a8408f47b577cd7859f", + "dweb:/ipfs/QmWdPnoHQyxR2dVrdbiqU8CtPtKZX7B8hYvgsaHmwipiBa" ] }, "src/ImageID.sol": { @@ -1030,5 +1030,5 @@ "verifier()": "2b7ac3f3", "verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))": "1f3302a9" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_trustedHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_trustedHeight\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidTargetHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTrustedHeaderHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proofNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"startBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"endBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"dataCommitment\",\"type\":\"bytes32\"}],\"name\":\"DataCommitmentStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"}],\"name\":\"HeadUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_imageId\",\"type\":\"bytes32\"}],\"name\":\"adminSetImageId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_trustedHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_trustedHeight\",\"type\":\"uint64\"}],\"name\":\"adminSetTrustedState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"_verifier\",\"type\":\"address\"}],\"name\":\"adminSetVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"imageId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestHeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_commitBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_seal\",\"type\":\"bytes\"}],\"name\":\"updateRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proofNonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"dataRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct DataRootTuple\",\"name\":\"_tuple\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"sideNodes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numLeaves\",\"type\":\"uint256\"}],\"internalType\":\"struct BinaryMerkleProof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"verifyAttestation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"params\":{\"dataCommitment\":\"The data commitment for the block range.\",\"endBlock\":\"The end block of the block range.\",\"proofNonce\":\"The nonce of the proof.\",\"startBlock\":\"The start block of the block range.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"params\":{\"_proof\":\"Binary Merkle tree proof that `tuple` is in the root at `_tupleRootNonce`.\",\"_proofNonce\":\"Nonce of the tuple root to prove against.\",\"_tuple\":\"Data root tuple to prove inclusion of.\"},\"returns\":{\"_0\":\"`true` is proof is valid, `false` otherwise.\"}}},\"stateVariables\":{\"latestBlockHash\":{\"details\":\"always update this in tandem with `latestHeight`\"},\"latestHeight\":{\"details\":\"this value is 64 bits as is the max for heights in Tendermint.\"}},\"title\":\"A starter application using RISC Zero.\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidTargetHeight()\":[{\"notice\":\"Target height for next batch was below the current height.\"}],\"InvalidTrustedHeaderHash()\":[{\"notice\":\"Trusted block hash does not equal the commitment from the new batch.\"}]},\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"notice\":\"Data commitment stored for the block range [startBlock, endBlock) with proof nonce. NOTE: This event matches existing Blobstream contracts, for ease of integration.\"},\"HeadUpdate(uint64,bytes32)\":{\"notice\":\"Emits event with the new head update. NOTE: Matches existing Blobstream contract, for ease of integration.\"}},\"kind\":\"user\",\"methods\":{\"adminSetImageId(bytes32)\":{\"notice\":\"Only the admin can update. Updates the image ID to verify proofs against.\"},\"adminSetTrustedState(bytes32,uint64)\":{\"notice\":\"Only the admin can update. Updates the trusted height and block hash to sync from.\"},\"adminSetVerifier(address)\":{\"notice\":\"Only the admin can update. Updates the verifier contract address.\"},\"constructor\":{\"notice\":\"Initialize the contract, binding it to a specified RISC Zero verifier.\"},\"imageId()\":{\"notice\":\"Image ID of the only zkVM binary to accept verification from. The image ID is similar to the address of a smart contract. It uniquely represents the logic of that guest program, ensuring that only proofs generated from a pre-defined guest program (in this case, checking if a number is even) are considered valid.\"},\"latestBlockHash()\":{\"notice\":\"The latest block hash validated.\"},\"latestHeight()\":{\"notice\":\"The latest height validated.\"},\"proofNonce()\":{\"notice\":\"nonce for mapping block ranges to block merkle roots. This value is used as the key to insert new roots in `merkleRoots`.\"},\"updateRange(bytes,bytes)\":{\"notice\":\"Validate a proof of a new header range, update state.\"},\"verifier()\":{\"notice\":\"RISC Zero verifier contract address.\"},\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"notice\":\"Verify a Data Availability attestation. Method of IDAOracle from Blobstream contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Blobstream0.sol\":\"Blobstream0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":blobstream-contracts/=lib/blobstream-contracts/src/\",\":blobstream/=lib/blobstream-contracts/src/\",\":ds-test/=lib/blobstream-contracts/lib/ds-test/src/\",\":erc4626-tests/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/\",\":risc0-ethereum/=lib/risc0-ethereum/\",\":risc0/=lib/risc0-ethereum/contracts/src/\",\":tree/=lib/blobstream-contracts/src/lib/tree/\",\":verifier/=lib/blobstream-contracts/src/lib/verifier/\"]},\"sources\":{\"lib/blobstream-contracts/src/DataRootTuple.sol\":{\"keccak256\":\"0x0526597d14a6d7f258ec48e434a9b60c9a8781764a8f23c878d49926daeb5d1c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06ee253f8d0f58dbe66c64cb5d2945182ba3bced088167472d8f953cec421916\",\"dweb:/ipfs/QmUF9jjr6bH3pPgjGAZqYhsUn7EevqU7kZn8RBqQ4EoU2w\"]},\"lib/blobstream-contracts/src/IDAOracle.sol\":{\"keccak256\":\"0xc35648b17d3587bc3a627f67a328874db536ee24c11b970c3c57226d69a32eec\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://362610301e6057d10777c84111d4bb43af53af75a488fb8ab8666a775302a3fc\",\"dweb:/ipfs/QmURgSTYhiguV1oCUARaTTWrpFHg5nMEtxhPVcpUDuEKq6\"]},\"lib/blobstream-contracts/src/lib/tree/Constants.sol\":{\"keccak256\":\"0x2050b2be8a739ce250cc5cea1556936c7937915b5d7fde269dd70e8e7eb660c4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://946ea30d1001048a800f60bb24d2ab7ecf5f92ae2abd212f3f855e37a6840ce7\",\"dweb:/ipfs/QmW2PnhAB5h2eCCM6Vafg8ZUpBttjLTbBhtXjJh3SSrYEN\"]},\"lib/blobstream-contracts/src/lib/tree/Types.sol\":{\"keccak256\":\"0xa47e9e20fef88264acdf1fc6bc0b3bb9f23c7022f5de8d203a1014895a606958\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d480249b6adf8730bffcf26eed5902eb9fd1d56d11f931b35a9e19c6415b3f47\",\"dweb:/ipfs/QmPCrcMmQdNMYG232WxEg2zZRFvXQqdEZgwQNMaDJ2oNab\"]},\"lib/blobstream-contracts/src/lib/tree/Utils.sol\":{\"keccak256\":\"0x9760cb3ab3d4f412949b9be1bbdf5d9e7954cad44a94a4f7fe90fcffb86fe7fa\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06edf92a63d5b2c3459800acc6945071ee069be6df03b70f28440c5c732465aa\",\"dweb:/ipfs/QmU4LnS5ckxXpEBE82y5gfsNxn5gUQPh273nLrmfPP9pjD\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleProof.sol\":{\"keccak256\":\"0x9fb953284b455b544091f058fdb11ac73928093517333909c0744d9319410688\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://938230a60210345fe7cc661708c4fe0db663a5f5b5306f05fe4023b44f104b6e\",\"dweb:/ipfs/QmUvcJuDmwnbRzXX5qgV4Mckg6ujvMeo46SrTPvgpPhFSF\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleTree.sol\":{\"keccak256\":\"0x90dc9ac613014c2d3fcebbd23f2b5af67188b7de80b2ef853f20c91a14ce68fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4dffcfb8911d174787b05d814c423ea368c6526e32d762576fb5109e517a185f\",\"dweb:/ipfs/QmRxYnjwkEANhqXkoNifG2kbGtEymyLRU5h2NyPTZ5wbSE\"]},\"lib/blobstream-contracts/src/lib/tree/binary/TreeHasher.sol\":{\"keccak256\":\"0x2f16501eac14f6e2a61de29d3aa10e3aaf8e0a594fc9cf8dc2d955bb2f6d54e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://984a2e5d52cfdd38f2c597bddc4a2de8ad1e4dd9c81008376569a29c74fa963e\",\"dweb:/ipfs/QmaXhfHD58Jv4nSw3qw2hGwbDSPKDjFzPNYWm9Y4KWiigm\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x08b074ae1b12e70ce24d1335086ec5a418934311a6771d9f61fe24d392050e12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2fd900a8f8244fc0a49bae1ca1bd5815884f248a2306b8e7dc68011c25803b7\",\"dweb:/ipfs/Qmd4EaujSR74x7EqziRDfqgc6Tv2nzRQDSaxKXcU1ybxbA\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/risc0-ethereum/contracts/src/IRiscZeroVerifier.sol\":{\"keccak256\":\"0x19341f62c8fe3c0945ebffa4f25d49706ded741af98eaacb7ade824c947f61a4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5d443c7187fd565e25acdfd3df63f14421d06dda0839470cb475546f7c9908c0\",\"dweb:/ipfs/QmeaHPjKmGZBC15iiYKsDCY1k2UY3iYZiNB6Pdc8ow6aVX\"]},\"lib/risc0-ethereum/contracts/src/Util.sol\":{\"keccak256\":\"0x230a9a58bb2b0c68d4921ecc3672783f941890a2fa3a238dbe5188cfb7658b82\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://586cb5296c564761609ca8aaae5b1fbbdb19ab1e174f7197f602572d9e82b70c\",\"dweb:/ipfs/QmWxDmucSfg3Wgdk1rVcheDHwkziTsXWvKpKSCnxtpQBqg\"]},\"src/Blobstream0.sol\":{\"keccak256\":\"0xcf8032bc779d67436e88a82cda9ac6d631d515861e842810533ded99b584af34\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://63ff2cef650f9af0db8b99b3b9953669b9486a7a07529c09cc72c1b2163258e4\",\"dweb:/ipfs/QmY5ZdTEp1kGfeLmrvTpdbDJEjRa2kqFbweHRYS8q4aLSo\"]},\"src/ImageID.sol\":{\"keccak256\":\"0xc9579680bef3e81db0a4737ed28664afa14b620d5ad6011fc696e68f9dd6b37d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c043198ee7133848caac60a549f1e40a76dd95263f79966d8f33d5a3e160502f\",\"dweb:/ipfs/QmZUKM1bMZhCKgvEec1t2qdUFD24nwrK4c7sqXkmJYsoDq\"]},\"src/RangeCommitment.sol\":{\"keccak256\":\"0x5e348841d50935293df2072b720b55b4efa76bb66afd34d64c7c77c1d8a209d8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ef3085d6c2cf5badf284827eaa3cdc469663fe32f6f3356a4381f14923b36df\",\"dweb:/ipfs/QmcPw35WFcVvDJPDhgd67R3mhtRe6GJUGTJ5dwBz5fVBHf\"]}},\"version\":1}" + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_trustedHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_trustedHeight\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidTargetHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTrustedHeaderHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proofNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"startBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"endBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"dataCommitment\",\"type\":\"bytes32\"}],\"name\":\"DataCommitmentStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"}],\"name\":\"HeadUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_imageId\",\"type\":\"bytes32\"}],\"name\":\"adminSetImageId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_trustedHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_trustedHeight\",\"type\":\"uint64\"}],\"name\":\"adminSetTrustedState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"_verifier\",\"type\":\"address\"}],\"name\":\"adminSetVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"imageId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestHeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_commitBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_seal\",\"type\":\"bytes\"}],\"name\":\"updateRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proofNonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"dataRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct DataRootTuple\",\"name\":\"_tuple\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"sideNodes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numLeaves\",\"type\":\"uint256\"}],\"internalType\":\"struct BinaryMerkleProof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"verifyAttestation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"params\":{\"dataCommitment\":\"The data commitment for the block range.\",\"endBlock\":\"The end block of the block range.\",\"proofNonce\":\"The nonce of the proof.\",\"startBlock\":\"The start block of the block range.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"},\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"params\":{\"_proof\":\"Binary Merkle tree proof that `tuple` is in the root at `_tupleRootNonce`.\",\"_proofNonce\":\"Nonce of the tuple root to prove against.\",\"_tuple\":\"Data root tuple to prove inclusion of.\"},\"returns\":{\"_0\":\"`true` is proof is valid, `false` otherwise.\"}}},\"stateVariables\":{\"latestBlockHash\":{\"details\":\"always update this in tandem with `latestHeight`\"},\"latestHeight\":{\"details\":\"this value is 64 bits as is the max for heights in Tendermint.\"}},\"title\":\"A starter application using RISC Zero.\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidTargetHeight()\":[{\"notice\":\"Target height for next batch was below the current height.\"}],\"InvalidTrustedHeaderHash()\":[{\"notice\":\"Trusted block hash does not equal the commitment from the new batch.\"}]},\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"notice\":\"Data commitment stored for the block range [startBlock, endBlock) with proof nonce. NOTE: This event matches existing Blobstream contracts, for ease of integration.\"},\"HeadUpdate(uint64,bytes32)\":{\"notice\":\"Emits event with the new head update. NOTE: Matches existing Blobstream contract, for ease of integration.\"}},\"kind\":\"user\",\"methods\":{\"adminSetImageId(bytes32)\":{\"notice\":\"Only the admin can update. Updates the image ID to verify proofs against.\"},\"adminSetTrustedState(bytes32,uint64)\":{\"notice\":\"Only the admin can update. Updates the trusted height and block hash to sync from.\"},\"adminSetVerifier(address)\":{\"notice\":\"Only the admin can update. Updates the verifier contract address.\"},\"constructor\":{\"notice\":\"Initialize the contract, binding it to a specified RISC Zero verifier.\"},\"imageId()\":{\"notice\":\"Image ID of the only zkVM binary to accept verification from. The image ID is similar to the address of a smart contract. It uniquely represents the logic of that guest program, ensuring that only proofs generated from a pre-defined guest program.\"},\"latestBlockHash()\":{\"notice\":\"The latest block hash validated.\"},\"latestHeight()\":{\"notice\":\"The latest height validated.\"},\"proofNonce()\":{\"notice\":\"nonce for mapping block ranges to block merkle roots. This value is used as the key to insert new roots in `merkleRoots`.\"},\"updateRange(bytes,bytes)\":{\"notice\":\"Validate a proof of a new header range, update state.\"},\"verifier()\":{\"notice\":\"RISC Zero verifier contract address.\"},\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"notice\":\"Verify a Data Availability attestation. Method of IDAOracle from Blobstream contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Blobstream0.sol\":\"Blobstream0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":blobstream-contracts/=lib/blobstream-contracts/src/\",\":blobstream/=lib/blobstream-contracts/src/\",\":ds-test/=lib/blobstream-contracts/lib/ds-test/src/\",\":erc4626-tests/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/\",\":risc0-ethereum/=lib/risc0-ethereum/\",\":risc0/=lib/risc0-ethereum/contracts/src/\",\":tree/=lib/blobstream-contracts/src/lib/tree/\",\":verifier/=lib/blobstream-contracts/src/lib/verifier/\"]},\"sources\":{\"lib/blobstream-contracts/src/DataRootTuple.sol\":{\"keccak256\":\"0x0526597d14a6d7f258ec48e434a9b60c9a8781764a8f23c878d49926daeb5d1c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06ee253f8d0f58dbe66c64cb5d2945182ba3bced088167472d8f953cec421916\",\"dweb:/ipfs/QmUF9jjr6bH3pPgjGAZqYhsUn7EevqU7kZn8RBqQ4EoU2w\"]},\"lib/blobstream-contracts/src/IDAOracle.sol\":{\"keccak256\":\"0xc35648b17d3587bc3a627f67a328874db536ee24c11b970c3c57226d69a32eec\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://362610301e6057d10777c84111d4bb43af53af75a488fb8ab8666a775302a3fc\",\"dweb:/ipfs/QmURgSTYhiguV1oCUARaTTWrpFHg5nMEtxhPVcpUDuEKq6\"]},\"lib/blobstream-contracts/src/lib/tree/Constants.sol\":{\"keccak256\":\"0x2050b2be8a739ce250cc5cea1556936c7937915b5d7fde269dd70e8e7eb660c4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://946ea30d1001048a800f60bb24d2ab7ecf5f92ae2abd212f3f855e37a6840ce7\",\"dweb:/ipfs/QmW2PnhAB5h2eCCM6Vafg8ZUpBttjLTbBhtXjJh3SSrYEN\"]},\"lib/blobstream-contracts/src/lib/tree/Types.sol\":{\"keccak256\":\"0xa47e9e20fef88264acdf1fc6bc0b3bb9f23c7022f5de8d203a1014895a606958\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d480249b6adf8730bffcf26eed5902eb9fd1d56d11f931b35a9e19c6415b3f47\",\"dweb:/ipfs/QmPCrcMmQdNMYG232WxEg2zZRFvXQqdEZgwQNMaDJ2oNab\"]},\"lib/blobstream-contracts/src/lib/tree/Utils.sol\":{\"keccak256\":\"0x9760cb3ab3d4f412949b9be1bbdf5d9e7954cad44a94a4f7fe90fcffb86fe7fa\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06edf92a63d5b2c3459800acc6945071ee069be6df03b70f28440c5c732465aa\",\"dweb:/ipfs/QmU4LnS5ckxXpEBE82y5gfsNxn5gUQPh273nLrmfPP9pjD\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleProof.sol\":{\"keccak256\":\"0x9fb953284b455b544091f058fdb11ac73928093517333909c0744d9319410688\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://938230a60210345fe7cc661708c4fe0db663a5f5b5306f05fe4023b44f104b6e\",\"dweb:/ipfs/QmUvcJuDmwnbRzXX5qgV4Mckg6ujvMeo46SrTPvgpPhFSF\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleTree.sol\":{\"keccak256\":\"0x90dc9ac613014c2d3fcebbd23f2b5af67188b7de80b2ef853f20c91a14ce68fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4dffcfb8911d174787b05d814c423ea368c6526e32d762576fb5109e517a185f\",\"dweb:/ipfs/QmRxYnjwkEANhqXkoNifG2kbGtEymyLRU5h2NyPTZ5wbSE\"]},\"lib/blobstream-contracts/src/lib/tree/binary/TreeHasher.sol\":{\"keccak256\":\"0x2f16501eac14f6e2a61de29d3aa10e3aaf8e0a594fc9cf8dc2d955bb2f6d54e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://984a2e5d52cfdd38f2c597bddc4a2de8ad1e4dd9c81008376569a29c74fa963e\",\"dweb:/ipfs/QmaXhfHD58Jv4nSw3qw2hGwbDSPKDjFzPNYWm9Y4KWiigm\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0x08b074ae1b12e70ce24d1335086ec5a418934311a6771d9f61fe24d392050e12\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2fd900a8f8244fc0a49bae1ca1bd5815884f248a2306b8e7dc68011c25803b7\",\"dweb:/ipfs/Qmd4EaujSR74x7EqziRDfqgc6Tv2nzRQDSaxKXcU1ybxbA\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/risc0-ethereum/contracts/src/IRiscZeroVerifier.sol\":{\"keccak256\":\"0x19341f62c8fe3c0945ebffa4f25d49706ded741af98eaacb7ade824c947f61a4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5d443c7187fd565e25acdfd3df63f14421d06dda0839470cb475546f7c9908c0\",\"dweb:/ipfs/QmeaHPjKmGZBC15iiYKsDCY1k2UY3iYZiNB6Pdc8ow6aVX\"]},\"lib/risc0-ethereum/contracts/src/Util.sol\":{\"keccak256\":\"0x230a9a58bb2b0c68d4921ecc3672783f941890a2fa3a238dbe5188cfb7658b82\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://586cb5296c564761609ca8aaae5b1fbbdb19ab1e174f7197f602572d9e82b70c\",\"dweb:/ipfs/QmWxDmucSfg3Wgdk1rVcheDHwkziTsXWvKpKSCnxtpQBqg\"]},\"src/Blobstream0.sol\":{\"keccak256\":\"0x0a4a1d2953584e7fb5c14a633ea7a01ae230fca8a8a43776e301a4585a3b4ace\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://10f928999ddd080d505be63e5b2a1c6505457f6e77b29a8408f47b577cd7859f\",\"dweb:/ipfs/QmWdPnoHQyxR2dVrdbiqU8CtPtKZX7B8hYvgsaHmwipiBa\"]},\"src/ImageID.sol\":{\"keccak256\":\"0xc9579680bef3e81db0a4737ed28664afa14b620d5ad6011fc696e68f9dd6b37d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c043198ee7133848caac60a549f1e40a76dd95263f79966d8f33d5a3e160502f\",\"dweb:/ipfs/QmZUKM1bMZhCKgvEec1t2qdUFD24nwrK4c7sqXkmJYsoDq\"]},\"src/RangeCommitment.sol\":{\"keccak256\":\"0x5e348841d50935293df2072b720b55b4efa76bb66afd34d64c7c77c1d8a209d8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ef3085d6c2cf5badf284827eaa3cdc469663fe32f6f3356a4381f14923b36df\",\"dweb:/ipfs/QmcPw35WFcVvDJPDhgd67R3mhtRe6GJUGTJ5dwBz5fVBHf\"]}},\"version\":1}" } \ No newline at end of file diff --git a/contracts/src/Blobstream0.sol b/contracts/src/Blobstream0.sol index cd82e3a..0c6578b 100644 --- a/contracts/src/Blobstream0.sol +++ b/contracts/src/Blobstream0.sol @@ -52,8 +52,7 @@ contract Blobstream0 is IDAOracle, Ownable2Step { /// @notice Image ID of the only zkVM binary to accept verification from. /// The image ID is similar to the address of a smart contract. /// It uniquely represents the logic of that guest program, - /// ensuring that only proofs generated from a pre-defined guest program - /// (in this case, checking if a number is even) are considered valid. + /// ensuring that only proofs generated from a pre-defined guest program. bytes32 public imageId = ImageID.LIGHT_CLIENT_GUEST_ID; /// @notice nonce for mapping block ranges to block merkle roots. This value is used as the key @@ -111,8 +110,7 @@ contract Blobstream0 is IDAOracle, Ownable2Step { if (commit.trustedHeaderHash != latestBlockHash) { revert InvalidTrustedHeaderHash(); } - bytes memory journal = abi.encode(commit); - verifier.verify(_seal, imageId, sha256(journal)); + verifier.verify(_seal, imageId, sha256(_commitBytes)); emit DataCommitmentStored(proofNonce, latestHeight, commit.newHeight, commit.merkleRoot);