UNPKG

@unruggable/gateways

Version:

Trustless Ethereum Multichain CCIP-Read Gateway

1 lines 75 kB
{"abi":[{"type":"constructor","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"},{"name":"window","type":"uint256","internalType":"uint256"},{"name":"hooks","type":"address","internalType":"contract IVerifierHooks"},{"name":"l1Block","type":"address","internalType":"contract IL1Block"}],"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":"ContentLengthMismatch","inputs":[]},{"type":"error","name":"EmptyItem","inputs":[]},{"type":"error","name":"InvalidDataRemainder","inputs":[]},{"type":"error","name":"InvalidHeader","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UnexpectedList","inputs":[]},{"type":"error","name":"UnexpectedString","inputs":[]}],"bytecode":{"object":"0x610100604052600260c052348015610015575f80fd5b50604051611e03380380611e038339810160408190526100349161020b565b838383338061005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161009f565b5082516100799060019060208601906100ee565b506080919091526001600160a01b0390811660a0529190911660e0525061048492505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215610132579160200282015b82811115610132578251829061012290826103c5565b509160200191906001019061010c565b5061013e929150610142565b5090565b8082111561013e575f610155828261015e565b50600101610142565b50805461016a90610341565b5f825580601f10610179575050565b601f0160209004905f5260205f20908101906101959190610198565b50565b5b8082111561013e575f8155600101610199565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101e8576101e86101ac565b604052919050565b80516001600160a01b0381168114610206575f80fd5b919050565b5f805f806080858703121561021e575f80fd5b84516001600160401b0380821115610234575f80fd5b818701915087601f830112610247575f80fd5b815160208282111561025b5761025b6101ac565b8160051b61026a8282016101c0565b928352848101820192828101908c851115610283575f80fd5b83870192505b8483101561030c5782518681111561029f575f80fd5b8701603f81018e136102af575f80fd5b84810151878111156102c3576102c36101ac565b6102d5601f8201601f191687016101c0565b8181528f60408385010111156102e9575f80fd5b81604084018883015e5f9181018701919091528352509183019190830190610289565b809a5050505080890151965050505050610328604086016101f0565b9150610336606086016101f0565b905092959194509250565b600181811c9082168061035557607f821691505b60208210810361037357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103c057805f5260205f20601f840160051c8101602085101561039e5750805b601f840160051c820191505b818110156103bd575f81556001016103aa565b50505b505050565b81516001600160401b038111156103de576103de6101ac565b6103f2816103ec8454610341565b84610379565b602080601f831160018114610425575f841561040e5750858301515b5f19600386901b1c1916600185901b17855561047c565b5f85815260208120601f198616915b8281101561045357888601518255948401946001909101908401610434565b508582101561047057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c05160e05161191d6104e65f395f818161018101528181610447015261051601525f61053801525f818160ba01528181610417015281816104e7015261066d01525f8181608a015281816108480152610890015261191d5ff3fe608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610fc7565b6100ef61016a565b005b6100f961017d565b6040516100af9190611009565b6100da610225565b6100ef61011c36600461110a565b610233565b61012961027a565b6040516100af91906111c6565b610149610144366004611246565b61034e565b6040516100af929190611309565b6100ef610165366004611377565b610708565b610172610745565b61017b5f610777565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff919061139d565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b610745565b805161024e906001906020840190610ef9565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba906113b4565b80601f01602080910402602001604051908101604052809291908181526020018280546102e6906113b4565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f8085806020019051810190610366919061139d565b90505f8480602001905181019061037d91906114be565b90505f61038d82602001516107c6565b90505f610399826107df565b40905082602001518051906020012081146103ee5760405162461bcd60e51b815260206004820152601060248201526f2932bb32b939b2a7a81d103430b9b41960811b60448201526064015b60405180910390fd5b5f61041283600381518110610405576104056115d4565b6020026020010151610803565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0d907c837f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b8152600401610489939291906115e8565b602060405180830381865afa1580156104a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c8919061139d565b6060860151604051631dcc176960e01b81529192506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631dcc1769916105619185917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009190600401611611565b602060405180830381865afa15801561057c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a0919061139d565b9250845f01518051906020012083146105ee5760405162461bcd60e51b815260206004820152601060248201526f526576657273654f503a20686173683160801b60448201526064016103e5565b84516105f9906107c6565b935061060d86610608866107df565b610842565b61062384600381518110610405576104056115d4565b915073__$011ed85421b307e5206de383929e31be73$__6392a201d48b6040518060a001604052805f8152602001868152602001896080015181526020018960a0015181526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152506040518363ffffffff1660e01b81526004016106b5929190611647565b5f60405180830381865af41580156106cf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106f69190810190611718565b97509750505050505050935093915050565b610710610745565b6001600160a01b038116610739575f604051631e4fbdf760e01b81526004016103e59190610fc7565b61074281610777565b50565b3361074e610225565b6001600160a01b03161461017b573360405163118cdaa760e01b81526004016103e59190610fc7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606107d96107d4836108eb565b610932565b92915050565b5f6107d9826008815181106107f6576107f66115d4565b6020026020010151610aa5565b5f8061080e83610ab7565b90508051602014610832576040516366c9448560e01b815260040160405180910390fd5b61083b8161176b565b9392505050565b8161086d7f0000000000000000000000000000000000000000000000000000000000000000836117a2565b10156108bc57604051632a54241d60e21b815260048101839052602481018290527f000000000000000000000000000000000000000000000000000000000000000060448201526064016103e5565b818111156108e75760405163b356ade760e01b815260048101839052602481018290526044016103e5565b5050565b6108f3610f4d565b81515f0361091457604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f61094085610b3f565b91945092509050600181600181111561095b5761095b6117b5565b14610979576040516325ce355f60e11b815260040160405180910390fd5b845161098583856117a2565b146109a357604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b6109c2610f4d565b8152602001906001900390816109ba5790505093505f835b8651811015610a99575f80610a1e6040518060400160405280858c5f0151610a0291906117c9565b8152602001858c60200151610a1791906117a2565b9052610b3f565b509150915060405180604001604052808383610a3a91906117a2565b8152602001848b60200151610a4f91906117a2565b815250888581518110610a6457610a646115d4565b6020908102919091010152610a7a6001856117a2565b9350610a8681836117a2565b610a9090846117a2565b925050506109da565b50845250919392505050565b5f6107d9610ab283610ab7565b610e22565b60605f805f610ac585610b3f565b919450925090505f816001811115610adf57610adf6117b5565b14610afd576040516307fe6cb960e21b815260040160405180910390fd5b610b0782846117a2565b855114610b2757604051630b8aa6f760e31b815260040160405180910390fd5b610b3685602001518484610e69565b95945050505050565b5f805f835f01515f03610b6557604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111610b87575f60015f9450945094505050610e1b565b60b78111610c1c575f610b9b6080836117c9565b905080875f015111610bc0576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b0319169082148015610bec5750600160ff1b6001600160f81b03198216105b15610c0a5760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250610e1b915050565b60bf8111610cfa575f610c3060b7836117c9565b905080875f015111610c55576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610c855760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610cb45760405163babb01dd60e01b815260040160405180910390fd5b610cbe81846117a2565b895111610cde576040516366c9448560e01b815260040160405180910390fd5b610ce98360016117a2565b975095505f9450610e1b9350505050565b60f78111610d44575f610d0e60c0836117c9565b905080875f015111610d33576040516366c9448560e01b815260040160405180910390fd5b600195509350849250610e1b915050565b5f610d5060f7836117c9565b905080875f015111610d75576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610da55760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610dd45760405163babb01dd60e01b815260040160405180910390fd5b610dde81846117a2565b895111610dfe576040516366c9448560e01b815260040160405180910390fd5b610e098360016117a2565b9750955060019450610e1b9350505050565b9193909250565b5f602082511115610e46576040516366c9448560e01b815260040160405180910390fd5b600382516020610e5691906117c9565b901b610e618361176b565b901c92915050565b6060816001600160401b03811115610e8357610e8361101b565b6040519080825280601f01601f191660200182016040528015610ead576020820181803683370190505b509050811561083b575f610ec184866117a2565b9050602082015f5b84811015610ee1578281015182820152602001610ec9565b84811115610eef575f858301525b5050509392505050565b828054828255905f5260205f20908101928215610f3d579160200282015b82811115610f3d5782518290610f2d9082611828565b5091602001919060010190610f17565b50610f49929150610f65565b5090565b60405180604001604052805f81526020015f81525090565b80821115610f49575f610f788282610f81565b50600101610f65565b508054610f8d906113b4565b5f825580601f10610f9c575050565b601f0160209004905f5260205f209081019061074291905b80821115610f49575f8155600101610fb4565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61083b6020830184610fdb565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b03811182821017156110515761105161101b565b60405290565b604051601f8201601f191681016001600160401b038111828210171561107f5761107f61101b565b604052919050565b5f6001600160401b0382111561109f5761109f61101b565b5060051b60200190565b5f6001600160401b038211156110c1576110c161101b565b50601f01601f191660200190565b5f6110e16110dc846110a9565b611057565b90508281528383830111156110f4575f80fd5b828260208301375f602084830101529392505050565b5f602080838503121561111b575f80fd5b82356001600160401b0380821115611131575f80fd5b818501915085601f830112611144575f80fd5b81356111526110dc82611087565b81815260059190911b83018401908481019088831115611170575f80fd5b8585015b838110156111b95780358581111561118a575f80fd5b8601603f81018b1361119a575f80fd5b6111ab8b89830135604084016110cf565b845250918601918601611174565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561121b57603f19888603018452611209858351610fdb565b945092850192908501906001016111ed565b5092979650505050505050565b5f82601f830112611237575f80fd5b61083b838335602085016110cf565b5f805f60608486031215611258575f80fd5b83356001600160401b038082111561126e575f80fd5b61127a87838801611228565b9450602086013591508082111561128f575f80fd5b90850190602082880312156112a2575f80fd5b6040516020810181811083821117156112bd576112bd61101b565b6040528235828111156112ce575f80fd5b6112da89828601611228565b825250935060408601359150808211156112f2575f80fd5b506112ff86828701611228565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b8381101561135e57605f1988870301855261134c868351610fdb565b95509382019390820190600101611330565b50505050508091505060ff831660208301529392505050565b5f60208284031215611387575f80fd5b81356001600160a01b038116811461083b575f80fd5b5f602082840312156113ad575f80fd5b5051919050565b600181811c908216806113c857607f821691505b6020821081036113e657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f8301126113fb575f80fd5b81516114096110dc826110a9565b81815284602083860101111561141d575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112611448575f80fd5b815160206114586110dc83611087565b82815260059290921b84018101918181019086841115611476575f80fd5b8286015b848110156114b35780516001600160401b03811115611497575f80fd5b6114a58986838b01016113ec565b84525091830191830161147a565b509695505050505050565b5f602082840312156114ce575f80fd5b81516001600160401b03808211156114e4575f80fd5b9083019060c082860312156114f7575f80fd5b6114ff61102f565b82518281111561150d575f80fd5b611519878286016113ec565b82525060208301518281111561152d575f80fd5b611539878286016113ec565b602083015250604083015182811115611550575f80fd5b61155c878286016113ec565b604083015250606083015182811115611573575f80fd5b61157f878286016113ec565b606083015250608083015182811115611596575f80fd5b6115a287828601611439565b60808301525060a0830151828111156115b9575f80fd5b6115c5878286016113ec565b60a08301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b8381526001600160a01b03831660208201526060604082018190525f90610b3690830184610fdb565b84815260018060a01b0384166020820152826040820152608060608201525f61163d6080830184610fdb565b9695505050505050565b604081525f835160208060408501526116636060850183610fdb565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b818110156116d45760bf198786030183526116c2858551610fdb565b945092850192918501916001016116a6565b505050506060860151915082810360608401526116f18183610fdb565b915050608085015161170e60808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215611729575f80fd5b82516001600160401b0381111561173e575f80fd5b61174a85828601611439565b925050602083015160ff81168114611760575f80fd5b809150509250929050565b805160208083015191908110156113e6575f1960209190910360031b1b16919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107d9576107d961178e565b634e487b7160e01b5f52602160045260245ffd5b818103818111156107d9576107d961178e565b601f82111561182357805f5260205f20601f840160051c810160208510156118015750805b601f840160051c820191505b81811015611820575f815560010161180d565b50505b505050565b81516001600160401b038111156118415761184161101b565b6118558161184f84546113b4565b846117dc565b602080601f831160018114611888575f84156118715750858301515b5f19600386901b1c1916600185901b1785556118df565b5f85815260208120601f198616915b828110156118b657888601518255948401946001909101908401611897565b50858210156118d357878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212208876a80c6596b87e940856bd539166897ab0fea75f7eff2c2be68ea8f637e32764736f6c63430008190033","sourceMap":"456:2239:29:-:0;;;539:1;509:31;;580:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;725:4;731:6;739:5;566:10:0;;1269:95:48;;1322:31;;-1:-1:-1;;;1322:31:48;;1350:1;1322:31;;;2588:51:65;2561: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;756:18:29;;;::::1;;::::0;-1:-1:-1;456:2239:29;;-1:-1:-1;;;456:2239:29;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;456:2239:29:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;456:2239:29;;;-1:-1:-1;456:2239:29;:::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:1813::-;796:6;804;812;820;873:3;861:9;852:7;848:23;844:33;841:53;;;890:1;887;880:12;841:53;917:16;;-1:-1:-1;;;;;982:14:65;;;979:34;;;1009:1;1006;999:12;979:34;1047:6;1036:9;1032:22;1022:32;;1092:7;1085:4;1081:2;1077:13;1073:27;1063:55;;1114:1;1111;1104:12;1063:55;1143:2;1137:9;1165:4;1188:2;1184;1181:10;1178:36;;;1194:18;;:::i;:::-;1240:2;1237:1;1233:10;1263:28;1287:2;1283;1279:11;1263:28;:::i;:::-;1325:15;;;1395:11;;;1391:20;;;1356:12;;;;1423:19;;;1420:39;;;1455:1;1452;1445:12;1420:39;1487:2;1483;1479:11;1468:22;;1499:696;1515:6;1510:3;1507:15;1499:696;;;1594:3;1588:10;1630:2;1617:11;1614:19;1611:39;;;1646:1;1643;1636:12;1611:39;1673:20;;1728:2;1720:11;;1716:25;-1:-1:-1;1706:53:65;;1755:1;1752;1745:12;1706:53;1796:2;1792;1788:11;1782:18;1823:2;1819;1816:10;1813:36;;;1829:18;;:::i;:::-;1875:53;1918:2;1899:13;;-1:-1:-1;;1895:27:65;1891:36;;1875:53;:::i;:::-;1955:2;1948:5;1941:17;1999:7;1994:2;1989;1985;1981:11;1977:20;1974:33;1971:53;;;2020:1;2017;2010:12;1971:53;2072:2;2067;2063;2059:11;2054:2;2047:5;2043:14;2037:38;2120:1;2099:14;;;2095:23;;2088:34;;;;2135:18;;-1:-1:-1;1532:12:65;;;;2173;;;;1499:696;;;2214:5;2204:15;;;;;2259:2;2248:9;2244:18;2238:25;2228:35;;;;;;2282:65;2343:2;2332:9;2328:18;2282:65;:::i;:::-;2272:75;;2366:65;2427:2;2416:9;2412:18;2366:65;:::i;:::-;2356:75;;624:1813;;;;;;;:::o;2650:380::-;2729:1;2725:12;;;;2772;;;2793:61;;2847:4;2839:6;2835:17;2825:27;;2793:61;2900:2;2892:6;2889:14;2869:18;2866:38;2863:161;;2946:10;2941:3;2937:20;2934:1;2927:31;2981:4;2978:1;2971:15;3009:4;3006:1;2999:15;2863:161;;2650:380;;;:::o;3161:518::-;3263:2;3258:3;3255:11;3252:421;;;3299:5;3296:1;3289:16;3343:4;3340:1;3330:18;3413:2;3401:10;3397:19;3394:1;3390:27;3384:4;3380:38;3449:4;3437:10;3434:20;3431:47;;;-1:-1:-1;3472:4:65;3431:47;3527:2;3522:3;3518:12;3515:1;3511:20;3505:4;3501:31;3491:41;;3582:81;3600:2;3593:5;3590:13;3582:81;;;3659:1;3645:16;;3626:1;3615:13;3582:81;;;3586:3;;3252:421;3161:518;;;:::o;3855:1345::-;3975:10;;-1:-1:-1;;;;;3997:30:65;;3994:56;;;4030:18;;:::i;:::-;4059:97;4149:6;4109:38;4141:4;4135:11;4109:38;:::i;:::-;4103:4;4059:97;:::i;:::-;4211:4;;4268:2;4257:14;;4285:1;4280:663;;;;4987:1;5004:6;5001:89;;;-1:-1:-1;5056:19:65;;;5050:26;5001:89;-1:-1:-1;;3812:1:65;3808:11;;;3804:24;3800:29;3790:40;3836:1;3832:11;;;3787:57;5103:81;;4250:944;;4280:663;3108:1;3101:14;;;3145:4;3132:18;;-1:-1:-1;;4316:20:65;;;4434:236;4448:7;4445:1;4442:14;4434:236;;;4537:19;;;4531:26;4516:42;;4629:27;;;;4597:1;4585:14;;;;4464:19;;4434:236;;;4438:3;4698:6;4689:7;4686:19;4683:201;;;4759:19;;;4753:26;-1:-1:-1;;4842:1:65;4838:14;;;4854:3;4834:24;4830:37;4826:42;4811:58;4796:74;;4683:201;;;4930:1;4921:6;4918:1;4914:14;4910:22;4904:4;4897:36;4250:944;;;;;3855:1345;;:::o;:::-;456:2239:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2829,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610fc7565b6100ef61016a565b005b6100f961017d565b6040516100af9190611009565b6100da610225565b6100ef61011c36600461110a565b610233565b61012961027a565b6040516100af91906111c6565b610149610144366004611246565b61034e565b6040516100af929190611309565b6100ef610165366004611377565b610708565b610172610745565b61017b5f610777565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638381f58a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff919061139d565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b610745565b805161024e906001906020840190610ef9565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba906113b4565b80601f01602080910402602001604051908101604052809291908181526020018280546102e6906113b4565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f8085806020019051810190610366919061139d565b90505f8480602001905181019061037d91906114be565b90505f61038d82602001516107c6565b90505f610399826107df565b40905082602001518051906020012081146103ee5760405162461bcd60e51b815260206004820152601060248201526f2932bb32b939b2a7a81d103430b9b41960811b60448201526064015b60405180910390fd5b5f61041283600381518110610405576104056115d4565b6020026020010151610803565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0d907c837f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b8152600401610489939291906115e8565b602060405180830381865afa1580156104a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c8919061139d565b6060860151604051631dcc176960e01b81529192506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631dcc1769916105619185917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009190600401611611565b602060405180830381865afa15801561057c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a0919061139d565b9250845f01518051906020012083146105ee5760405162461bcd60e51b815260206004820152601060248201526f526576657273654f503a20686173683160801b60448201526064016103e5565b84516105f9906107c6565b935061060d86610608866107df565b610842565b61062384600381518110610405576104056115d4565b915073__$011ed85421b307e5206de383929e31be73$__6392a201d48b6040518060a001604052805f8152602001868152602001896080015181526020018960a0015181526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152506040518363ffffffff1660e01b81526004016106b5929190611647565b5f60405180830381865af41580156106cf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106f69190810190611718565b97509750505050505050935093915050565b610710610745565b6001600160a01b038116610739575f604051631e4fbdf760e01b81526004016103e59190610fc7565b61074281610777565b50565b3361074e610225565b6001600160a01b03161461017b573360405163118cdaa760e01b81526004016103e59190610fc7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606107d96107d4836108eb565b610932565b92915050565b5f6107d9826008815181106107f6576107f66115d4565b6020026020010151610aa5565b5f8061080e83610ab7565b90508051602014610832576040516366c9448560e01b815260040160405180910390fd5b61083b8161176b565b9392505050565b8161086d7f0000000000000000000000000000000000000000000000000000000000000000836117a2565b10156108bc57604051632a54241d60e21b815260048101839052602481018290527f000000000000000000000000000000000000000000000000000000000000000060448201526064016103e5565b818111156108e75760405163b356ade760e01b815260048101839052602481018290526044016103e5565b5050565b6108f3610f4d565b81515f0361091457604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f61094085610b3f565b91945092509050600181600181111561095b5761095b6117b5565b14610979576040516325ce355f60e11b815260040160405180910390fd5b845161098583856117a2565b146109a357604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b6109c2610f4d565b8152602001906001900390816109ba5790505093505f835b8651811015610a99575f80610a1e6040518060400160405280858c5f0151610a0291906117c9565b8152602001858c60200151610a1791906117a2565b9052610b3f565b509150915060405180604001604052808383610a3a91906117a2565b8152602001848b60200151610a4f91906117a2565b815250888581518110610a6457610a646115d4565b6020908102919091010152610a7a6001856117a2565b9350610a8681836117a2565b610a9090846117a2565b925050506109da565b50845250919392505050565b5f6107d9610ab283610ab7565b610e22565b60605f805f610ac585610b3f565b919450925090505f816001811115610adf57610adf6117b5565b14610afd576040516307fe6cb960e21b815260040160405180910390fd5b610b0782846117a2565b855114610b2757604051630b8aa6f760e31b815260040160405180910390fd5b610b3685602001518484610e69565b95945050505050565b5f805f835f01515f03610b6557604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111610b87575f60015f9450945094505050610e1b565b60b78111610c1c575f610b9b6080836117c9565b905080875f015111610bc0576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b0319169082148015610bec5750600160ff1b6001600160f81b03198216105b15610c0a5760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250610e1b915050565b60bf8111610cfa575f610c3060b7836117c9565b905080875f015111610c55576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610c855760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610cb45760405163babb01dd60e01b815260040160405180910390fd5b610cbe81846117a2565b895111610cde576040516366c9448560e01b815260040160405180910390fd5b610ce98360016117a2565b975095505f9450610e1b9350505050565b60f78111610d44575f610d0e60c0836117c9565b905080875f015111610d33576040516366c9448560e01b815260040160405180910390fd5b600195509350849250610e1b915050565b5f610d5060f7836117c9565b905080875f015111610d75576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610da55760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610dd45760405163babb01dd60e01b815260040160405180910390fd5b610dde81846117a2565b895111610dfe576040516366c9448560e01b815260040160405180910390fd5b610e098360016117a2565b9750955060019450610e1b9350505050565b9193909250565b5f602082511115610e46576040516366c9448560e01b815260040160405180910390fd5b600382516020610e5691906117c9565b901b610e618361176b565b901c92915050565b6060816001600160401b03811115610e8357610e8361101b565b6040519080825280601f01601f191660200182016040528015610ead576020820181803683370190505b509050811561083b575f610ec184866117a2565b9050602082015f5b84811015610ee1578281015182820152602001610ec9565b84811115610eef575f858301525b5050509392505050565b828054828255905f5260205f20908101928215610f3d579160200282015b82811115610f3d5782518290610f2d9082611828565b5091602001919060010190610f17565b50610f49929150610f65565b5090565b60405180604001604052805f81526020015f81525090565b80821115610f49575f610f788282610f81565b50600101610f65565b508054610f8d906113b4565b5f825580601f10610f9c575050565b601f0160209004905f5260205f209081019061074291905b80821115610f49575f8155600101610fb4565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61083b6020830184610fdb565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b03811182821017156110515761105161101b565b60405290565b604051601f8201601f191681016001600160401b038111828210171561107f5761107f61101b565b604052919050565b5f6001600160401b0382111561109f5761109f61101b565b5060051b60200190565b5f6001600160401b038211156110c1576110c161101b565b50601f01601f191660200190565b5f6110e16110dc846110a9565b611057565b90508281528383830111156110f4575f80fd5b828260208301375f602084830101529392505050565b5f602080838503121561111b575f80fd5b82356001600160401b0380821115611131575f80fd5b818501915085601f830112611144575f80fd5b81356111526110dc82611087565b81815260059190911b83018401908481019088831115611170575f80fd5b8585015b838110156111b95780358581111561118a575f80fd5b8601603f81018b1361119a575f80fd5b6111ab8b89830135604084016110cf565b845250918601918601611174565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561121b57603f19888603018452611209858351610fdb565b945092850192908501906001016111ed565b5092979650505050505050565b5f82601f830112611237575f80fd5b61083b838335602085016110cf565b5f805f60608486031215611258575f80fd5b83356001600160401b038082111561126e575f80fd5b61127a87838801611228565b9450602086013591508082111561128f575f80fd5b90850190602082880312156112a2575f80fd5b6040516020810181811083821117156112bd576112bd61101b565b6040528235828111156112ce575f80fd5b6112da89828601611228565b825250935060408601359150808211156112f2575f80fd5b506112ff86828701611228565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b8381101561135e57605f1988870301855261134c868351610fdb565b95509382019390820190600101611330565b50505050508091505060ff831660208301529392505050565b5f60208284031215611387575f80fd5b81356001600160a01b038116811461083b575f80fd5b5f602082840312156113ad575f80fd5b5051919050565b600181811c908216806113c857607f821691505b6020821081036113e657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f8301126113fb575f80fd5b81516114096110dc826110a9565b81815284602083860101111561141d575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112611448575f80fd5b815160206114586110dc83611087565b82815260059290921b84018101918181019086841115611476575f80fd5b8286015b848110156114b35780516001600160401b03811115611497575f80fd5b6114a58986838b01016113ec565b84525091830191830161147a565b509695505050505050565b5f602082840312156114ce575f80fd5b81516001600160401b03808211156114e4575f80fd5b9083019060c082860312156114f7575f80fd5b6114ff61102f565b82518281111561150d575f80fd5b611519878286016113ec565b82525060208301518281111561152d575f80fd5b611539878286016113ec565b602083015250604083015182811115611550575f80fd5b61155c878286016113ec565b604083015250606083015182811115611573575f80fd5b61157f878286016113ec565b606083015250608083015182811115611596575f80fd5b6115a287828601611439565b60808301525060a0830151828111156115b9575f80fd5b6115c5878286016113ec565b60a08301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b8381526001600160a01b03831660208201526060604082018190525f90610b3690830184610fdb565b84815260018060a01b0384166020820152826040820152608060608201525f61163d6080830184610fdb565b9695505050505050565b604081525f835160208060408501526116636060850183610fdb565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b818110156116d45760bf198786030183526116c2858551610fdb565b945092850192918501916001016116a6565b505050506060860151915082810360608401526116f18183610fdb565b915050608085015161170e60808401826001600160a01b03169052565b5095945050505050565b5f8060408385031215611729575f80fd5b82516001600160401b0381111561173e575f80fd5b61174a85828601611439565b925050602083015160ff81168114611760575f80fd5b809150509250929050565b805160208083015191908110156113e6575f1960209190910360031b1b16919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156107d9576107d961178e565b634e487b7160e01b5f52602160045260245ffd5b818103818111156107d9576107d961178e565b601f82111561182357805f5260205f20601f840160051c810160208510156118015750805b601f840160051c820191505b81811015611820575f815560010161180d565b50505b505050565b81516001600160401b038111156118415761184161101b565b6118558161184f84546113b4565b846117dc565b602080601f831160018114611888575f84156118715750858301515b5f19600386901b1c1916600185901b1785556118df565b5f85815260208120601f198616915b828110156118b657888601518255948401946001909101908401611897565b50858210156118d357878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea26469706673582212208876a80c6596b87e940856bd539166897ab0fea75f7eff2c2be68ea8f637e32764736f6c63430008190033","sourceMap":"456:2239:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;;;966:7;160:25:65;;148:2;133:18;896:84:0;;;;;;;;986:89;1062:6;986:89;;;;;;;:::i;2293:101:48:-;;;:::i;:::-;;787:118:29;;;:::i;:::-;;;;;;;:::i;1638:85:48:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;1111:1405:29:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2543:215:48:-;;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;787:118:29:-;838:12;880:8;-1:-1:-1;;;;;880:15:29;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;869:29;;;;;;160:25:65;;148:2;133:18;;14:177;869:29:29;;;;;;;;;;;;;862:36;;787:118;:::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;1111:1405:29:-;1259:14;1275;1301:20;1335:7;1324:30;;;;;;;;;;;;:::i;:::-;1301:53;;1364:21;1399:5;1388:33;;;;;;;;;;;;:::i;:::-;1364:57;;1431:28;1462:39;1481:1;:19;;;1462:18;:39::i;:::-;1431:70;;1511:17;1541:22;1561:1;1541:19;:22::i;:::-;1531:33;1511:53;;1618:1;:19;;;1608:30;;;;;;1595:9;:43;1574:106;;;;-1:-1:-1;;;1574:106:29;;10829:2:65;1574:106:29;;;10811:21:65;10868:2;10848:18;;;10841:30;-1:-1:-1;;;10887:18:65;;;10880:46;10943:18;;1574:106:29;;;;;;;;;1690:17;1710:39;1744:1;1746;1744:4;;;;;;;;:::i;:::-;;;;;;;1710:33;:39::i;:::-;1690:59;;1759:19;1781:6;-1:-1:-1;;;;;1781:25:29;;1820:9;1851:8;1874:1;:14;;;1781:117;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2038:14;;;;1920:142;;-1:-1:-1;;;1920:142:29;;1759:139;;-1:-1:-1;;;;;;1920:6:29;:25;;;;:142;;1759:139;;1992:8;;2015:9;;2038:14;1920:142;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1908:154;;2116:1;:19;;;2106:30;;;;;;2093:9;:43;2072:106;;;;-1:-1:-1;;;2072:106:29;;12348:2:65;2072:106:29;;;12330:21:65;12387:2;12367:18;;;12360:30;-1:-1:-1;;;12406:18:65;;;12399:46;12462:18;;2072:106:29;12146:340:65;2072:106:29;2211:19;;2192:39;;:18;:39::i;:::-;2188:43;;2241:50;2254:12;2268:22;2288:1;2268:19;:22::i;:::-;2241:12;:50::i;:::-;2313:39;2347:1;2349;2347:4;;;;;;;;:::i;2313:39::-;2301:51;;2381:9;:21;2420:3;2441:54;;;;;;;;2455:1;2441:54;;;;2458:9;2441:54;;;;2469:1;:8;;;2441:54;;;;2479:1;:7;;;2441:54;;;;2488:6;-1:-1:-1;;;;;2441:54:29;;;;2381:128;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2381:128:29;;;;;;;;;;;;:::i;:::-;2362:147;;;;;;;;;;1111:1405;;;;;;:::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;3631:130:63:-;3690:21;3730:24;3739:14;3749:3;3739:9;:14::i;:::-;3730:8;:24::i;:::-;3723:31;3631:130;-1:-1:-1;;3631:130:63:o;2522:171:29:-;2618:7;2652:33;2680:1;2682;2680:4;;;;;;;;:::i;:::-;;;;;;;2652:27;:33::i;579:253:9:-;677:7;696:14;713:25;733:4;713:19;:25::i;:::-;696:42;;752:1;:8;764:2;752:14;748:50;;775:23;;-1:-1:-1;;;775:23:9;;;;;;;;;;;748:50;815:10;823:1;815:10;:::i;:::-;808:17;579:253;-1:-1:-1;;;579:253:9: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;;;;;15356:25:65;;;15397:18;;;15390:34;;;1217:7:0;15440:18:65;;;15433:34;15329:18;;1191:34:0;15154:319:65;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;15652::65;;;15693:18;;;15686:34;;;15625:18;;1260:25:0;15478:248:65;1235:50:0;1081:211;;:::o;1325:328:63:-;1385:19;;:::i;:::-;1463:3;:10;1477:1;1463:15;1459:39;;1487:11;;-1:-1:-1;;;1487:11:63;;;;;;;;;;;1459:39;-1:-1:-1;1605:41:63;;;;;;;;;1623:10;;1605:41;;1575:2;1566:12;;;1605:41;;;;;;;;1325:328::o;1805:1674::-;1866:21;1900:18;1920;1940:20;1964:18;1978:3;1964:13;:18::i;:::-;1899:83;;-1:-1:-1;1899:83:63;-1:-1:-1;1899:83:63;-1:-1:-1;2009:21:63;1997:8;:33;;;;;;;;:::i;:::-;;1993:64;;2039:18;;-1:-1:-1;;;2039:18:63;;;;;;;;;;;1993:64;2099:10;;2072:23;2085:10;2072;:23;:::i;:::-;:37;2068:72;;2118:22;;-1:-1:-1;;;2118:22:63;;;;;;;;;;;2068:72;2550:30;;;1150:2;2550:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;2543:37:63;-1:-1:-1;2591:17:63;2639:10;2659:681;2675:10;;2666:19;;2659:681;;;2702:18;2722;2745:150;2776:105;;;;;;;;2807:6;2794:3;:10;;;:19;;;;:::i;:::-;2776:105;;;;2871:6;2860:3;:7;;;2839:38;;;;:::i;:::-;2776:105;;2745:13;:150::i;:::-;2701:194;;;;;3100:153;;;;;;;;3147:10;3134;:23;;;;:::i;:::-;3100:153;;;;3231:6;3220:3;:7;;;3199:38;;;;:::i;:::-;3100:153;;;3082:4;3087:9;3082:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3268:14;3281:1;3268:14;;:::i;:::-;;-1:-1:-1;3306:23:63;3319:10;3306;:23;:::i;:::-;3296:33;;;;:::i;:::-;;;2687:653;;2659:681;;;-1:-1:-1;3440:23:63;;-1:-1:-1;3447:4:63;;1805:1674;-1:-1:-1;;;1805:1674:63:o;210:166:9:-;302:7;328:41;343:25;363:4;343:19;:25::i;:::-;328:14;:41::i;3892:393:63:-;3954:17;3984:18;4004;4024:20;4048:18;4062:3;4048:13;:18::i;:::-;3983:83;;-1:-1:-1;3983:83:63;-1:-1:-1;3983:83:63;-1:-1:-1;4093:21:63;4081:8;:33;;;;;;;;:::i;:::-;;4077:62;;4123:16;;-1:-1:-1;;;4123:16:63;;;;;;;;;;;4077:62;4168:23;4181:10;4168;:23;:::i;:::-;4154:10;;:37;4150:72;;4200:22;;-1:-1:-1;;;4200:22:63;;;;;;;;;;;4150:72;4240:38;4246:3;:7;;;4255:10;4267;4240:5;:38::i;:::-;4233:45;3892:393;-1:-1:-1;;;;;3892:393:63:o;5074:3092::-;5163:15;5180;5197:17;5516:3;:10;;;5530:1;5516:15;5512:39;;5540:11;;-1:-1:-1;;;5540:11:63;;;;;;;;;;;5512:39;5582:7;;;;5664:10;;5562:17;5656:19;5709:4;5699:14;;5695:2465;;5765:1;5768;5771:21;5757:36;;;;;;;;;;5695:2465;5824:4;5814:6;:14;5810:2350;;5930:14;5947:13;5956:4;5947:6;:13;:::i;:::-;5930:30;;5993:6;5979:3;:10;;;:20;5975:56;;6008:23;;-1:-1:-1;;;6008:23:63;;;;;;;;;;;5975:56;6153:1;6144:11;;;6138:18;-1:-1:-1;;;;;;6134:39:63;;6205:11;;:40;;;;-1:-1:-1;;;;;;;;;;6220:25:63;;;6205:40;6201:68;;;6254:15;;-1:-1:-1;;;6254:15:63;;;;;;;;;;;6201:68;-1:-1:-1;6292:1:63;;-1:-1:-1;6295:6:63;-1:-1:-1;6303:21:63;;-1:-1:-1;6284:41:63;;-1:-1:-1;;6284:41:63;5810:2350;6356:4;6346:6;:14;6342:1818;;6404:19;6426:13;6435:4;6426:6;:13;:::i;:::-;6404:35;;6472:11;6458:3;:10;;;:25;6454:61;;6492:23;;-1:-1:-1;;;6492:23:63;;;;;;;;;;;6454:61;6637:1;6628:11;;6622:18;-1:-1:-1;;;;;;6618:39:63;6530:25;6689:26;;;6685:54;;6724:15;;-1:-1:-1;;;6724:15:63;;;;;;;;;;;6685:54;6869:1;6860:11;;6854:18;6836:1;6832:19;;6827:3;6823:29;6819:54;6915:2;6905:12;;6901:40;;6926:15;;-1:-1:-1;;;6926:15:63;;;;;;;;;;;6901:40;6974:20;6988:6;6974:11;:20;:::i;:::-;6960:10;;:34;6956:70;;7003:23;;-1:-1:-1;;;7003:23:63;;;;;;;;;;;6956:70;7049:15;7053:11;7049:1;:15;:::i;:::-;7041:55;-1:-1:-1;7066:6:63;-1:-1:-1;7074:21:63;;-1:-1:-1;7041:55:63;;-1:-1:-1;;;;7041:55:63;6342:1818;7127:4;7117:6;:14;7113:1047;;7230:15;7248:13;7257:4;7248:6;:13;:::i;:::-;7230:31;;7294:7;7280:3;:10;;;:21;7276:57;;7310:23;;-1:-1:-1;;;7310:23:63;;;;;;;;;;;7276:57;7356:1;;-1:-1:-1;7359:7:63;-1:-1:-1;7356:1:63;;-1:-1:-1;7348:42:63;;-1:-1:-1;;7348:42:63;7113:1047;7447:20;7470:13;7479:4;7470:6;:13;:::i;:::-;7447:36;;7516:12;7502:3;:10;;;:26;7498:62;;7537:23;;-1:-1:-1;;;7537:23:63;;;;;;;;;;;7498:62;7682:1;7673:11;;7667:18;-1:-1:-1;;;;;;7663:39:63;7575:25;7734:26;;;7730:54;;7769:15;;-1:-1:-1;;;7769:15:63;;;;;;;;;;;7730:54;7917:1;7908:11;;7902:18;7883:1;7879:20;;7874:3;7870:30;7866:55;7964:2;7953:13;;7949:41;;7975:15;;-1:-1:-1;;;7975:15:63;;;;;;;;;;;7949:41;8023:22;8038:7;8023:12;:22;:::i;:::-;8009:10;;:36;8005:72;;8054:23;;-1:-1:-1;;;8054:23:63;;;;;;;;;;;8005:72;8100:16;8104:12;8100:1;:16;:::i;:::-;8092:57;-1:-1:-1;8118:7:63;-1:-1:-1;8127:21:63;;-1:-1:-1;8092:57:63;;-1:-1:-1;;;;8092:57:63;5074:3092;;;;;;:::o;382:191:9:-;445:7;479:2;468:1;:8;:13;464:49;;;490:23;;-1:-1:-1;;;490:23:9;;;;;;;;;;;464:49;564:1;551;:8;546:2;:13;;;;:::i;:::-;545:20;;530:10;538:1;530:10;:::i;:::-;:36;;;382:191;-1:-1:-1;;382:191:9:o;8426:737:63:-;8517:17;8563:7;-1:-1:-1;;;;;8553:18:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8553:18:63;-1:-1:-1;8546:25:63;-1:-1:-1;8581:54:63;;8613:11;8581:54;8851:11;8865:36;8894:7;8886:4;8865:36;:::i;:::-;8851:50;;8956:2;8950:4;8946:13;8981:1;8995:87;9009:7;9006:1;9003:14;8995:87;;;9067:11;;;9061:18;9047:12;;;9040:40;9032:2;9025:10;8995:87;;;9105:7;9102:1;9099:14;9096:51;;;9143:1;9133:7;9127:4;9123:18;9116:29;9096:51;;;8920:237;8426:737;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;321:226:65;-1:-1:-1;;;;;508:32:65;;;;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;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:253;1479:2;1473:9;1521:4;1509:17;;-1:-1:-1;;;;;1541:34:65;;1577:22;;;1538:62;1535:88;;;1603:18;;:::i;:::-;1639:2;1632:22;1407:253;:::o;1665:275::-;1736:2;1730:9;1801:2;1782:13;;-1:-1:-1;;1778:27:65;1766:40;;-1:-1:-1;;;;;1821:34:65;;1857:22;;;1818:62;1815:88;;;1883:18;;:::i;:::-;1919:2;1912:22;1665:275;;-1:-1:-1;1665:275:65:o;1945:182::-;2004:4;-1:-1:-1;;;;;2026:30:65;;2023:56;;;2059:18;;:::i;:::-;-1:-1:-1;2104:1:65;2100:14;2116:4;2096:25;;1945:182::o;2132:187::-;2181:4;-1:-1:-1;;;;;2203:30:65;;2200:56;;;2236:18;;:::i;:::-;-1:-1:-1;2302:2:65;2281:15;-1:-1:-1;;2277:29:65;2308:4;2273:40;;2132:187::o;2324:338::-;2389:5;2418:53;2434:36;2463:6;2434:36;:::i;:::-;2418:53;:::i;:::-;2409:62;;2494:6;2487:5;2480:21;2534:3;2525:6;2520:3;2516:16;2513:25;2510:45;;;2551:1;2548;2541:12;2510:45;2600:6;2595:3;2588:4;2581:5;2577:16;2564:43;2654:1;2647:4;2638:6;2631:5;2627:18;2623:29;2616:40;2324:338;;;;;:::o;2667:1197::-;2761:6;2792:2;2835;2823:9;2814:7;2810:23;2806:32;2803:52;;;2851:1;2848;2841:12;2803:52;2878:23;;-1:-1:-1;;;;;2950:14:65;;;2947:34;;;2977:1;2974;2967:12;2947:34;3015:6;3004:9;3000:22;2990:32;;3060:7;3053:4;3049:2;3045:13;3041:27;3031:55;;3082:1;3079;3072:12;3031:55;3118:2;3105:16;3141:59;3157:42;3196:2;3157:42;:::i;3141:59::-;3234:15;;;3316:1;3312:10;;;;3304:19;;3300:28;;;3265:12;;;;3340:19;;;3337:39;;;3372:1;3369;3362:12;3337:39;3404:2;3400;3396:11;3416:418;3432:6;3427:3;3424:15;3416:418;;;3518:3;3505:17;3554:2;3541:11;3538:19;3535:39;;;3570:1;3567;3560:12;3535:39;3597:20;;3652:2;3644:11;;3640:25;-1:-1:-1;3630:53:65;;3679:1;3676;3669:12;3630:53;3708:83;3783:7;3777:2;3773;3769:11;3756:25;3751:2;3747;3743:11;3708:83;:::i;:::-;3696:96;;-1:-1:-1;3812:12:65;;;;3449;;3416:418;;;-1:-1:-1;3853:5:65;2667:1197;-1:-1:-1;;;;;;;;2667:1197:65:o;3869:802::-;4031:4;4060:2;4100;4089:9;4085:18;4130:2;4119:9;4112:21;4153:6;4188;4182:13;4219:6;4211;4204:22;4257:2;4246:9;4242:18;4235:25;;4319:2;4309:6;4306:1;4302:14;4291:9;4287:30;4283:39;4269:53;;4357:2;4349:6;4345:15;4378:1;4388:254;4402:6;4399:1;4396:13;4388:254;;;4495:2;4491:7;4479:9;4471:6;4467:22;4463:36;4458:3;4451:49;4523:39;4555:6;4546;4540:13;4523:39;:::i;:::-;4513:49;-1:-1:-1;4620:12:65;;;;4585:15;;;;4424:1;4417:9;4388:254;;;-1:-1:-1;4659:6:65;;3869:802;-1:-1:-1;;;;;;;3869:802:65:o;4676:221::-;4718:5;4771:3;4764:4;4756:6;4752:17;4748:27;4738:55;;4789:1;4786;4779:12;4738:55;4811:80;4887:3;4878:6;4865:20;4858:4;4850:6;4846:17;4811:80;:::i;4902:1153::-;5029:6;5037;5045;5098:2;5086:9;5077:7;5073:23;5069:32;5066:52;;;5114:1;5111;5104:12;5066:52;5141:23;;-1:-1:-1;;;;;5213:14:65;;;5210:34;;;5240:1;5237;5230:12;5210:34;5263:49;5304:7;5295:6;5284:9;5280:22;5263:49;:::i;:::-;5253:59;;5365:2;5354:9;5350:18;5337:32;5321:48;;5394:2;5384:8;5381:16;5378:36;;;5410:1;5407;5400:12;5378:36;5433:24;;;;5491:2;5473:16;;;5469:25;5466:45;;;5507:1;5504;5497:12;5466:45;5540:2;5534:9;5582:2;5574:6;5570:15;5635:6;5623:10;5620:22;5615:2;5603:10;5600:18;5597:46;5594:72;;;5646:18;;:::i;:::-;5682:2;5675:22;5722:16;;5750;;;5747:36;;;5779:1;5776;5769:12;5747:36;5807:44;5843:7;5832:8;5828:2;5824:17;5807:44;:::i;:::-;5792:60;;-1:-1:-1;5799:6:65;-1:-1:-1;5930:2:65;5915:18;;5902:32;;-1:-1:-1;5946:16:65;;;5943:36;;;5975:1;5972;5965:12;5943:36;;5998:51;6041:7;6030:8;6019:9;6015:24;5998:51;:::i;:::-;5988:61;;;4902:1153;;;;;:::o;6060:884::-;6244:4;6292:2;6281:9;6277:18;6322:2;6311:9;6304:21;6345:6;6380;6374:13;6411:6;6403;6396:22;6449:2;6438:9;6434:18;6427:25;;6511:2;6501:6;6498:1;6494:14;6483:9;6479:30;6475:39;6461:53;;6533:4;6572;6564:6;6560:17;6595:1;6605:254;6619:6;6616:1;6613:13;6605:254;;;6712:2;6708:7;6696:9;6688:6;6684:22;6680:36;6675:3;6668:49;6740:39;6772:6;6763;6757:13;6740:39;:::i;:::-;6730:49;-1:-1:-1;6837:12:65;;;;6802:15;;;;6641:1;6634:9;6605:254;;;6609:3;;;;;6876:6;6868:14;;;6932:4;6924:6;6920:17;6913:4;6902:9;6898:20;6891:47;6060:884;;;;;:::o;6949:286::-;7008:6;7061:2;7049:9;7040:7;7036:23;7032:32;7029:52;;;7077:1;7074;7067:12;7029:52;7103:23;;-1:-1:-1;;;;;7155:31:65;;7145:42;;7135:70;;7201:1;7198;7191:12;7240:184;7310:6;7363:2;7351:9;7342:7;7338:23;7334:32;7331:52;;;7379:1;7376;7369:12;7331:52;-1:-1:-1;7402:16:65;;7240:184;-1:-1:-1;7240:184:65:o;7429:380::-;7508:1;7504:12;;;;7551;;;7572:61;;7626:4;7618:6;7614:17;7604:27;;7572:61;7679:2;7671:6;7668:14;7648:18;7645:38;7642:161;;7725:10;7720:3;7716:20;7713:1;7706:31;7760:4;7757:1;7750:15;7788:4;7785:1;7778:15;7642:161;;7429:380;;;:::o;7814:460::-;7867:5;7920:3;7913:4;7905:6;7901:17;7897:27;7887:55;;7938:1;7935;7928:12;7887:55;7967:6;7961:13;7998:49;8014:32;8043:2;8014:32;:::i;7998:49::-;8072:2;8063:7;8056:19;8118:3;8111:4;8106:2;8098:6;8094:15;8090:26;8087:35;8084:55;;;8135:1;8132;8125:12;8084:55;8193:2;8186:4;8178:6;8174:17;8167:4;8158:7;8154:18;8148:48;8241:1;8216:16;;;8234:4;8212:27;8205:38;;;;8220:7;7814:460;-1:-1:-1;;;7814:460:65:o;8279:823::-;8342:5;8395:3;8388:4;8380:6;8376:17;8372:27;8362:55;;8413:1;8410;8403:12;8362:55;8442:6;8436:13;8468:4;8492:59;