@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
1 lines • 53.6 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"},{"name":"window","type":"uint256","internalType":"uint256"},{"name":"hooks","type":"address","internalType":"contract IVerifierHooks"},{"name":"rollup","type":"address","internalType":"contract IScrollChain"}],"stateMutability":"nonpayable"},{"type":"function","name":"gatewayURLs","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getHooks","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVerifierHooks"}],"stateMutability":"view"},{"type":"function","name":"getLatestContext","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStorageValues","inputs":[{"name":"context","type":"bytes","internalType":"bytes"},{"name":"req","type":"tuple","internalType":"struct GatewayRequest","components":[{"name":"ops","type":"bytes","internalType":"bytes"}]},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"},{"name":"exitCode","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getWindow","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGatewayURLs","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"GatewayURLsChanged","inputs":[],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CommitTooNew","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CommitTooOld","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60e060405234801561000f575f80fd5b5060405161142c38038061142c83398101604081905261002e91610205565b838383338061005657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005f81610099565b5082516100739060019060208601906100e8565b506080919091526001600160a01b0390811660a0529190911660c0525061047e92505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f2090810192821561012c579160200282015b8281111561012c578251829061011c90826103bf565b5091602001919060010190610106565b5061013892915061013c565b5090565b80821115610138575f61014f8282610158565b5060010161013c565b5080546101649061033b565b5f825580601f10610173575050565b601f0160209004905f5260205f209081019061018f9190610192565b50565b5b80821115610138575f8155600101610193565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101e2576101e26101a6565b604052919050565b80516001600160a01b0381168114610200575f80fd5b919050565b5f805f8060808587031215610218575f80fd5b84516001600160401b038082111561022e575f80fd5b818701915087601f830112610241575f80fd5b8151602082821115610255576102556101a6565b8160051b6102648282016101ba565b928352848101820192828101908c85111561027d575f80fd5b83870192505b8483101561030657825186811115610299575f80fd5b8701603f81018e136102a9575f80fd5b84810151878111156102bd576102bd6101a6565b6102cf601f8201601f191687016101ba565b8181528f60408385010111156102e3575f80fd5b81604084018883015e5f9181018701919091528352509183019190830190610283565b809a5050505080890151965050505050610322604086016101ea565b9150610330606086016101ea565b905092959194509250565b600181811c9082168061034f57607f821691505b60208210810361036d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103ba57805f5260205f20601f840160051c810160208510156103985750805b601f840160051c820191505b818110156103b7575f81556001016103a4565b50505b505050565b81516001600160401b038111156103d8576103d86101a6565b6103ec816103e6845461033b565b84610373565b602080601f83116001811461041f575f84156104085750858301515b5f19600386901b1c1916600185901b178555610476565b5f85815260208120601f198616915b8281101561044d5788860151825594840194600190910190840161042e565b508582101561046a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c051610f6a6104c25f395f818161018101526103a701525f818160ba015261049801525f8181608a01528181610607015261064f0152610f6a5ff3fe608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610760565b6100ef61016a565b005b6100f961017d565b6040516100af91906107a2565b6100da610225565b6100ef61011c366004610882565b610233565b61012961027a565b6040516100af919061093e565b6101496101443660046109be565b61034e565b6040516100af929190610a81565b6100ef610165366004610aef565b610543565b610172610580565b61017b5f6105b2565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff9190610b15565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b610580565b805161024e9060019060208401906106aa565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba90610b2c565b80601f01602080910402602001604051908101604052809291908181526020018280546102e690610b2c565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f80858060200190518101906103669190610b15565b90505f8480602001905181019061037d9190610c36565b905061038c82825f0151610601565b8051604051632571098d60e01b81525f916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691632571098d916103de9160040190815260200190565b602060405180830381865afa1580156103f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041d9190610b15565b9050806104695760405162461bcd60e51b815260206004820152601560248201527414d8dc9bdb1b0e881b9bdd08199a5b985b1a5e9959605a1b60448201526064015b60405180910390fd5b6040805160a0810182525f81526020808201849052840151818301528382015160608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916104f3918b91600401610ce0565b5f60405180830381865af415801561050d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105349190810190610db1565b94509450505050935093915050565b61054b610580565b6001600160a01b038116610574575f604051631e4fbdf760e01b81526004016104609190610760565b61057d816105b2565b50565b33610589610225565b6001600160a01b03161461017b573360405163118cdaa760e01b81526004016104609190610760565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8161062c7f000000000000000000000000000000000000000000000000000000000000000083610e04565b101561067b57604051632a54241d60e21b815260048101839052602481018290527f00000000000000000000000000000000000000000000000000000000000000006044820152606401610460565b818111156106a65760405163b356ade760e01b81526004810183905260248101829052604401610460565b5050565b828054828255905f5260205f209081019282156106ee579160200282015b828111156106ee57825182906106de9082610e75565b50916020019190600101906106c8565b506106fa9291506106fe565b5090565b808211156106fa575f610711828261071a565b506001016106fe565b50805461072690610b2c565b5f825580601f10610735575050565b601f0160209004905f5260205f209081019061057d91905b808211156106fa575f815560010161074d565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107b46020830184610774565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107f7576107f76107bb565b604052919050565b5f6001600160401b03821115610817576108176107bb565b5060051b60200190565b5f6001600160401b03821115610839576108396107bb565b50601f01601f191660200190565b5f61085961085484610821565b6107cf565b905082815283838301111561086c575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215610893575f80fd5b82356001600160401b03808211156108a9575f80fd5b818501915085601f8301126108bc575f80fd5b81356108ca610854826107ff565b81815260059190911b830184019084810190888311156108e8575f80fd5b8585015b8381101561093157803585811115610902575f80fd5b8601603f81018b13610912575f80fd5b6109238b8983013560408401610847565b8452509186019186016108ec565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561099357603f19888603018452610981858351610774565b94509285019290850190600101610965565b5092979650505050505050565b5f82601f8301126109af575f80fd5b6107b483833560208501610847565b5f805f606084860312156109d0575f80fd5b83356001600160401b03808211156109e6575f80fd5b6109f2878388016109a0565b94506020860135915080821115610a07575f80fd5b9085019060208288031215610a1a575f80fd5b604051602081018181108382111715610a3557610a356107bb565b604052823582811115610a46575f80fd5b610a52898286016109a0565b82525093506040860135915080821115610a6a575f80fd5b50610a77868287016109a0565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610ad657605f19888703018552610ac4868351610774565b95509382019390820190600101610aa8565b50505050508091505060ff831660208301529392505050565b5f60208284031215610aff575f80fd5b81356001600160a01b03811681146107b4575f80fd5b5f60208284031215610b25575f80fd5b5051919050565b600181811c90821680610b4057607f821691505b602082108103610b5e57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112610b73575f80fd5b8151610b8161085482610821565b818152846020838601011115610b95575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610bc0575f80fd5b81516020610bd0610854836107ff565b82815260059290921b84018101918181019086841115610bee575f80fd5b8286015b84811015610c2b5780516001600160401b03811115610c0f575f80fd5b610c1d8986838b0101610b64565b845250918301918301610bf2565b509695505050505050565b5f60208284031215610c46575f80fd5b81516001600160401b0380821115610c5c575f80fd5b9083019060608286031215610c6f575f80fd5b604051606081018181108382111715610c8a57610c8a6107bb565b60405282518152602083015182811115610ca2575f80fd5b610cae87828601610bb1565b602083015250604083015182811115610cc5575f80fd5b610cd187828601610b64565b60408301525095945050505050565b604081525f83516020806040850152610cfc6060850183610774565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610d6d5760bf19878603018352610d5b858551610774565b94509285019291850191600101610d3f565b50505050606086015191508281036060840152610d8a8183610774565b9150506080850151610da760808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610dc2575f80fd5b82516001600160401b03811115610dd7575f80fd5b610de385828601610bb1565b925050602083015160ff81168114610df9575f80fd5b809150509250929050565b80820180821115610e2357634e487b7160e01b5f52601160045260245ffd5b92915050565b601f821115610e7057805f5260205f20601f840160051c81016020851015610e4e5750805b601f840160051c820191505b81811015610e6d575f8155600101610e5a565b50505b505050565b81516001600160401b03811115610e8e57610e8e6107bb565b610ea281610e9c8454610b2c565b84610e29565b602080601f831160018114610ed5575f8415610ebe5750858301515b5f19600386901b1c1916600185901b178555610f2c565b5f85815260208120601f198616915b82811015610f0357888601518255948401946001909101908401610ee4565b5085821015610f2057878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea264697066735822122056d89c33a72512e25e47a9553c2d3c8e6f5d995244057e80af1ae5f5d2c0ec3e64736f6c63430008190033","sourceMap":"408:1203:30:-:0;;;495:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;643:4;649:6;657:5;566:10:0;;1269:95:39;;1322:31;;-1:-1:-1;;;1322:31:39;;1350:1;1322:31;;;2593:51:55;2566:18;;1322:31:39;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;588:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;610:16:0::1;::::0;;;;-1:-1:-1;;;;;636:14:0;;::::1;;::::0;674:16:30;;;::::1;;::::0;-1:-1:-1;408:1203:30;;-1:-1:-1;;;408:1203:30;2912:187:39;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:39;;;-1:-1:-1;;;;;;3020:17:39;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;408:1203:30:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;408:1203:30;;;-1:-1:-1;408:1203:30;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:127:55;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:55;247:40;;-1:-1:-1;;;;;302:34:55;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:55:o;426:193::-;521:13;;-1:-1:-1;;;;;563:31:55;;553:42;;543:70;;609:1;606;599:12;543:70;426:193;;;:::o;624:1818::-;801:6;809;817;825;878:3;866:9;857:7;853:23;849:33;846:53;;;895:1;892;885:12;846:53;922:16;;-1:-1:-1;;;;;987:14:55;;;984:34;;;1014:1;1011;1004:12;984:34;1052:6;1041:9;1037:22;1027:32;;1097:7;1090:4;1086:2;1082:13;1078:27;1068:55;;1119:1;1116;1109:12;1068:55;1148:2;1142:9;1170:4;1193:2;1189;1186:10;1183:36;;;1199:18;;:::i;:::-;1245:2;1242:1;1238:10;1268:28;1292:2;1288;1284:11;1268:28;:::i;:::-;1330:15;;;1400:11;;;1396:20;;;1361:12;;;;1428:19;;;1425:39;;;1460:1;1457;1450:12;1425:39;1492:2;1488;1484:11;1473:22;;1504:696;1520:6;1515:3;1512:15;1504:696;;;1599:3;1593:10;1635:2;1622:11;1619:19;1616:39;;;1651:1;1648;1641:12;1616:39;1678:20;;1733:2;1725:11;;1721:25;-1:-1:-1;1711:53:55;;1760:1;1757;1750:12;1711:53;1801:2;1797;1793:11;1787:18;1828:2;1824;1821:10;1818:36;;;1834:18;;:::i;:::-;1880:53;1923:2;1904:13;;-1:-1:-1;;1900:27:55;1896:36;;1880:53;:::i;:::-;1960:2;1953:5;1946:17;2004:7;1999:2;1994;1990;1986:11;1982:20;1979:33;1976:53;;;2025:1;2022;2015:12;1976:53;2077:2;2072;2068;2064:11;2059:2;2052:5;2048:14;2042:38;2125:1;2104:14;;;2100:23;;2093:34;;;;2140:18;;-1:-1:-1;1537:12:55;;;;2178;;;;1504:696;;;2219:5;2209:15;;;;;2264:2;2253:9;2249:18;2243:25;2233:35;;;;;;2287:65;2348:2;2337:9;2333:18;2287:65;:::i;:::-;2277:75;;2371:65;2432:2;2421:9;2417:18;2371:65;:::i;:::-;2361:75;;624:1818;;;;;;;:::o;2655:380::-;2734:1;2730:12;;;;2777;;;2798:61;;2852:4;2844:6;2840:17;2830:27;;2798:61;2905:2;2897:6;2894:14;2874:18;2871:38;2868:161;;2951:10;2946:3;2942:20;2939:1;2932:31;2986:4;2983:1;2976:15;3014:4;3011:1;3004:15;2868:161;;2655:380;;;:::o;3166:518::-;3268:2;3263:3;3260:11;3257:421;;;3304:5;3301:1;3294:16;3348:4;3345:1;3335:18;3418:2;3406:10;3402:19;3399:1;3395:27;3389:4;3385:38;3454:4;3442:10;3439:20;3436:47;;;-1:-1:-1;3477:4:55;3436:47;3532:2;3527:3;3523:12;3520:1;3516:20;3510:4;3506:31;3496:41;;3587:81;3605:2;3598:5;3595:13;3587:81;;;3664:1;3650:16;;3631:1;3620:13;3587:81;;;3591:3;;3257:421;3166:518;;;:::o;3860:1345::-;3980:10;;-1:-1:-1;;;;;4002:30:55;;3999:56;;;4035:18;;:::i;:::-;4064:97;4154:6;4114:38;4146:4;4140:11;4114:38;:::i;:::-;4108:4;4064:97;:::i;:::-;4216:4;;4273:2;4262:14;;4290:1;4285:663;;;;4992:1;5009:6;5006:89;;;-1:-1:-1;5061:19:55;;;5055:26;5006:89;-1:-1:-1;;3817:1:55;3813:11;;;3809:24;3805:29;3795:40;3841:1;3837:11;;;3792:57;5108:81;;4255:944;;4285:663;3113:1;3106:14;;;3150:4;3137:18;;-1:-1:-1;;4321:20:55;;;4439:236;4453:7;4450:1;4447:14;4439:236;;;4542:19;;;4536:26;4521:42;;4634:27;;;;4602:1;4590:14;;;;4469:19;;4439:236;;;4443:3;4703:6;4694:7;4691:19;4688:201;;;4764:19;;;4758:26;-1:-1:-1;;4847:1:55;4843:14;;;4859:3;4839:24;4835:37;4831:42;4816:58;4801:74;;4688:201;;;4935:1;4926:6;4923:1;4919:14;4915:22;4909:4;4902:36;4255:944;;;;;3860:1345;;:::o;:::-;408:1203:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2445,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610760565b6100ef61016a565b005b6100f961017d565b6040516100af91906107a2565b6100da610225565b6100ef61011c366004610882565b610233565b61012961027a565b6040516100af919061093e565b6101496101443660046109be565b61034e565b6040516100af929190610a81565b6100ef610165366004610aef565b610543565b610172610580565b61017b5f6105b2565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663059def616040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff9190610b15565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b610580565b805161024e9060019060208401906106aa565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba90610b2c565b80601f01602080910402602001604051908101604052809291908181526020018280546102e690610b2c565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f80858060200190518101906103669190610b15565b90505f8480602001905181019061037d9190610c36565b905061038c82825f0151610601565b8051604051632571098d60e01b81525f916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691632571098d916103de9160040190815260200190565b602060405180830381865afa1580156103f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041d9190610b15565b9050806104695760405162461bcd60e51b815260206004820152601560248201527414d8dc9bdb1b0e881b9bdd08199a5b985b1a5e9959605a1b60448201526064015b60405180910390fd5b6040805160a0810182525f81526020808201849052840151818301528382015160608201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916104f3918b91600401610ce0565b5f60405180830381865af415801561050d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105349190810190610db1565b94509450505050935093915050565b61054b610580565b6001600160a01b038116610574575f604051631e4fbdf760e01b81526004016104609190610760565b61057d816105b2565b50565b33610589610225565b6001600160a01b03161461017b573360405163118cdaa760e01b81526004016104609190610760565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8161062c7f000000000000000000000000000000000000000000000000000000000000000083610e04565b101561067b57604051632a54241d60e21b815260048101839052602481018290527f00000000000000000000000000000000000000000000000000000000000000006044820152606401610460565b818111156106a65760405163b356ade760e01b81526004810183905260248101829052604401610460565b5050565b828054828255905f5260205f209081019282156106ee579160200282015b828111156106ee57825182906106de9082610e75565b50916020019190600101906106c8565b506106fa9291506106fe565b5090565b808211156106fa575f610711828261071a565b506001016106fe565b50805461072690610b2c565b5f825580601f10610735575050565b601f0160209004905f5260205f209081019061057d91905b808211156106fa575f815560010161074d565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107b46020830184610774565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107f7576107f76107bb565b604052919050565b5f6001600160401b03821115610817576108176107bb565b5060051b60200190565b5f6001600160401b03821115610839576108396107bb565b50601f01601f191660200190565b5f61085961085484610821565b6107cf565b905082815283838301111561086c575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215610893575f80fd5b82356001600160401b03808211156108a9575f80fd5b818501915085601f8301126108bc575f80fd5b81356108ca610854826107ff565b81815260059190911b830184019084810190888311156108e8575f80fd5b8585015b8381101561093157803585811115610902575f80fd5b8601603f81018b13610912575f80fd5b6109238b8983013560408401610847565b8452509186019186016108ec565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561099357603f19888603018452610981858351610774565b94509285019290850190600101610965565b5092979650505050505050565b5f82601f8301126109af575f80fd5b6107b483833560208501610847565b5f805f606084860312156109d0575f80fd5b83356001600160401b03808211156109e6575f80fd5b6109f2878388016109a0565b94506020860135915080821115610a07575f80fd5b9085019060208288031215610a1a575f80fd5b604051602081018181108382111715610a3557610a356107bb565b604052823582811115610a46575f80fd5b610a52898286016109a0565b82525093506040860135915080821115610a6a575f80fd5b50610a77868287016109a0565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610ad657605f19888703018552610ac4868351610774565b95509382019390820190600101610aa8565b50505050508091505060ff831660208301529392505050565b5f60208284031215610aff575f80fd5b81356001600160a01b03811681146107b4575f80fd5b5f60208284031215610b25575f80fd5b5051919050565b600181811c90821680610b4057607f821691505b602082108103610b5e57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112610b73575f80fd5b8151610b8161085482610821565b818152846020838601011115610b95575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610bc0575f80fd5b81516020610bd0610854836107ff565b82815260059290921b84018101918181019086841115610bee575f80fd5b8286015b84811015610c2b5780516001600160401b03811115610c0f575f80fd5b610c1d8986838b0101610b64565b845250918301918301610bf2565b509695505050505050565b5f60208284031215610c46575f80fd5b81516001600160401b0380821115610c5c575f80fd5b9083019060608286031215610c6f575f80fd5b604051606081018181108382111715610c8a57610c8a6107bb565b60405282518152602083015182811115610ca2575f80fd5b610cae87828601610bb1565b602083015250604083015182811115610cc5575f80fd5b610cd187828601610b64565b60408301525095945050505050565b604081525f83516020806040850152610cfc6060850183610774565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610d6d5760bf19878603018352610d5b858551610774565b94509285019291850191600101610d3f565b50505050606086015191508281036060840152610d8a8183610774565b9150506080850151610da760808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610dc2575f80fd5b82516001600160401b03811115610dd7575f80fd5b610de385828601610bb1565b925050602083015160ff81168114610df9575f80fd5b809150509250929050565b80820180821115610e2357634e487b7160e01b5f52601160045260245ffd5b92915050565b601f821115610e7057805f5260205f20601f840160051c81016020851015610e4e5750805b601f840160051c820191505b81811015610e6d575f8155600101610e5a565b50505b505050565b81516001600160401b03811115610e8e57610e8e6107bb565b610ea281610e9c8454610b2c565b84610e29565b602080601f831160018114610ed5575f8415610ebe5750858301515b5f19600386901b1c1916600185901b178555610f2c565b5f85815260208120601f198616915b82811015610f0357888601518255948401946001909101908401610ee4565b5085821015610f2057878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea264697066735822122056d89c33a72512e25e47a9553c2d3c8e6f5d995244057e80af1ae5f5d2c0ec3e64736f6c63430008190033","sourceMap":"408:1203:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;;;966:7;160:25:55;;148:2;133:18;896:84:0;;;;;;;;986:89;1062:6;986:89;;;;;;;:::i;2293:101:39:-;;;:::i;:::-;;703:134:30;;;:::i;:::-;;;;;;;:::i;1638:85:39:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;949:660:30:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2543:215:39:-;;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;703:134:30:-;754:12;796:7;-1:-1:-1;;;;;796:31:30;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;785:45;;;;;;160:25:55;;148:2;133:18;;14:177;785:45:30;;;;;;;;;;;;;778:52;;703:134;:::o;1638:85:39:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:39;;1638:85::o;663:129:0:-;1531:13:39;:11;:13::i;:::-;738:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;765:20:0::1;::::0;::::1;::::0;;;::::1;663:129:::0;:::o;798:92::-;844:15;878:5;871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:92;:::o;949:660:30:-;1097:14;1113;1139:19;1172:7;1161:30;;;;;;;;;;;;:::i;:::-;1139:52;;1201:21;1236:5;1225:33;;;;;;;;;;;;:::i;:::-;1201:57;;1268:39;1281:11;1294:1;:12;;;1268;:39::i;:::-;1365:12;;1337:41;;-1:-1:-1;;;1337:41:30;;1317:17;;-1:-1:-1;;;;;1337:7:30;:27;;;;:41;;;;160:25:55;;;148:2;133:18;;14:177;1337:41:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1317:61;-1:-1:-1;1317:61:30;1388:57;;;;-1:-1:-1;;;1388:57:30;;10252:2:55;1388:57:30;;;10234:21:55;10291:2;10271:18;;;10264:30;-1:-1:-1;;;10310:18:55;;;10303:51;10371:18;;1388:57:30;;;;;;;;;1534:54;;;;;;;;-1:-1:-1;1534:54:30;;;;;;;;;1562:8;;;1534:54;;;;1572:7;;;;1534:54;;;;-1:-1:-1;;;;;1581:6:30;1534:54;;;;;1474:128;;-1:-1:-1;;;1474:128:30;;:9;;:21;;:128;;1513:3;;1474:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1474:128:30;;;;;;;;;;;;:::i;:::-;1455:147;;;;;;;949:660;;;;;;:::o;2543:215:39:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:39;::::1;2623:91;;2700:1;2672:31;;-1:-1:-1::0;;;2672:31:39::1;;;;;;;;:::i;2623:91::-;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;735:10:40;1855:7:39;:5;:7::i;:::-;-1:-1:-1;;;;;1855:23:39;;1851:101;;735:10:40;1901:40:39;;-1:-1:-1;;;1901:40:39;;;;;;;;:::i;2912:187::-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:39;;;-1:-1:-1;;;;;;3020:17:39;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1081:211:0:-;1176:6;1160:13;1166:7;1160:3;:13;:::i;:::-;:22;1156:69;;;1191:34;;-1:-1:-1;;;1191:34:0;;;;;12928:25:55;;;12969:18;;;12962:34;;;1217:7:0;13012:18:55;;;13005:34;12901:18;;1191:34:0;12726:319:55;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;13224::55;;;13265:18;;;13258:34;;;13197:18;;1260:25:0;13050:248:55;1235:50:0;1081:211;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;321:226:55;-1:-1:-1;;;;;508:32:55;;;;490:51;;478:2;463:18;;321:226::o;552:288::-;593:3;631:5;625:12;658:6;653:3;646:19;714:6;707:4;700:5;696:16;689:4;684:3;680:14;674:47;766:1;759:4;750:6;745:3;741:16;737:27;730:38;829:4;822:2;818:7;813:2;805:6;801:15;797:29;792:3;788:39;784:50;777:57;;;552:288;;;;:::o;845:217::-;992:2;981:9;974:21;955:4;1012:44;1052:2;1041:9;1037:18;1029:6;1012:44;:::i;:::-;1004:52;845:217;-1:-1:-1;;;845:217:55:o;1275:127::-;1336:10;1331:3;1327:20;1324:1;1317:31;1367:4;1364:1;1357:15;1391:4;1388:1;1381:15;1407:275;1478:2;1472:9;1543:2;1524:13;;-1:-1:-1;;1520:27:55;1508:40;;-1:-1:-1;;;;;1563:34:55;;1599:22;;;1560:62;1557:88;;;1625:18;;:::i;:::-;1661:2;1654:22;1407:275;;-1:-1:-1;1407:275:55:o;1687:182::-;1746:4;-1:-1:-1;;;;;1768:30:55;;1765:56;;;1801:18;;:::i;:::-;-1:-1:-1;1846:1:55;1842:14;1858:4;1838:25;;1687:182::o;1874:187::-;1923:4;-1:-1:-1;;;;;1945:30:55;;1942:56;;;1978:18;;:::i;:::-;-1:-1:-1;2044:2:55;2023:15;-1:-1:-1;;2019:29:55;2050:4;2015:40;;1874:187::o;2066:338::-;2131:5;2160:53;2176:36;2205:6;2176:36;:::i;:::-;2160:53;:::i;:::-;2151:62;;2236:6;2229:5;2222:21;2276:3;2267:6;2262:3;2258:16;2255:25;2252:45;;;2293:1;2290;2283:12;2252:45;2342:6;2337:3;2330:4;2323:5;2319:16;2306:43;2396:1;2389:4;2380:6;2373:5;2369:18;2365:29;2358:40;2066:338;;;;;:::o;2409:1197::-;2503:6;2534:2;2577;2565:9;2556:7;2552:23;2548:32;2545:52;;;2593:1;2590;2583:12;2545:52;2620:23;;-1:-1:-1;;;;;2692:14:55;;;2689:34;;;2719:1;2716;2709:12;2689:34;2757:6;2746:9;2742:22;2732:32;;2802:7;2795:4;2791:2;2787:13;2783:27;2773:55;;2824:1;2821;2814:12;2773:55;2860:2;2847:16;2883:59;2899:42;2938:2;2899:42;:::i;2883:59::-;2976:15;;;3058:1;3054:10;;;;3046:19;;3042:28;;;3007:12;;;;3082:19;;;3079:39;;;3114:1;3111;3104:12;3079:39;3146:2;3142;3138:11;3158:418;3174:6;3169:3;3166:15;3158:418;;;3260:3;3247:17;3296:2;3283:11;3280:19;3277:39;;;3312:1;3309;3302:12;3277:39;3339:20;;3394:2;3386:11;;3382:25;-1:-1:-1;3372:53:55;;3421:1;3418;3411:12;3372:53;3450:83;3525:7;3519:2;3515;3511:11;3498:25;3493:2;3489;3485:11;3450:83;:::i;:::-;3438:96;;-1:-1:-1;3554:12:55;;;;3191;;3158:418;;;-1:-1:-1;3595:5:55;2409:1197;-1:-1:-1;;;;;;;;2409:1197:55:o;3611:802::-;3773:4;3802:2;3842;3831:9;3827:18;3872:2;3861:9;3854:21;3895:6;3930;3924:13;3961:6;3953;3946:22;3999:2;3988:9;3984:18;3977:25;;4061:2;4051:6;4048:1;4044:14;4033:9;4029:30;4025:39;4011:53;;4099:2;4091:6;4087:15;4120:1;4130:254;4144:6;4141:1;4138:13;4130:254;;;4237:2;4233:7;4221:9;4213:6;4209:22;4205:36;4200:3;4193:49;4265:39;4297:6;4288;4282:13;4265:39;:::i;:::-;4255:49;-1:-1:-1;4362:12:55;;;;4327:15;;;;4166:1;4159:9;4130:254;;;-1:-1:-1;4401:6:55;;3611:802;-1:-1:-1;;;;;;;3611:802:55:o;4418:221::-;4460:5;4513:3;4506:4;4498:6;4494:17;4490:27;4480:55;;4531:1;4528;4521:12;4480:55;4553:80;4629:3;4620:6;4607:20;4600:4;4592:6;4588:17;4553:80;:::i;4644:1153::-;4771:6;4779;4787;4840:2;4828:9;4819:7;4815:23;4811:32;4808:52;;;4856:1;4853;4846:12;4808:52;4883:23;;-1:-1:-1;;;;;4955:14:55;;;4952:34;;;4982:1;4979;4972:12;4952:34;5005:49;5046:7;5037:6;5026:9;5022:22;5005:49;:::i;:::-;4995:59;;5107:2;5096:9;5092:18;5079:32;5063:48;;5136:2;5126:8;5123:16;5120:36;;;5152:1;5149;5142:12;5120:36;5175:24;;;;5233:2;5215:16;;;5211:25;5208:45;;;5249:1;5246;5239:12;5208:45;5282:2;5276:9;5324:2;5316:6;5312:15;5377:6;5365:10;5362:22;5357:2;5345:10;5342:18;5339:46;5336:72;;;5388:18;;:::i;:::-;5424:2;5417:22;5464:16;;5492;;;5489:36;;;5521:1;5518;5511:12;5489:36;5549:44;5585:7;5574:8;5570:2;5566:17;5549:44;:::i;:::-;5534:60;;-1:-1:-1;5541:6:55;-1:-1:-1;5672:2:55;5657:18;;5644:32;;-1:-1:-1;5688:16:55;;;5685:36;;;5717:1;5714;5707:12;5685:36;;5740:51;5783:7;5772:8;5761:9;5757:24;5740:51;:::i;:::-;5730:61;;;4644:1153;;;;;:::o;5802:884::-;5986:4;6034:2;6023:9;6019:18;6064:2;6053:9;6046:21;6087:6;6122;6116:13;6153:6;6145;6138:22;6191:2;6180:9;6176:18;6169:25;;6253:2;6243:6;6240:1;6236:14;6225:9;6221:30;6217:39;6203:53;;6275:4;6314;6306:6;6302:17;6337:1;6347:254;6361:6;6358:1;6355:13;6347:254;;;6454:2;6450:7;6438:9;6430:6;6426:22;6422:36;6417:3;6410:49;6482:39;6514:6;6505;6499:13;6482:39;:::i;:::-;6472:49;-1:-1:-1;6579:12:55;;;;6544:15;;;;6383:1;6376:9;6347:254;;;6351:3;;;;;6618:6;6610:14;;;6674:4;6666:6;6662:17;6655:4;6644:9;6640:20;6633:47;5802:884;;;;;:::o;6691:286::-;6750:6;6803:2;6791:9;6782:7;6778:23;6774:32;6771:52;;;6819:1;6816;6809:12;6771:52;6845:23;;-1:-1:-1;;;;;6897:31:55;;6887:42;;6877:70;;6943:1;6940;6933:12;6982:184;7052:6;7105:2;7093:9;7084:7;7080:23;7076:32;7073:52;;;7121:1;7118;7111:12;7073:52;-1:-1:-1;7144:16:55;;6982:184;-1:-1:-1;6982:184:55:o;7171:380::-;7250:1;7246:12;;;;7293;;;7314:61;;7368:4;7360:6;7356:17;7346:27;;7314:61;7421:2;7413:6;7410:14;7390:18;7387:38;7384:161;;7467:10;7462:3;7458:20;7455:1;7448:31;7502:4;7499:1;7492:15;7530:4;7527:1;7520:15;7384:161;;7171:380;;;:::o;7556:460::-;7609:5;7662:3;7655:4;7647:6;7643:17;7639:27;7629:55;;7680:1;7677;7670:12;7629:55;7709:6;7703:13;7740:49;7756:32;7785:2;7756:32;:::i;7740:49::-;7814:2;7805:7;7798:19;7860:3;7853:4;7848:2;7840:6;7836:15;7832:26;7829:35;7826:55;;;7877:1;7874;7867:12;7826:55;7935:2;7928:4;7920:6;7916:17;7909:4;7900:7;7896:18;7890:48;7983:1;7958:16;;;7976:4;7954:27;7947:38;;;;7962:7;7556:460;-1:-1:-1;;;7556:460:55:o;8021:823::-;8084:5;8137:3;8130:4;8122:6;8118:17;8114:27;8104:55;;8155:1;8152;8145:12;8104:55;8184:6;8178:13;8210:4;8234:59;8250:42;8289:2;8250:42;:::i;8234:59::-;8327:15;;;8413:1;8409:10;;;;8397:23;;8393:32;;;8358:12;;;;8437:15;;;8434:35;;;8465:1;8462;8455:12;8434:35;8501:2;8493:6;8489:15;8513:302;8529:6;8524:3;8521:15;8513:302;;;8602:10;;-1:-1:-1;;;;;8628:35:55;;8625:55;;;8676:1;8673;8666:12;8625:55;8705:67;8768:3;8763:2;8749:11;8741:6;8737:24;8733:33;8705:67;:::i;:::-;8693:80;;-1:-1:-1;8793:12:55;;;;8546;;8513:302;;;-1:-1:-1;8833:5:55;8021:823;-1:-1:-1;;;;;;8021:823:55:o;8849:1007::-;8950:6;9003:2;8991:9;8982:7;8978:23;8974:32;8971:52;;;9019:1;9016;9009:12;8971:52;9046:16;;-1:-1:-1;;;;;9111:14:55;;;9108:34;;;9138:1;9135;9128:12;9108:34;9161:22;;;;9217:4;9199:16;;;9195:27;9192:47;;;9235:1;9232;9225:12;9192:47;9268:2;9262:9;9310:4;9302:6;9298:17;9365:6;9353:10;9350:22;9345:2;9333:10;9330:18;9327:46;9324:72;;;9376:18;;:::i;:::-;9412:2;9405:22;9451:9;;9436:25;;9500:2;9492:11;;9486:18;9516:16;;;9513:36;;;9545:1;9542;9535:12;9513:36;9582:65;9639:7;9628:8;9624:2;9620:17;9582:65;:::i;:::-;9577:2;9569:6;9565:15;9558:90;;9687:2;9683;9679:11;9673:18;9716:2;9706:8;9703:16;9700:36;;;9732:1;9729;9722:12;9700:36;9769:55;9816:7;9805:8;9801:2;9797:17;9769:55;:::i;:::-;9764:2;9752:15;;9745:80;-1:-1:-1;9756:6:55;8849:1007;-1:-1:-1;;;;;8849:1007:55:o;10400:1569::-;10691:2;10680:9;10673:21;10654:4;10729:6;10723:13;10755:4;10795:2;10790;10779:9;10775:18;10768:30;10818:50;10864:2;10853:9;10849:18;10835:12;10818:50;:::i;:::-;10807:61;;10913:9;10908:3;10904:19;10899:2;10888:9;10884:18;10877:47;10956:4;10951:3;10947:14;10988:6;10982:13;10977:3;10970:26;11044:2;11036:6;11032:15;11026:22;11021:2;11016:3;11012:12;11005:44;11098:2;11090:6;11086:15;11080:22;11132:4;11127:2;11122:3;11118:12;11111:26;11157:6;11192:14;11186:21;11231:6;11223;11216:22;11263:3;11258;11254:13;11247:20;;11320:3;11310:6;11307:1;11303:14;11298:3;11294:24;11290:34;11276:48;;11367:2;11351:14;11347:23;11333:37;;11388:1;11398:249;11412:6;11409:1;11406:13;11398:249;;;11499:3;11495:8;11489:3;11481:6;11477:16;11473:31;11468:3;11461:44;11528:39;11560:6;11551;11545:13;11528:39;:::i;:::-;11518:49;-1:-1:-1;11590:15:55;;;;11625:12;;;;11434:1;11427:9;11398:249;;;11402:3;;;;11696:2;11688:6;11684:15;11678:22;11656:44;;11742:3;11734:6;11730:16;11725:2;11720:3;11716:12;11709:38;11770:40;11803:6;11787:14;11770:40;:::i;:::-;11756:54;;;11859:4;11851:6;11847:17;11841:24;11874:66;11934:4;11929:3;11925:14;11909;-1:-1:-1;;;;;278:31:55;266:44;;196:120;11874:66;-1:-1:-1;11957:6:55;10400:1569;-1:-1:-1;;;;;10400:1569:55:o;11974:520::-;12085:6;12093;12146:2;12134:9;12125:7;12121:23;12117:32;12114:52;;;12162:1;12159;12152:12;12114:52;12189:16;;-1:-1:-1;;;;;12217:30:55;;12214:50;;;12260:1;12257;12250:12;12214:50;12283:70;12345:7;12336:6;12325:9;12321:22;12283:70;:::i;:::-;12273:80;;;12396:2;12385:9;12381:18;12375:25;12440:4;12433:5;12429:16;12422:5;12419:27;12409:55;;12460:1;12457;12450:12;12409:55;12483:5;12473:15;;;11974:520;;;;;:::o;12499:222::-;12564:9;;;12585:10;;;12582:133;;;12637:10;12632:3;12628:20;12625:1;12618:31;12672:4;12669:1;12662:15;12700:4;12697:1;12690:15;12582:133;12499:222;;;;:::o;13429:518::-;13531:2;13526:3;13523:11;13520:421;;;13567:5;13564:1;13557:16;13611:4;13608:1;13598:18;13681:2;13669:10;13665:19;13662:1;13658:27;13652:4;13648:38;13717:4;13705:10;13702:20;13699:47;;;-1:-1:-1;13740:4:55;13699:47;13795:2;13790:3;13786:12;13783:1;13779:20;13773:4;13769:31;13759:41;;13850:81;13868:2;13861:5;13858:13;13850:81;;;13927:1;13913:16;;13894:1;13883:13;13850:81;;;13854:3;;13520:421;13429:518;;;:::o;14123:1345::-;14243:10;;-1:-1:-1;;;;;14265:30:55;;14262:56;;;14298:18;;:::i;:::-;14327:97;14417:6;14377:38;14409:4;14403:11;14377:38;:::i;:::-;14371:4;14327:97;:::i;:::-;14479:4;;14536:2;14525:14;;14553:1;14548:663;;;;15255:1;15272:6;15269:89;;;-1:-1:-1;15324:19:55;;;15318:26;15269:89;-1:-1:-1;;14080:1:55;14076:11;;;14072:24;14068:29;14058:40;14104:1;14100:11;;;14055:57;15371:81;;14518:944;;14548:663;13376:1;13369:14;;;13413:4;13400:18;;-1:-1:-1;;14584:20:55;;;14702:236;14716:7;14713:1;14710:14;14702:236;;;14805:19;;;14799:26;14784:42;;14897:27;;;;14865:1;14853:14;;;;14732:19;;14702:236;;;14706:3;14966:6;14957:7;14954:19;14951:201;;;15027:19;;;15021:26;-1:-1:-1;;15110:1:55;15106:14;;;15122:3;15102:24;15098:37;15094:42;15079:58;15064:74;;14951:201;;;15198:1;15189:6;15186:1;15182:14;15178:22;15172:4;15165:36;14518:944;;;;;14123:1345;;:::o","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":1227,"length":20}]}},"immutableReferences":{"10092":[{"start":385,"length":32},{"start":935,"length":32}],"20":[{"start":138,"length":32},{"start":1543,"length":32},{"start":1615,"length":32}],"23":[{"start":186,"length":32},{"start":1176,"length":32}]}},"methodIdentifiers":{"gatewayURLs()":"b50f2fbc","getHooks()":"5cd2525e","getLatestContext()":"87c484fe","getStorageValues(bytes,(bytes),bytes)":"e3d1666e","getWindow()":"1d80051d","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setGatewayURLs(string[])":"8e5ea8df","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"},{\"internalType\":\"contract IVerifierHooks\",\"name\":\"hooks\",\"type\":\"address\"},{\"internalType\":\"contract IScrollChain\",\"name\":\"rollup\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"latest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"CommitTooNew\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"latest\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"window\",\"type\":\"uint256\"}],\"name\":\"CommitTooOld\",\"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\":[],\"name\":\"GatewayURLsChanged\",\"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\":\"gatewayURLs\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHooks\",\"outputs\":[{\"internalType\":\"contract IVerifierHooks\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"context\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"ops\",\"type\":\"bytes\"}],\"internalType\":\"struct GatewayRequest\",\"name\":\"req\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"getStorageValues\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"},{\"internalType\":\"uint8\",\"name\":\"exitCode\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWindow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"urls\",\"type\":\"string[]\"}],\"name\":\"setGatewayURLs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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.\"}]},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current 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\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/scroll/ScrollVerifier.sol\":\"ScrollVerifier\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@eth-optimism/=lib/optimism/packages/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":optimism/=lib/optimism/packages/contracts-bedrock/src/\"]},\"sources\":{\"contracts/AbstractVerifier.sol\":{\"keccak256\":\"0x4868ee9c8ade05b23ce93c2fce0507588583597df087f9494a69df005cff2652\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e822d963a8461edcf72a7e500b53b0bfaf0d98412ae5da3287246cc491ef705\",\"dweb:/ipfs/QmU8NJXEg5oFCoahg9F8qtQoWsW1sYfKmDCVD7vtNX9qbZ\"]},\"contracts/GatewayRequest.sol\":{\"keccak256\":\"0x3e6ce7cae72d6d77a9a4b5644495b8621116be44511186d47efbb27ce0fc73f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://301c7ad11dd0e050811a58ab6942040df9bad5e269bb43e4c74ffca3b43622f5\",\"dweb:/ipfs/QmXocie71GDYUPDEcVLsZ9N6LXZaSj8SX49HbGG3CUHLvP\"]},\"contracts/GatewayVM.sol\":{\"keccak256\":\"0x9bff36c483bb29a6fc0525cfa7ba09b523632ed9477dac23aa8d312237e987ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2452b324151e1909f825a83e895a242de7795bdab405121d3baec42128e350da\",\"dweb:/ipfs/QmWdMuMT3wYoe4Sa73PPWuW1RZSqvUT2qFck6WvMdLnSCy\"]},\"contracts/IGatewayVerifier.sol\":{\"keccak256\":\"0xd56c8ace6aba1354dd4c477b566343b641f57a8c4ef88e1d84294d3727552284\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e268659b9c590a5ce3d2eb440a11bcdf3214a4bfcfa7f38523137ccf940fa32\",\"dweb:/ipfs/QmVpLNhcXQbx4MaBPMnnEnt7gTLNWB753BszqakBq5yUA3\"]},\"contracts/IVerifierHooks.sol\":{\"keccak256\":\"0xd85e9b52270a88d0df9b26454d9c80389405c230b7d67060742a4a0ea5917248\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81de43a606284b5b9b146e06dbf6f54db5480058deb5fbe150302a37ffe14e1a\",\"dweb:/ipfs/QmSDH39aPAch4bKhRZbJ5vSDEUUDic76gWxDDDGaYxbPat\"]},\"contracts/scroll/ScrollVerifier.sol\":{\"keccak256\":\"0x749b4d422ecc090aabb4c77b47d6e2f6ec40b3859ca654240bc490efa9f821b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://504abe7eb680a9e45c8dd291e6845de08c4cf4a44f0048cc37e42d4235bd5b81\",\"dweb:/ipfs/QmXeJumRue5Yh66Zs7c33yWvmfbnTfgYdzsQuixUCRd8jR\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0xf61cb43a94d8318049d0a7f567af8c0aa952b5762a43851b130b90b3fcde0c6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53a52c6c3aeb22f7a18f53fca16af590308a8e3e5507e74df9b8e2561c932194\",\"dweb:/ipfs/QmaaXuY8mC66YoE2xyZdWuLHXqAxLjbnNxiofx8BTP1MRn\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/optimism/packages/contracts-bedrock/src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string[]","name":"urls","type":"string[]"},{"internalType":"uint256","name":"window","type":"uint256"},{"internalType":"contract IVerifierHooks","name":"hooks","type":"address"},{"internalType":"contract IScrollChain","name":"rollup","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"latest","type":"uint256"},{"internalType":"uint256","name":"got","type":"uint256"}],"type":"error","name":"CommitTooNew"},{"inputs":[{"internalType":"uint256","name":"latest","type":"uint256"},{"internalType":"uint256","name":"got","type":"uint256"},{"internalType":"uint256","name":"window","type":"uint256"}],"type":"error","name":"CommitTooOld"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"event","name":"GatewayURLsChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"gatewayURLs","outputs":[{"internalType":"string[]","name":"","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getHooks","outputs":[{"internalType":"contract IVerifierHooks","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLatestContext","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes","name":"context","type":"bytes"},{"internalType":"struct GatewayRequest","name":"req","type":"tuple","components":[{"internalType":"bytes","name":"ops","type":"bytes"}]},{"internalType":"bytes","name":"proof","type":"bytes"}],"stateMutability":"view","type":"function","name":"getStorageValues","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"},{"internalType":"uint8","name":"exitCode","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getWindow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string[]","name":"urls","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"setGatewayURLs"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current 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."},"transf