@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
1 lines • 56.5 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"}],"stateMutability":"nonpayable"},{"type":"function","name":"commits","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"prevIndex","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":"values","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":"latestIndex","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":"setStateRoot","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"}],"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":"NewStateRoot","inputs":[{"name":"prevIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"index","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"stateRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"0x60c060405234801561000f575f80fd5b506040516113d43803806113d483398101604081905261002e916101fc565b828282338061005657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005f81610090565b5082516100739060019060208601906100df565b506080919091526001600160a01b031660a0525061046592505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215610123579160200282015b82811115610123578251829061011390826103a6565b50916020019190600101906100fd565b5061012f929150610133565b5090565b8082111561012f575f610146828261014f565b50600101610133565b50805461015b90610322565b5f825580601f1061016a575050565b601f0160209004905f5260205f20908101906101869190610189565b50565b5b8082111561012f575f815560010161018a565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101d9576101d961019d565b604052919050565b80516001600160a01b03811681146101f7575f80fd5b919050565b5f805f6060848603121561020e575f80fd5b83516001600160401b0380821115610224575f80fd5b818601915086601f830112610237575f80fd5b815160208282111561024b5761024b61019d565b8160051b61025a8282016101b1565b928352848101820192828101908b851115610273575f80fd5b83870192505b848310156102fd5782518681111561028f575f80fd5b8701603f81018d1361029f575f80fd5b848101516040888211156102b5576102b561019d565b6102c7601f8301601f191688016101b1565b8281528f828486010111156102da575f80fd5b828285018983015e5f928101880192909252508352509183019190830190610279565b80995050505080880151955050505050610319604085016101e1565b90509250925092565b600181811c9082168061033657607f821691505b60208210810361035457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103a157805f5260205f20601f840160051c8101602085101561037f5750805b601f840160051c820191505b8181101561039e575f815560010161038b565b50505b505050565b81516001600160401b038111156103bf576103bf61019d565b6103d3816103cd8454610322565b8461035a565b602080601f831160018114610406575f84156103ef5750858301515b5f19600386901b1c1916600185901b17855561045d565b5f85815260208120601f198616915b8281101561043457888601518255948401946001909101908401610415565b508582101561045157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a051610f3b6104995f395f818160fb015261047d01525f818160a8015281816105ed01526106350152610f3b5ff3fe608060405234801561000f575f80fd5b50600436106100a2575f3560e01c80631d80051d146100a65780632bdd1f16146100db578063578f2aa0146100f05780635cd2525e146100f9578063715018a61461012857806387c484fe146101305780638da5cb5b146101455780638e5ea8df1461014d578063b50f2fbc14610160578063c7c4a61514610175578063e3d1666e146101b0578063f2fde38b146101d1575b5f80fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b6100ee6100e9366004610746565b6101e4565b005b6100c860035481565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100d29190610766565b6100ee61029d565b6101386102b0565b6040516100d291906107a8565b61011b6102db565b6100ee61015b366004610888565b6102e9565b610168610330565b6040516100d29190610944565b61019b6101833660046109a6565b60026020525f90815260409020805460019091015482565b604080519283526020830191909152016100d2565b6101c36101be3660046109db565b610404565b6040516100d2929190610a9e565b6100ee6101df366004610b0c565b610529565b6101ec610566565b60035482116102315760405162461bcd60e51b815260206004820152600c60248201526b37baba1037b31037b93232b960a11b60448201526064015b60405180910390fd5b6040805180820182528281526003805460208084019182525f878152600282528590209351845590516001909301929092555491518381528492917f78ef32cc4f254354e318cb6d8fdbb53373634f90e3f1e2bd4c110edd87d0fea5910160405180910390a350600355565b6102a5610566565b6102ae5f610598565b565b60606003546040516020016102c791815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b6102f1610566565b8051610304906001906020840190610690565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b828210156103fb578382905f5260205f2001805461037090610b32565b80601f016020809104026020016040519081016040528092919081815260200182805461039c90610b32565b80156103e75780601f106103be576101008083540402835291602001916103e7565b820191905f5260205f20905b8154815290600101906020018083116103ca57829003601f168201915b505050505081526020019060010190610353565b50505050905090565b60605f808580602001905181019061041c9190610b6a565b90505f805f868060200190518101906104359190610c53565b92509250925061044584846105e7565b6040805160a0810182525f80825285815260026020908152908390205490820152808201849052606081018390526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916104d8918c91600401610cb1565b5f60405180830381865af41580156104f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105199190810190610d82565b9550955050505050935093915050565b610531610566565b6001600160a01b03811661055a575f604051631e4fbdf760e01b81526004016102289190610766565b61056381610598565b50565b3361056f6102db565b6001600160a01b0316146102ae573360405163118cdaa760e01b81526004016102289190610766565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816106127f000000000000000000000000000000000000000000000000000000000000000083610dd5565b101561066157604051632a54241d60e21b815260048101839052602481018290527f00000000000000000000000000000000000000000000000000000000000000006044820152606401610228565b8181111561068c5760405163b356ade760e01b81526004810183905260248101829052604401610228565b5050565b828054828255905f5260205f209081019282156106d4579160200282015b828111156106d457825182906106c49082610e46565b50916020019190600101906106ae565b506106e09291506106e4565b5090565b808211156106e0575f6106f78282610700565b506001016106e4565b50805461070c90610b32565b5f825580601f1061071b575050565b601f0160209004905f5260205f209081019061056391905b808211156106e0575f8155600101610733565b5f8060408385031215610757575f80fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107ba602083018461077a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107fd576107fd6107c1565b604052919050565b5f6001600160401b0382111561081d5761081d6107c1565b5060051b60200190565b5f6001600160401b0382111561083f5761083f6107c1565b50601f01601f191660200190565b5f61085f61085a84610827565b6107d5565b9050828152838383011115610872575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215610899575f80fd5b82356001600160401b03808211156108af575f80fd5b818501915085601f8301126108c2575f80fd5b81356108d061085a82610805565b81815260059190911b830184019084810190888311156108ee575f80fd5b8585015b8381101561093757803585811115610908575f80fd5b8601603f81018b13610918575f80fd5b6109298b898301356040840161084d565b8452509186019186016108f2565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561099957603f1988860301845261098785835161077a565b9450928501929085019060010161096b565b5092979650505050505050565b5f602082840312156109b6575f80fd5b5035919050565b5f82601f8301126109cc575f80fd5b6107ba8383356020850161084d565b5f805f606084860312156109ed575f80fd5b83356001600160401b0380821115610a03575f80fd5b610a0f878388016109bd565b94506020860135915080821115610a24575f80fd5b9085019060208288031215610a37575f80fd5b604051602081018181108382111715610a5257610a526107c1565b604052823582811115610a63575f80fd5b610a6f898286016109bd565b82525093506040860135915080821115610a87575f80fd5b50610a94868287016109bd565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610af357605f19888703018552610ae186835161077a565b95509382019390820190600101610ac5565b50505050508091505060ff831660208301529392505050565b5f60208284031215610b1c575f80fd5b81356001600160a01b03811681146107ba575f80fd5b600181811c90821680610b4657607f821691505b602082108103610b6457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215610b7a575f80fd5b5051919050565b5f82601f830112610b90575f80fd5b8151610b9e61085a82610827565b818152846020838601011115610bb2575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610bdd575f80fd5b81516020610bed61085a83610805565b82815260059290921b84018101918181019086841115610c0b575f80fd5b8286015b84811015610c485780516001600160401b03811115610c2c575f80fd5b610c3a8986838b0101610b81565b845250918301918301610c0f565b509695505050505050565b5f805f60608486031215610c65575f80fd5b835160208501519093506001600160401b0380821115610c83575f80fd5b610c8f87838801610bce565b93506040860151915080821115610ca4575f80fd5b50610a9486828701610b81565b604081525f83516020806040850152610ccd606085018361077a565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610d3e5760bf19878603018352610d2c85855161077a565b94509285019291850191600101610d10565b50505050606086015191508281036060840152610d5b818361077a565b9150506080850151610d7860808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610d93575f80fd5b82516001600160401b03811115610da8575f80fd5b610db485828601610bce565b925050602083015160ff81168114610dca575f80fd5b809150509250929050565b80820180821115610df457634e487b7160e01b5f52601160045260245ffd5b92915050565b601f821115610e4157805f5260205f20601f840160051c81016020851015610e1f5750805b601f840160051c820191505b81811015610e3e575f8155600101610e2b565b50505b505050565b81516001600160401b03811115610e5f57610e5f6107c1565b610e7381610e6d8454610b32565b84610dfa565b602080601f831160018114610ea6575f8415610e8f5750858301515b5f19600386901b1c1916600185901b178555610efd565b5f85815260208120601f198616915b82811015610ed457888601518255948401946001909101908401610eb5565b5085821015610ef157878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea264697066735822122029cc0eb5052c1272d56bd7739d398436c0f580c7761eb20ed508126d24cc0e9064736f6c63430008190033","sourceMap":"206:1617:8:-:0;;;546:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;665:4;671:6;679:5;566:10:0;;1269:95:48;;1322:31;;-1:-1:-1;;;1322:31:48;;1350:1;1322:31;;;2494:51:65;2467:18;;1322:31:48;;;;;;;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;-1:-1:-1;206:1617:8;;-1:-1:-1;;;206:1617:8;2912:187:48;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:48;;;-1:-1:-1;;;;;;3020:17:48;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;206:1617:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;206:1617:8;;;-1:-1:-1;206:1617:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:127:65;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:65;247:40;;-1:-1:-1;;;;;302:34:65;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:65:o;426:193::-;521:13;;-1:-1:-1;;;;;563:31:65;;553:42;;543:70;;609:1;606;599:12;543:70;426:193;;;:::o;624:1719::-;770:6;778;786;839:2;827:9;818:7;814:23;810:32;807:52;;;855:1;852;845:12;807:52;882:16;;-1:-1:-1;;;;;947:14:65;;;944:34;;;974:1;971;964:12;944:34;1012:6;1001:9;997:22;987:32;;1057:7;1050:4;1046:2;1042:13;1038:27;1028:55;;1079:1;1076;1069:12;1028:55;1108:2;1102:9;1130:4;1153:2;1149;1146:10;1143:36;;;1159:18;;:::i;:::-;1205:2;1202:1;1198:10;1228:28;1252:2;1248;1244:11;1228:28;:::i;:::-;1290:15;;;1360:11;;;1356:20;;;1321:12;;;;1388:19;;;1385:39;;;1420:1;1417;1410:12;1385:39;1452:2;1448;1444:11;1433:22;;1464:721;1480:6;1475:3;1472:15;1464:721;;;1559:3;1553:10;1595:2;1582:11;1579:19;1576:39;;;1611:1;1608;1601:12;1576:39;1638:20;;1693:2;1685:11;;1681:25;-1:-1:-1;1671:53:65;;1720:1;1717;1710:12;1671:53;1761:2;1757;1753:11;1747:18;1788:2;1813;1809;1806:10;1803:36;;;1819:18;;:::i;:::-;1865:53;1908:2;1889:13;;-1:-1:-1;;1885:27:65;1881:36;;1865:53;:::i;:::-;1945:2;1938:5;1931:17;1989:7;1984:2;1979;1975;1971:11;1967:20;1964:33;1961:53;;;2010:1;2007;2000:12;1961:53;2062:2;2057;2053;2049:11;2044:2;2037:5;2033:14;2027:38;2110:1;2089:14;;;2085:23;;2078:34;;;;-1:-1:-1;2125:18:65;;-1:-1:-1;1497:12:65;;;;2163;;;;1464:721;;;2204:5;2194:15;;;;;2249:2;2238:9;2234:18;2228:25;2218:35;;;;;;2272:65;2333:2;2322:9;2318:18;2272:65;:::i;:::-;2262:75;;624:1719;;;;;:::o;2556:380::-;2635:1;2631:12;;;;2678;;;2699:61;;2753:4;2745:6;2741:17;2731:27;;2699:61;2806:2;2798:6;2795:14;2775:18;2772:38;2769:161;;2852:10;2847:3;2843:20;2840:1;2833:31;2887:4;2884:1;2877:15;2915:4;2912:1;2905:15;2769:161;;2556:380;;;:::o;3067:518::-;3169:2;3164:3;3161:11;3158:421;;;3205:5;3202:1;3195:16;3249:4;3246:1;3236:18;3319:2;3307:10;3303:19;3300:1;3296:27;3290:4;3286:38;3355:4;3343:10;3340:20;3337:47;;;-1:-1:-1;3378:4:65;3337:47;3433:2;3428:3;3424:12;3421:1;3417:20;3411:4;3407:31;3397:41;;3488:81;3506:2;3499:5;3496:13;3488:81;;;3565:1;3551:16;;3532:1;3521:13;3488:81;;;3492:3;;3158:421;3067:518;;;:::o;3761:1345::-;3881:10;;-1:-1:-1;;;;;3903:30:65;;3900:56;;;3936:18;;:::i;:::-;3965:97;4055:6;4015:38;4047:4;4041:11;4015:38;:::i;:::-;4009:4;3965:97;:::i;:::-;4117:4;;4174:2;4163:14;;4191:1;4186:663;;;;4893:1;4910:6;4907:89;;;-1:-1:-1;4962:19:65;;;4956:26;4907:89;-1:-1:-1;;3718:1:65;3714:11;;;3710:24;3706:29;3696:40;3742:1;3738:11;;;3693:57;5009:81;;4156:944;;4186:663;3014:1;3007:14;;;3051:4;3038:18;;-1:-1:-1;;4222:20:65;;;4340:236;4354:7;4351:1;4348:14;4340:236;;;4443:19;;;4437:26;4422:42;;4535:27;;;;4503:1;4491:14;;;;4370:19;;4340:236;;;4344:3;4604:6;4595:7;4592:19;4589:201;;;4665:19;;;4659:26;-1:-1:-1;;4748:1:65;4744:14;;;4760:3;4740:24;4736:37;4732:42;4717:58;4702:74;;4589:201;;;4836:1;4827:6;4824:1;4820:14;4816:22;4810:4;4803:36;4156:944;;;;;3761:1345;;:::o;:::-;206:1617:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2377,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100a2575f3560e01c80631d80051d146100a65780632bdd1f16146100db578063578f2aa0146100f05780635cd2525e146100f9578063715018a61461012857806387c484fe146101305780638da5cb5b146101455780638e5ea8df1461014d578063b50f2fbc14610160578063c7c4a61514610175578063e3d1666e146101b0578063f2fde38b146101d1575b5f80fd5b7f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020015b60405180910390f35b6100ee6100e9366004610746565b6101e4565b005b6100c860035481565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100d29190610766565b6100ee61029d565b6101386102b0565b6040516100d291906107a8565b61011b6102db565b6100ee61015b366004610888565b6102e9565b610168610330565b6040516100d29190610944565b61019b6101833660046109a6565b60026020525f90815260409020805460019091015482565b604080519283526020830191909152016100d2565b6101c36101be3660046109db565b610404565b6040516100d2929190610a9e565b6100ee6101df366004610b0c565b610529565b6101ec610566565b60035482116102315760405162461bcd60e51b815260206004820152600c60248201526b37baba1037b31037b93232b960a11b60448201526064015b60405180910390fd5b6040805180820182528281526003805460208084019182525f878152600282528590209351845590516001909301929092555491518381528492917f78ef32cc4f254354e318cb6d8fdbb53373634f90e3f1e2bd4c110edd87d0fea5910160405180910390a350600355565b6102a5610566565b6102ae5f610598565b565b60606003546040516020016102c791815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b6102f1610566565b8051610304906001906020840190610690565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b828210156103fb578382905f5260205f2001805461037090610b32565b80601f016020809104026020016040519081016040528092919081815260200182805461039c90610b32565b80156103e75780601f106103be576101008083540402835291602001916103e7565b820191905f5260205f20905b8154815290600101906020018083116103ca57829003601f168201915b505050505081526020019060010190610353565b50505050905090565b60605f808580602001905181019061041c9190610b6a565b90505f805f868060200190518101906104359190610c53565b92509250925061044584846105e7565b6040805160a0810182525f80825285815260026020908152908390205490820152808201849052606081018390526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916104d8918c91600401610cb1565b5f60405180830381865af41580156104f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105199190810190610d82565b9550955050505050935093915050565b610531610566565b6001600160a01b03811661055a575f604051631e4fbdf760e01b81526004016102289190610766565b61056381610598565b50565b3361056f6102db565b6001600160a01b0316146102ae573360405163118cdaa760e01b81526004016102289190610766565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816106127f000000000000000000000000000000000000000000000000000000000000000083610dd5565b101561066157604051632a54241d60e21b815260048101839052602481018290527f00000000000000000000000000000000000000000000000000000000000000006044820152606401610228565b8181111561068c5760405163b356ade760e01b81526004810183905260248101829052604401610228565b5050565b828054828255905f5260205f209081019282156106d4579160200282015b828111156106d457825182906106c49082610e46565b50916020019190600101906106ae565b506106e09291506106e4565b5090565b808211156106e0575f6106f78282610700565b506001016106e4565b50805461070c90610b32565b5f825580601f1061071b575050565b601f0160209004905f5260205f209081019061056391905b808211156106e0575f8155600101610733565b5f8060408385031215610757575f80fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6107ba602083018461077a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107fd576107fd6107c1565b604052919050565b5f6001600160401b0382111561081d5761081d6107c1565b5060051b60200190565b5f6001600160401b0382111561083f5761083f6107c1565b50601f01601f191660200190565b5f61085f61085a84610827565b6107d5565b9050828152838383011115610872575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215610899575f80fd5b82356001600160401b03808211156108af575f80fd5b818501915085601f8301126108c2575f80fd5b81356108d061085a82610805565b81815260059190911b830184019084810190888311156108ee575f80fd5b8585015b8381101561093757803585811115610908575f80fd5b8601603f81018b13610918575f80fd5b6109298b898301356040840161084d565b8452509186019186016108f2565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561099957603f1988860301845261098785835161077a565b9450928501929085019060010161096b565b5092979650505050505050565b5f602082840312156109b6575f80fd5b5035919050565b5f82601f8301126109cc575f80fd5b6107ba8383356020850161084d565b5f805f606084860312156109ed575f80fd5b83356001600160401b0380821115610a03575f80fd5b610a0f878388016109bd565b94506020860135915080821115610a24575f80fd5b9085019060208288031215610a37575f80fd5b604051602081018181108382111715610a5257610a526107c1565b604052823582811115610a63575f80fd5b610a6f898286016109bd565b82525093506040860135915080821115610a87575f80fd5b50610a94868287016109bd565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b83811015610af357605f19888703018552610ae186835161077a565b95509382019390820190600101610ac5565b50505050508091505060ff831660208301529392505050565b5f60208284031215610b1c575f80fd5b81356001600160a01b03811681146107ba575f80fd5b600181811c90821680610b4657607f821691505b602082108103610b6457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215610b7a575f80fd5b5051919050565b5f82601f830112610b90575f80fd5b8151610b9e61085a82610827565b818152846020838601011115610bb2575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112610bdd575f80fd5b81516020610bed61085a83610805565b82815260059290921b84018101918181019086841115610c0b575f80fd5b8286015b84811015610c485780516001600160401b03811115610c2c575f80fd5b610c3a8986838b0101610b81565b845250918301918301610c0f565b509695505050505050565b5f805f60608486031215610c65575f80fd5b835160208501519093506001600160401b0380821115610c83575f80fd5b610c8f87838801610bce565b93506040860151915080821115610ca4575f80fd5b50610a9486828701610b81565b604081525f83516020806040850152610ccd606085018361077a565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b81811015610d3e5760bf19878603018352610d2c85855161077a565b94509285019291850191600101610d10565b50505050606086015191508281036060840152610d5b818361077a565b9150506080850151610d7860808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215610d93575f80fd5b82516001600160401b03811115610da8575f80fd5b610db485828601610bce565b925050602083015160ff81168114610dca575f80fd5b809150509250929050565b80820180821115610df457634e487b7160e01b5f52601160045260245ffd5b92915050565b601f821115610e4157805f5260205f20601f840160051c81016020851015610e1f5750805b601f840160051c820191505b81811015610e3e575f8155600101610e2b565b50505b505050565b81516001600160401b03811115610e5f57610e5f6107c1565b610e7381610e6d8454610b32565b84610dfa565b602080601f831160018114610ea6575f8415610e8f5750858301515b5f19600386901b1c1916600185901b178555610efd565b5f85815260208120601f198616915b82811015610ed457888601518255948401946001909101908401610eb5565b5085821015610ef157878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea264697066735822122029cc0eb5052c1272d56bd7739d398436c0f580c7761eb20ed508126d24cc0e9064736f6c63430008190033","sourceMap":"206:1617:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;966:7;896:84;;;160:25:65;;;148:2;133:18;896:84:0;;;;;;;;694:280:8;;;;;;:::i;:::-;;:::i;:::-;;513:26;;;;;;986:89:0;1062:6;986:89;;;;;;;:::i;2293:101:48:-;;;:::i;980:112:8:-;;;:::i;:::-;;;;;;;:::i;1638:85:48:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;466:41:8:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5030:25:65;;;5086:2;5071:18;;5064:34;;;;5003:18;466:41:8;4856:248:65;1098:723:8;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2543:215:48:-;;;;;;:::i;:::-;;:::i;694:280:8:-;1531:13:48;:11;:13::i;:::-;795:11:8::1;;787:5;:19;779:44;;;::::0;-1:-1:-1;;;779:44:8;;7875:2:65;779:44:8::1;::::0;::::1;7857:21:65::0;7914:2;7894:18;;;7887:30;-1:-1:-1;;;7933:18:65;;;7926:42;7985:18;;779:44:8::1;;;;;;;;;850:30;::::0;;;;::::1;::::0;;;;;868:11:::1;::::0;;850:30:::1;::::0;;::::1;::::0;;;-1:-1:-1;833:14:8;;;:7:::1;:14:::0;;;;;:47;;;;;;::::1;::::0;;::::1;::::0;;;;908:11;895:43;;160:25:65;;;833:14:8;;908:11;895:43:::1;::::0;133:18:65;895:43:8::1;;;;;;;-1:-1:-1::0;948:11:8::1;:19:::0;694:280::o;2293:101:48:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;980:112:8:-;1031:12;1073:11;;1062:23;;;;;;160:25:65;;148:2;133:18;;14:177;1062:23:8;;;;;;;;;;;;;1055:30;;980:112;:::o;1638:85:48:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:48;;1638:85::o;663:129:0:-;1531:13:48;: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;1098:723:8:-;1246:21;1269:14;1295;1323:7;1312:30;;;;;;;;;;;;:::i;:::-;1295:47;;1353:13;1368:21;1391:18;1437:5;1413:78;;;;;;;;;;;;:::i;:::-;1352:139;;;;;;1501:27;1514:6;1522:5;1501:12;:27::i;:::-;1617:183;;;;;;;;-1:-1:-1;1617:183:8;;;1675:14;;;:7;1617:183;1675:14;;;;;;;:24;1617:183;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1776:6:8;1617:183;;;;;1557:257;;-1:-1:-1;;;1557:257:8;;:9;;:21;;:257;;1596:3;;1557:257;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:257:8;;;;;;;;;;;;:::i;:::-;1538:276;;;;;;;;1098:723;;;;;;:::o;2543:215:48:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:48;::::1;2623:91;;2700:1;2672:31;;-1:-1:-1::0;;;2672:31:48::1;;;;;;;;:::i;2623:91::-;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;735:10:50;1855:7:48;:5;:7::i;:::-;-1:-1:-1;;;;;1855:23:48;;1851:101;;735:10:50;1901:40:48;;-1:-1:-1;;;1901:40:48;;;;;;;;:::i;2912:187::-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:48;;;-1:-1:-1;;;;;;3020:17:48;;;;;;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;;;;;13250:25:65;;;13291:18;;;13284:34;;;1217:7:0;13334:18:65;;;13327:34;13223:18;;1191:34:0;13048:319:65;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;5030::65;;;5071:18;;;5064:34;;;5003:18;;1260:25:0;4856:248:65;1235:50:0;1081:211;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:248:65;264:6;272;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;-1:-1:-1;;364:23:65;;;434:2;419:18;;;406:32;;-1:-1:-1;196:248:65:o;574:226::-;-1:-1:-1;;;;;761:32:65;;;;743:51;;731:2;716:18;;574:226::o;805:288::-;846:3;884:5;878:12;911:6;906:3;899:19;967:6;960:4;953:5;949:16;942:4;937:3;933:14;927:47;1019:1;1012:4;1003:6;998:3;994:16;990:27;983:38;1082:4;1075:2;1071:7;1066:2;1058:6;1054:15;1050:29;1045:3;1041:39;1037:50;1030:57;;;805:288;;;;:::o;1098:217::-;1245:2;1234:9;1227:21;1208:4;1265:44;1305:2;1294:9;1290:18;1282:6;1265:44;:::i;:::-;1257:52;1098:217;-1:-1:-1;;;1098:217:65:o;1528:127::-;1589:10;1584:3;1580:20;1577:1;1570:31;1620:4;1617:1;1610:15;1644:4;1641:1;1634:15;1660:275;1731:2;1725:9;1796:2;1777:13;;-1:-1:-1;;1773:27:65;1761:40;;-1:-1:-1;;;;;1816:34:65;;1852:22;;;1813:62;1810:88;;;1878:18;;:::i;:::-;1914:2;1907:22;1660:275;;-1:-1:-1;1660:275:65:o;1940:182::-;1999:4;-1:-1:-1;;;;;2021:30:65;;2018:56;;;2054:18;;:::i;:::-;-1:-1:-1;2099:1:65;2095:14;2111:4;2091:25;;1940:182::o;2127:187::-;2176:4;-1:-1:-1;;;;;2198:30:65;;2195:56;;;2231:18;;:::i;:::-;-1:-1:-1;2297:2:65;2276:15;-1:-1:-1;;2272:29:65;2303:4;2268:40;;2127:187::o;2319:338::-;2384:5;2413:53;2429:36;2458:6;2429:36;:::i;:::-;2413:53;:::i;:::-;2404:62;;2489:6;2482:5;2475:21;2529:3;2520:6;2515:3;2511:16;2508:25;2505:45;;;2546:1;2543;2536:12;2505:45;2595:6;2590:3;2583:4;2576:5;2572:16;2559:43;2649:1;2642:4;2633:6;2626:5;2622:18;2618:29;2611:40;2319:338;;;;;:::o;2662:1197::-;2756:6;2787:2;2830;2818:9;2809:7;2805:23;2801:32;2798:52;;;2846:1;2843;2836:12;2798:52;2873:23;;-1:-1:-1;;;;;2945:14:65;;;2942:34;;;2972:1;2969;2962:12;2942:34;3010:6;2999:9;2995:22;2985:32;;3055:7;3048:4;3044:2;3040:13;3036:27;3026:55;;3077:1;3074;3067:12;3026:55;3113:2;3100:16;3136:59;3152:42;3191:2;3152:42;:::i;3136:59::-;3229:15;;;3311:1;3307:10;;;;3299:19;;3295:28;;;3260:12;;;;3335:19;;;3332:39;;;3367:1;3364;3357:12;3332:39;3399:2;3395;3391:11;3411:418;3427:6;3422:3;3419:15;3411:418;;;3513:3;3500:17;3549:2;3536:11;3533:19;3530:39;;;3565:1;3562;3555:12;3530:39;3592:20;;3647:2;3639:11;;3635:25;-1:-1:-1;3625:53:65;;3674:1;3671;3664:12;3625:53;3703:83;3778:7;3772:2;3768;3764:11;3751:25;3746:2;3742;3738:11;3703:83;:::i;:::-;3691:96;;-1:-1:-1;3807:12:65;;;;3444;;3411:418;;;-1:-1:-1;3848:5:65;2662:1197;-1:-1:-1;;;;;;;;2662:1197:65:o;3864:802::-;4026:4;4055:2;4095;4084:9;4080:18;4125:2;4114:9;4107:21;4148:6;4183;4177:13;4214:6;4206;4199:22;4252:2;4241:9;4237:18;4230:25;;4314:2;4304:6;4301:1;4297:14;4286:9;4282:30;4278:39;4264:53;;4352:2;4344:6;4340:15;4373:1;4383:254;4397:6;4394:1;4391:13;4383:254;;;4490:2;4486:7;4474:9;4466:6;4462:22;4458:36;4453:3;4446:49;4518:39;4550:6;4541;4535:13;4518:39;:::i;:::-;4508:49;-1:-1:-1;4615:12:65;;;;4580:15;;;;4419:1;4412:9;4383:254;;;-1:-1:-1;4654:6:65;;3864:802;-1:-1:-1;;;;;;;3864:802:65:o;4671:180::-;4730:6;4783:2;4771:9;4762:7;4758:23;4754:32;4751:52;;;4799:1;4796;4789:12;4751:52;-1:-1:-1;4822:23:65;;4671:180;-1:-1:-1;4671:180:65:o;5109:221::-;5151:5;5204:3;5197:4;5189:6;5185:17;5181:27;5171:55;;5222:1;5219;5212:12;5171:55;5244:80;5320:3;5311:6;5298:20;5291:4;5283:6;5279:17;5244:80;:::i;5335:1153::-;5462:6;5470;5478;5531:2;5519:9;5510:7;5506:23;5502:32;5499:52;;;5547:1;5544;5537:12;5499:52;5574:23;;-1:-1:-1;;;;;5646:14:65;;;5643:34;;;5673:1;5670;5663:12;5643:34;5696:49;5737:7;5728:6;5717:9;5713:22;5696:49;:::i;:::-;5686:59;;5798:2;5787:9;5783:18;5770:32;5754:48;;5827:2;5817:8;5814:16;5811:36;;;5843:1;5840;5833:12;5811:36;5866:24;;;;5924:2;5906:16;;;5902:25;5899:45;;;5940:1;5937;5930:12;5899:45;5973:2;5967:9;6015:2;6007:6;6003:15;6068:6;6056:10;6053:22;6048:2;6036:10;6033:18;6030:46;6027:72;;;6079:18;;:::i;:::-;6115:2;6108:22;6155:16;;6183;;;6180:36;;;6212:1;6209;6202:12;6180:36;6240:44;6276:7;6265:8;6261:2;6257:17;6240:44;:::i;:::-;6225:60;;-1:-1:-1;6232:6:65;-1:-1:-1;6363:2:65;6348:18;;6335:32;;-1:-1:-1;6379:16:65;;;6376:36;;;6408:1;6405;6398:12;6376:36;;6431:51;6474:7;6463:8;6452:9;6448:24;6431:51;:::i;:::-;6421:61;;;5335:1153;;;;;:::o;6493:884::-;6677:4;6725:2;6714:9;6710:18;6755:2;6744:9;6737:21;6778:6;6813;6807:13;6844:6;6836;6829:22;6882:2;6871:9;6867:18;6860:25;;6944:2;6934:6;6931:1;6927:14;6916:9;6912:30;6908:39;6894:53;;6966:4;7005;6997:6;6993:17;7028:1;7038:254;7052:6;7049:1;7046:13;7038:254;;;7145:2;7141:7;7129:9;7121:6;7117:22;7113:36;7108:3;7101:49;7173:39;7205:6;7196;7190:13;7173:39;:::i;:::-;7163:49;-1:-1:-1;7270:12:65;;;;7235:15;;;;7074:1;7067:9;7038:254;;;7042:3;;;;;7309:6;7301:14;;;7365:4;7357:6;7353:17;7346:4;7335:9;7331:20;7324:47;6493:884;;;;;:::o;7382:286::-;7441:6;7494:2;7482:9;7473:7;7469:23;7465:32;7462:52;;;7510:1;7507;7500:12;7462:52;7536:23;;-1:-1:-1;;;;;7588:31:65;;7578:42;;7568:70;;7634:1;7631;7624:12;8196:380;8275:1;8271:12;;;;8318;;;8339:61;;8393:4;8385:6;8381:17;8371:27;;8339:61;8446:2;8438:6;8435:14;8415:18;8412:38;8409:161;;8492:10;8487:3;8483:20;8480:1;8473:31;8527:4;8524:1;8517:15;8555:4;8552:1;8545:15;8409:161;;8196:380;;;:::o;8581:184::-;8651:6;8704:2;8692:9;8683:7;8679:23;8675:32;8672:52;;;8720:1;8717;8710:12;8672:52;-1:-1:-1;8743:16:65;;8581:184;-1:-1:-1;8581:184:65:o;8770:460::-;8823:5;8876:3;8869:4;8861:6;8857:17;8853:27;8843:55;;8894:1;8891;8884:12;8843:55;8923:6;8917:13;8954:49;8970:32;8999:2;8970:32;:::i;8954:49::-;9028:2;9019:7;9012:19;9074:3;9067:4;9062:2;9054:6;9050:15;9046:26;9043:35;9040:55;;;9091:1;9088;9081:12;9040:55;9149:2;9142:4;9134:6;9130:17;9123:4;9114:7;9110:18;9104:48;9197:1;9172:16;;;9190:4;9168:27;9161:38;;;;9176:7;8770:460;-1:-1:-1;;;8770:460:65:o;9235:823::-;9298:5;9351:3;9344:4;9336:6;9332:17;9328:27;9318:55;;9369:1;9366;9359:12;9318:55;9398:6;9392:13;9424:4;9448:59;9464:42;9503:2;9464:42;:::i;9448:59::-;9541:15;;;9627:1;9623:10;;;;9611:23;;9607:32;;;9572:12;;;;9651:15;;;9648:35;;;9679:1;9676;9669:12;9648:35;9715:2;9707:6;9703:15;9727:302;9743:6;9738:3;9735:15;9727:302;;;9816:10;;-1:-1:-1;;;;;9842:35:65;;9839:55;;;9890:1;9887;9880:12;9839:55;9919:67;9982:3;9977:2;9963:11;9955:6;9951:24;9947:33;9919:67;:::i;:::-;9907:80;;-1:-1:-1;10007:12:65;;;;9760;;9727:302;;;-1:-1:-1;10047:5:65;9235:823;-1:-1:-1;;;;;;9235:823:65:o;10063:654::-;10194:6;10202;10210;10263:2;10251:9;10242:7;10238:23;10234:32;10231:52;;;10279:1;10276;10269:12;10231:52;10302:16;;10362:2;10347:18;;10341:25;10302:16;;-1:-1:-1;;;;;;10415:14:65;;;10412:34;;;10442:1;10439;10432:12;10412:34;10465:70;10527:7;10518:6;10507:9;10503:22;10465:70;:::i;:::-;10455:80;;10581:2;10570:9;10566:18;10560:25;10544:41;;10610:2;10600:8;10597:16;10594:36;;;10626:1;10623;10616:12;10594:36;;10649:62;10703:7;10692:8;10681:9;10677:24;10649:62;:::i;10722:1569::-;11013:2;11002:9;10995:21;10976:4;11051:6;11045:13;11077:4;11117:2;11112;11101:9;11097:18;11090:30;11140:50;11186:2;11175:9;11171:18;11157:12;11140:50;:::i;:::-;11129:61;;11235:9;11230:3;11226:19;11221:2;11210:9;11206:18;11199:47;11278:4;11273:3;11269:14;11310:6;11304:13;11299:3;11292:26;11366:2;11358:6;11354:15;11348:22;11343:2;11338:3;11334:12;11327:44;11420:2;11412:6;11408:15;11402:22;11454:4;11449:2;11444:3;11440:12;11433:26;11479:6;11514:14;11508:21;11553:6;11545;11538:22;11585:3;11580;11576:13;11569:20;;11642:3;11632:6;11629:1;11625:14;11620:3;11616:24;11612:34;11598:48;;11689:2;11673:14;11669:23;11655:37;;11710:1;11720:249;11734:6;11731:1;11728:13;11720:249;;;11821:3;11817:8;11811:3;11803:6;11799:16;11795:31;11790:3;11783:44;11850:39;11882:6;11873;11867:13;11850:39;:::i;:::-;11840:49;-1:-1:-1;11912:15:65;;;;11947:12;;;;11756:1;11749:9;11720:249;;;11724:3;;;;12018:2;12010:6;12006:15;12000:22;11978:44;;12064:3;12056:6;12052:16;12047:2;12042:3;12038:12;12031:38;12092:40;12125:6;12109:14;12092:40;:::i;:::-;12078:54;;;12181:4;12173:6;12169:17;12163:24;12196:66;12256:4;12251:3;12247:14;12231;-1:-1:-1;;;;;531:31:65;519:44;;449:120;12196:66;-1:-1:-1;12279:6:65;10722:1569;-1:-1:-1;;;;;10722:1569:65:o;12296:520::-;12407:6;12415;12468:2;12456:9;12447:7;12443:23;12439:32;12436:52;;;12484:1;12481;12474:12;12436:52;12511:16;;-1:-1:-1;;;;;12539:30:65;;12536:50;;;12582:1;12579;12572:12;12536:50;12605:70;12667:7;12658:6;12647:9;12643:22;12605:70;:::i;:::-;12595:80;;;12718:2;12707:9;12703:18;12697:25;12762:4;12755:5;12751:16;12744:5;12741:27;12731:55;;12782:1;12779;12772:12;12731:55;12805:5;12795:15;;;12296:520;;;;;:::o;12821:222::-;12886:9;;;12907:10;;;12904:133;;;12959:10;12954:3;12950:20;12947:1;12940:31;12994:4;12991:1;12984:15;13022:4;13019:1;13012:15;12904:133;12821:222;;;;:::o;13751:518::-;13853:2;13848:3;13845:11;13842:421;;;13889:5;13886:1;13879:16;13933:4;13930:1;13920:18;14003:2;13991:10;13987:19;13984:1;13980:27;13974:4;13970:38;14039:4;14027:10;14024:20;14021:47;;;-1:-1:-1;14062:4:65;14021:47;14117:2;14112:3;14108:12;14105:1;14101:20;14095:4;14091:31;14081:41;;14172:81;14190:2;14183:5;14180:13;14172:81;;;14249:1;14235:16;;14216:1;14205:13;14172:81;;;14176:3;;13842:421;13751:518;;;:::o;14445:1345::-;14565:10;;-1:-1:-1;;;;;14587:30:65;;14584:56;;;14620:18;;:::i;:::-;14649:97;14739:6;14699:38;14731:4;14725:11;14699:38;:::i;:::-;14693:4;14649:97;:::i;:::-;14801:4;;14858:2;14847:14;;14875:1;14870:663;;;;15577:1;15594:6;15591:89;;;-1:-1:-1;15646:19:65;;;15640:26;15591:89;-1:-1:-1;;14402:1:65;14398:11;;;14394:24;14390:29;14380:40;14426:1;14422:11;;;14377:57;15693:81;;14840:944;;14870:663;13698:1;13691:14;;;13735:4;13722:18;;-1:-1:-1;;14906:20:65;;;15024:236;15038:7;15035:1;15032:14;15024:236;;;15127:19;;;15121:26;15106:42;;15219:27;;;;15187:1;15175:14;;;;15054:19;;15024:236;;;15028:3;15288:6;15279:7;15276:19;15273:201;;;15349:19;;;15343:26;-1:-1:-1;;15432:1:65;15428:14;;;15444:3;15424:24;15420:37;15416:42;15401:58;15386:74;;15273:201;;;15520:1;15511:6;15508:1;15504:14;15500:22;15494:4;15487:36;14840:944;;;;;14445:1345;;:::o","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":1200,"length":20}]}},"immutableReferences":{"20":[{"start":168,"length":32},{"start":1517,"length":32},{"start":1589,"length":32}],"23":[{"start":251,"length":32},{"start":1149,"length":32}]}},"methodIdentifiers":{"commits(uint256)":"c7c4a615","gatewayURLs()":"b50f2fbc","getHooks()":"5cd2525e","getLatestContext()":"87c484fe","getStorageValues(bytes,(bytes),bytes)":"e3d1666e","getWindow()":"1d80051d","latestIndex()":"578f2aa0","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setGatewayURLs(string[])":"8e5ea8df","setStateRoot(uint256,bytes32)":"2bdd1f16","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\"}],\"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\":\"uint256\",\"name\":\"prevIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"name\":\"NewStateRoot\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"commits\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"prevIndex\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"values\",\"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\":\"latestIndex\",\"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\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"}],\"name\":\"setStateRoot\",\"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/InteractiveVerifier.sol\":\"InteractiveVerifier\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@eth-optimism/=lib/optimism/packages/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":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/InteractiveVerifier.sol\":{\"keccak256\":\"0xdf4a40e3f249675757cd599af2a4b25c4e56605f8ddd099200850275e0a4495b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://406fb2e50f0e270644db395f41c314cddd6366a264dc38d6b66b3da10bc5daa5\",\"dweb:/ipfs/QmYZ4JuN3FbSX4gAJZ56ceA4qFR49kXVzETKwTogySuJHo\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"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"}],"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":"uint256","name":"prevIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"index","type":"uint256","indexed":true},{"internalType":"bytes32","name":"stateRoot","type":"bytes32","indexed":false}],"type":"event","name":"NewStateRoot","anonymous":false},{"inputs":[{"inte